ansible三个主要的组件:
- Control Node:控制节点,通常是一台装有ansible可执行程序的主机
- Inventory:可以翻译为资源清单,这里指被ansible管理的远程主机列表
- Managed Node:被控节点,被ansible操作的远程主机
Inventory是一个文本文件,通常使用ini或者yaml格式,里面列出了远程主机列表,可以存放到Control Node的任何地方,使用时通过-i告诉ansible去哪儿寻找inventory文件,如果不指定,ansible会找/etc/ansible/inventory这个文件。一个inventory示例:
[myvirtualmachines]
10.100.0.90
$ ansible all -i inventory_file --list-hosts
Control Node和Managed Nodes通信协议一般使用ssh,前者通过ssh来操作Managed nodes,所以在使用ansible完成工作前,我们一般要配置好ssh环境:
- 配置Control Node免密登录Managed nodes(将前者的公约存放到后者的~/.ssh/authorized_keys里面)
- 登录Control Node和Managd nodes的用户名一致(别给自己找麻烦)
ping测试,下面的-u表示使用制定的user通过ssh登录Managed nodes
$ ansible all -m ping
$ ansible all -i inventory_file -m ping
$ ansible all -i inventory_file -m ping -u user
10.100.0.90 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
恭喜,你可以使用ansible批量管理主机了。