Ansible基本概念

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批量管理主机了。