2017-11-14 12 views
0

私は大きなプロジェクトがAnsibleの下にあります。それには多くのグループがあり、そのほとんどは分かりやすくするためです。例えば、データベースへのアクセスが必要なホストの検索、Javaのインストールなどを行うためのグループ「dbaccess」、「java」などがあります。それらのいくつかはネストされています(fe 'collector'グループは 'java 'グループ、すべてのコレクターにはJavaが必要です)。ホストリストとグループhiererachyを責任者のインベントリで分ける方法は?

「グループ:子供」のテクニックを使用して、すべてインベントリ内に保持されます。

ステージングインベントリを作成する場合、問題があります。インベントリに新しいホストを提供するだけでなく、グループ階層全体を再作成する必要があります。

グループ階層がホストリストとは別に保管されるような方法で在庫を分割する方法があるのだろうか?

または、おそらく、そのような階層を「Ansible」に編成する他の方法がありますか?

(私の実際の在庫の一例):

[collectors] 
(host list) 
[publishers-http] 
(host list) 
[publishers-smtp] 
(host list) 
[central] 
(host list) 

[java:children] 
collectors 
publishers-http 
central 

[postgre_access:children] 
collectors 
publishers 
central 

[mongo_access:children] 
collectors 
publishers-smtp 
central 

[redis_access:children] 
central 
publishers 

私は、ステージングのホストリストを変更無傷グループ間の関係を維持する方法を求めています。

+0

私は '生産'からすべての階層情報をコピーせずに 'ステージング'の在庫を持っていたいと思います。 Ansibleは同時に2つのインベントリを許可しないので、単に「ホスト」と「グループの関係」ファイルに分割することはできません。 –

+0

"* Ansibleは同時に2つのインベントリを許可しない*" - 同じ在庫内の "2つのファイルに保存"と言った。 "*私はそれを単に"ホスト "と"グループ関係 "ファイルに分割することはできません。グループのファイルがホストのファイルの後に読み込まれていることを確認するだけです。したがって、 'groups'と' hosts'の名前は動作しませんが、 '01_hosts'と' 02_groups'は動作します。 – techraf

答えて

1

は、2つのファイルに持ち物を分割 - 含む01_hostsという名前の1:、

それらの保存
[java:children] 
collectors 
publishers-http 
central 

[postgre_access:children] 
collectors 
publishers 
central 

[mongo_access:children] 
collectors 
publishers-smtp 
central 

[redis_access:children] 
central 
publishers 

my_inventoryディレクトリにパラメータとしてmy_inventoryへのパスを使用します含む02_groupsという名前の他の

[collectors] 
(host list) 
[publishers-http] 
(host list) 
[publishers-smtp] 
(host list) 
[central] 
(host list) 

インベントリの場合(CLIまたはansible.cfgのいずれか)。

02_groupsの単一のソースを持つためにシンボリックリンクを使用してください。


Ansibleがアルファベット順にインベントリ・ディレクトリからファイルを読み込み、ホスト/グループは、グループのグループの前に定義されなければならないので、私は01_02_プレフィックスを示唆しました。

+0

私は在庫がディレクトリかもしれないと言った部分を逃しました。シンボリックリンクのアイデアはきれいです!ありがとうございました! –

関連する問題