2017-05-05 12 views
0

私は、次の静的インベントリファイルがあります:私のホストが同じIPが、異なるsshのポートを使用するので、私はので、ansibleとしてそれらを見ることができるためにそれらをエイリアスする必要が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 

を2つのホスト。

私はダイナミックインベントリスクリプトを使用してこれを生成しようとしていますが、返さなければならないjsonの形式に関する情報、具体的にはホストのエイリアスを見つけるのには苦労しています。

私の質問 - 上記の静的なインベントリファイルのjson相当版、またはjson形式の情報を見つけることができるどこかに誰かが分かっていますか?

答えて

1

動的インベントリスクリプトの作成については、this docをお読みください。

は二つのステップがあります:nodesmastersworkersおよびホスト:node1node2

1)script --listは、そのグループ内の変数およびホスト名でグループを返す必要があります(あなたの例では、次のグループを返す必要があります。

2)script --host <hostname>は、ホストの変数(例:ansible_hostansible_portなどの接続変数)を返す必要があります。

したがって、--list--host node1--host node2で実行すると、インベントリスクリプトは3つの異なるjsonオブジェクトを返す必要があります。

+0

ああ、はい、私はそれを読んだが、私は不可解なことがスクリプトにいくつかの呼び出しを行うことを認識していない。それを指摘してくれてありがとう – yasko