- Ansible自动化运维:技术与最佳实践
- 陈金窗 沈灿 刘政委编著
- 326字
- 2023-01-19 15:10:48
2.4 Ansible小试身手
Ansible安装完成之后,我们也了解了基本配置方式,是不是已经急切要动手实践一下Ansible?下面我们将介绍主机连通性测试和远程执行命令两个小场景,体会一下Ansible的便捷、强大。
首先可以先查看一下安装的Ansible软件版本信息:
$ansible --version ansible 1.9.2 configured module search path = None
2.4.1 主机连通性测试
为了使用Ansible,第一步需要修改主机与组配置,默认的文件在/etc/ansible/hosts了,格式为ini,添加两台主机的IP地址,同时定义一个webservers组包含这两个IP地址,内容如下:
【/etc/Ansible/hosts】 #web1.ansible.cn #web2.ansible.cn 192.168.1.101 192.168.1.102 [webservers] #web1.ansible.cn #web2.ansible.cn 192.168.1.101 192.168.1.102
然后,用ping模块对单台主机进行ping操作,结果如下:
$ ansible 192.168.1.111-m ping 192.168.1.111 — success >> { "changed": false, "ping": "pong" }
对webservers组进行ping操作,结果如下:
$ ansible webservers -m ping 192.168.1.111 — success >> { "changed": false, "ping": "pong" } 192.168.1.112 — success >> { "changed": false, "ping": "pong" }
出现上述结果表示Ansible正确工作,主机的连通性测试成功,没有对被管节点做任何变更。
提示
这里测试时在控制主机与被管节点之间配置了SSH证书信任。如果没有用证书认证,则需要在执行Ansible命令时添加-k参数,在提示“SSH password:”时输入root(默认)账号密码。实际生产环境中,大多数更倾向于使用Linux普通用户账户进行连接并通过sudo命令实现root权限,格式为:
ansible webservers -m ping -u ansible -sudo
2.4.2 在被管节点上批量执行命令
Ansible很方便进行运维自动化,是运维与研发合作的重要工具。我们借鉴学习开发语言的经典示范程序,也用Hello World程序作为自动化运维环境的测试、校验手段。
在用户home目录下创建一个资源清单文件inventory.cfg,内容如下:
$cat inventory.cfg [webservers] 192.168.1.101 192.168.1.102
用Ansible的shell模块在webservers组的各服务器上显示“hello ansible! ”,命令如下:
$ ansible webservers -m shell -a ' /bin/echo hello ansible! ' -i inventory.cfg 192.168.1.111 — success — rc=0 >> hello ansible! 192.168.1.112 — success — rc=0 >> hello ansible! $
也可以用command模块,得到类似的结果:
$ ansible webservers -m command -a ' /bin/echo hello ansible! ' -i inventory.cfg 192.168.1.111 — success — rc=0 >> hello ansible! 192.168.1.112 — success — rc=0 >> hello ansible!
这样简单的命令就可以完成批量服务器的管理。现在,你已经来到通往Ansible自动化运维的门口,但是真正巧妙、灵活、功能强大的Ansible等待着你深入学习、探索。