2017-05-05 76 views
0

我有以下的静态清单文件: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

请阅读this doc关于编写动态库存脚本。

有两个步骤:

1)script --list应该返回组与该组变量和主机名(在你的榜样,您应该返回组:nodesmastersworkers和主机:node1node2)。

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

因此,在您的示例中,清单脚本在与--list,--host node1--host node2执行时应该返回3个不同的json对象。

+0

啊,是的,我确实读到过,但我没有意识到,将会对脚本进行几次调用。感谢您指出了这一点 – yasko