2017-09-13 3 views
1

私は誰かがこの問題の解決策があるかどうかを確認したいのですが、私はAnsibleに直面しています。可能性のある在庫グループの配列親へのポインタ

私はこのようになりますインベントリファイルがあります: -

[clusterA] 
10.0.0.1 
10.0.0.2 
10.0.0.3 
.... 

[clusterB] 
10.1.0.1 
10.1.0.2 
10.1.0.3 
.... 

[web-lb] 
10.0.0.1 
10.1.0.1 

代わりのweb-lbグループのIPアドレスを繰り返すことを、私はこのような何かをしたい: -

[web-lb:children] 
clusterA[0] 
clusterB[0] 

我々の場合、スクリプトグループ前述したように、私はIPアドレスを複製する必要はありません、と私は別のグループにグループから別の項目を混在させることができますすることができます例:

[webA-lb:children] 
clusterA[1] 
clusterA[5] 
clusterB[3] 

以下の構成は同様に動作しません持つ

UPDATED

[webA-lb] 
clusterA[1] 

エラー:私はあなたが個々のセレクタと組み合わせ:childrenを使用することができるとは思わない

bbed5901ea74:~$ ansible -i hosts all --list-hosts 
hosts (6): 
10.1.0.1 
10.1.0.2 
10.1.0.3 
10.0.0.1 
10.0.0.2 
10.0.0.3 
bbed5901ea74:~$ vi hosts 
bbed5901ea74:~$ ansible -i hosts all --list-hosts 
ERROR! Attempted to read "hosts" as YAML: Syntax Error while loading YAML. 


The error appears to have been in '/home/jenkins/hosts': line 2, column 1, 
but may be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

[clusterA] 
10.0.0.1 
^ here 

Attempted to read "hosts" as ini file: host range must be begin:end or 
begin:end:step 

答えて

0

[]のように。 :children接尾辞は、グループのグループを示します。

だから、これを行うことができます:

[web-lb] 
clusterA[0] 
clusterB[0] 

ではなく、この:

[web-lb:children] 
clusterA[0] 
clusterB[0] 

の詳細はAnsibleのPatternsInventoryドキュメントを参照してください。不可能は非常に柔軟です。 !シンボルを使用して、特定の子供をグループから除外することもできます。

+0

は、私はあなたが言及しているとansibleたちはグループに 'children'タグを省略しても理解しているようだしないアプローチを試してみました。 – jlim

+1

うーん... INI構文のときに、あなたの 'hosts'ファイルをYAMLとして読み出そうとしている理由を知っていますか? – freginold

+1

グループ内に角括弧がある瞬間、このエラーが発生します。私は 'hosts'を' hosts.ini'に変更してもう一度試してみます。このエラーは '29286d512845:〜$ ansible -i hosts.ini all --list-hosts エラーです! iniファイルとして "hosts.ini"を読み込もうとしました。ホスト範囲はbegin:endまたはbegin:end:step'でなければなりません。 – jlim

関連する問題