2017-05-05 73 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