【综合架构】Part 5.2 Ansible
使用设备:管理设备-m01-10.0.0.61
1 概述
自动化运维工具:可实现批量管理、批量分发、批量执行、维护...
Ansible 是由 Python语言 所编写
2 管理架构
- Inventory 主机清单:被管理主机的ip列表、分类。
- ad-hoc模式:命令行批量管理(使用ans模块),临时任务。
- playbook 剧本模式:类似于把操作写出脚本,可以重复运行这个脚本。
3 部署与配置
部署
yum install -y ansible
配置
步骤 1:修改配置文件:关闭Host_key_checking。
vim /etc/ansible/ansible.cfg
把71行的 “ # ” 号删除。
步骤 2:修改配置文件:开启日志功能。
把111行的 “ # ” 号删除。
步骤 3:查看修改结果
egrep -vn '^$|#' /etc/ansible/ansible.cfg
4 Ans-inventory主机清单
- 简述:ansible管理的节点的列表
- Waring:默认读取在 /etc/ansible/hosts文件,并非 /etc/hosts。
- 未来实际使用中一般我们会把主机清单文件存放在指定的目录中,运行ansible的时候通过-i选项指定主机清单文件即可。
相关实验设备
web01 | 172.16.1.7 |
backup | 172.16.1.41 |
nfs01 | 172.16.1.31 |
4.1 主机清单格式
[分类或者分组名字] # 注意分类要体现出服务器的作用
ip地址或主机名或域名 #注意主机名要能解析才行
步骤 1:编辑清单文件
vim /etc/ansible/hosts
步骤 2:将清单内容替换成如下
[web]
172.16.1.7[backup]
172.16.1.41[nfs]
172.16.1.31
步骤 3:运行ping模块检查
ansible all -m ping
结果:
ansible命令格式
- ansible 主机ip 或 分组 或 all -m 指定使用的模块名字
- 这里的 ping 模块用于检查被管理端是否可以访问。
4.2 子组
作用:用于简化分组管理,提高操作效率。
通过实例来加深理解:
通过对 backup、nfs两个分组,再创建另外一个分区 “data”。
步骤 1:编辑清单文件
vim /etc/ansible/hosts
步骤 2:将清单内容替换成如下
[web]
172.16.1.7
172.16.1.8[nfs]
172.16.1.31[backup]
172.16.1.41[db]
172.16.1.51[data:children]
nfs
backup
db
子组使用children关键词创建,格式 [data:children] 。# 组名字:children
4.3 指定用户、密码管理
适用于为未进行密钥认证的设备,但是这种方式并不推荐,最好先进行密钥认证,然后再进行管理。
密钥认证知识:【综合架构】Part 5.1 密钥认证-CSDN博客
步骤 1:编辑清单文件
vim /etc/ansible/hosts
步骤 2:将清单内容替换成如下
[web]
172.16.1.7 ansible_user=root ansible_password=1 ansible_port=22
4.4 错误提示记录
解决措施:把 /etc/ansible/ansilbe.cfg 文件中的 71:host_key_checking 这个配置改成 False。
5 Ansible模块
- Ansible 模块 modules
- Ansible中通过各种模块实现批量管理。
- 一般来说这些模块对应着Linux里面的基本操作或服务管理。
- 找出Linux场景操作对应的模块即可。