Ansible是用python编写的自动化运维软件,依赖于 SSH 协议运行, 无客户端、简单易用的特性让其成为当下最为流行的自动化运维工具之一。
在使用Ansible之前,需对集群的设备进行简要的规划,明确控制端及被控端。控制端仅有一台,被控端可若干。
一、安装规划
实例:现有3台设备,规划如下
ip | hostname | 节点类型 |
---|---|---|
192.168.231.151 | controller | 控制端 |
192.168.231.152 | node1 | 被控端 |
192.168.231.153 | node2 | 被控端 |
二、控制端设置ssh免密登陆
由于Ansible依赖于ssh协议运行,在每次执行时,控制端都会登陆到被控端,因此设置免密登陆,可提高执行效率。
- ssh-keygen
控制端生成密钥对 - ssh-copy-id 被控端ip
将公钥传输到被控端进行保存
注: 默认保存到与控制端当前所在用户对等的用户家目录中。
三、安装配置Ansible
控制端执行
- 安装ansible
yum -y install ansible
- 配置ansible.cfg
配置文件默认在 /etc/ansible/ansible.cfg
[defaults]
#主机清单路径
inventory = /home/admin/ansible/inventory
#取消主机密钥检查
host_key_checking = False
#被控端执行用户
remote_user = admin
#日志路径
log_path = /var/log/ansible.log
[inventory]
#升级权限
[privilege_escalation]
#确认升级
become=True
#升级方式sudo
become_method=sudo
#升级到root用户权限
become_user=root
#不询问密码
become_ask_pass=False
[paramiko_connection]
#自动添加被控端密钥
host_key_auto_add = True
由于博主使用的是admin用户进行管理,因此需要升级权限。在进行配置前,须在每台设备中创建admin用户,并配置密码,且在 /etc/sudoers文件中进行权限委派。
更多配置说明,可参考ansible配置文件解读
- 配置主机清单
[agent]
192.168.231.152
192.168.231.153
agent 为主机组名称
四、测试
配置完成后,需对主机的联通性进行测试。
命令:ansible agent -m ping
结果:
如图,ping的结果为pong,证明配置无误。