1.4. 构建清单
清单在中央文件中组织受管节点,为 Ansible 提供系统信息和网络位置。使用清单文件,Ansible 可以通过一个命令管理大量主机。
先决条件
- 要完成以下步骤,您需要至少一个主机系统的 IP 地址或完全限定域名(FQDN)。出于演示目的,主机可以在容器或虚拟机本地运行。
-
您还必须确保将公共 SSH 密钥添加到每个主机的
authorized_keys文件中。使用以下步骤构建清单。
流程
-
在您创建的
ansible_quickstart目录中创建名为inventory.ini的文件。 将新的
[myhosts]组添加到 inventory.ini 文件中,并指定每个主机系统的 IP 地址或完全限定域名(FQDN)。[myhosts] 192.0.2.50 192.0.2.51 192.0.2.52使用以下方法验证您的清单:
ansible-inventory -i inventory.ini --list使用以下命令,对清单中的
myhosts组发出 ping 命令:'Ansible myhosts -m ping -i inventory.ini'
如果控制节点和受管节点上的用户名不同,请将
-u选项与 Ansible 命令一起传递。192.0.2.50 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" } 192.0.2.51 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" } 192.0.2.52 | SUCCESS => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python3" }, "changed": false, "ping": "pong" }您已成功构建了一个清单。
1.4.1. INI 或 YAML 格式的清单 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以使用 INI 文件或 YAML 创建清单。在大多数情形中,如上例中,I INI 文件非常简单,易于读取少量受管节点。随着受管节点数量的增加,以 YAML 格式创建清单将变为 sensible 选项。
这与 inventory.ini 相同,它为受管节点声明唯一名称,并使用 ansible_host 字段:
myhosts:
hosts:
my_host_01:
ansible_host: 192.0.2.50
my_host_02:
ansible_host: 192.0.2.51
my_host_03:
ansible_host: 192.0.2.52