带有动态广告资源的ansible-host别名

时间:2017-05-05 09:11:29

标签: ansible

我有以下静态清单文件:

[nodes:children]
masters
workers

[masters]
node1 ansible_host=1.2.3.4 ansible_port=2220 ansible_user=vagrant ansible_private_key_file=keys/id_rsa

[workers]
node2 ansible_host=1.2.3.4 ansible_port=2221 ansible_user=vagrant ansible_private_key_file=keys/id_rsa

因为我的主机使用相同的IP,但不同的ssh端口我需要将它们别名,以便ansible可以将它们视为两个主机。

我正在尝试使用动态库存脚本来生成这个,但我很难找到有关我需要返回的json格式的任何信息,更具体地说 - 如何为主机设置别名。

所以我的问题 - 有没有人知道上面的静态库存文件的json等价物,或者我可以在哪里找到有关json格式的信息?

1 个答案:

答案 0 :(得分:1)

请阅读this doc有关编写动态广告资源脚本的信息。

有两个步骤:

1)script --list应返回包含该组中变量和主机名的组(在您的示例中,您应该返回组:nodesmastersworkers和主机:node1node2)。

2)script --host <hostname>应该返回主机的变量(在您的示例连接变量中,如ansible_hostansible_port)。

因此,在您的示例中,库存脚本在使用--list--host node1--host node2执行时应返回3个不同的json对象。