软件简介Ansible 是一款自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能 。
功能特点
- 部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作
- 默认使用 SSH 协议对设备进行管理
- 有大量常规运维操作模块 , 可实现日常绝大部分操作
- 配置简单、功能强大、扩展性强
- 支持 API 及自定义模块,可通过 Python 轻松扩展
- 通过 Playbooks 来定制强大的配置、状态管理
文章插图
- Ansible:Ansible 核心程序 。
- HostInventory:记录由 Ansible 管理的主机信息,包括端口、密码、ip 等 。
- Playbooks:YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能 。
- CoreModules:核心模块,主要操作是通过调用核心模块来完成管理任务 。
- CustomModules:自定义模块,完成核心模块无法完成的功能 , 支持多种语言 。
- ConnectionPlugins:连接插件 , Ansible 和 Host 通信使用
- ad-hoc 模式(点对点模式) 使用单个模块,支持批量执行单条命令 。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令,就相当于 bash 中的一句 shell 命令 。
- playbook模式 (剧本模式) Ansible 主要管理方式,也是 Ansible 功能强大的关键所在 。playbook 通过多个 task 集合完成一类功能,如 Web 服务的安装部署、数据库服务器的批量备份等 。可以简单地把 playbook 理解为通过组合多条 ad-hoc 操作的配置文件 。
文章插图
软件安装登录 ansible01,执行安装命令
yum install -y ansible
主要程序
- /usr/bin/ansible 主程序
- /usr/bin/ansible-doc 配置文档
- /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
- /usr/bin/ansible-pull 远程执行命令的工具
- /usr/bin/ansible-vault 文件加密工具
- /etc/ansible/ansible.cfg 主配置文件
- /etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
- /etc/ansible/roles/ 存放角色的目录
ssh-keygen
秘钥分发至需要被管理的节点
ssh-copy-id root@10.0.0.66ssh-copy-id root@10.0.0.67
修改主机清单文件 /etc/ansible/hosts,添加分组名称以及主机 ip
[guance]10.0.0.6710.0.0.66
验证连通性
ansible guance -m ping
文章插图
常用模块Shell 模块Shell 模块可以在远程主机上调用 shell 解释器运行命令 , 支持 shell 的各种功能,例如管道等
- 查看当前用户 id
文章插图
- 查看当前登录至系统的用户
文章插图
Copy 模块该模块用于将文件复制到远程主机,同时支持给定内容生成文件和修改权限等
- 复制 ansible.cfg 文件至远程主机,并指定权限为 "读写" -rw-rw-rw-
文章插图
查看远程主机 ansible.cfg 文件
ansible guance -m shell -a 'ls -l /tmp/ansible.cfg'
文章插图
- 指定内容并生成文件
文章插图
查看远程主机文件
ansible guance -m shell -a 'cat /tmp/hello'
推荐阅读
- ansible应用之安装elk框架
- 简读《ASP.NET Core技术内幕与项目实战》之3:配置
- [C#]SourceGenerator实战: 对任意对象使用await吧!!!
- Docker | redis集群部署实战
- prometheus监控实战
- 1 Python全栈工程师之从网页搭建入门到Flask全栈项目实战 - ES6标准入门和Flex布局
- Java代码审计之实战某博客
- 大数据技术之HBase原理与实战归纳分享-下
- 大数据技术之HBase原理与实战归纳分享-中
- SpringBoot-JavaMailSender接口实战