2016-12-05 7 views
2

私は、現在のインベントリに関係なく保持される変数に使用できる、共有インベントリのいくつかのフォームに対する洗練されたソリューションを探しています。安全な共有インベントリ

例:環境を定義するために使用される複数の在庫があります。

/inventory-live/ 
/inventory-staging/ 
/inventory-test/ 
/inventory-develop/ 

これらのそれぞれが、環境特有の細部の負荷をcustomises。ただし、ライセンスキー、ユーザー資格などの一部のコンテンツは、環境に固有のものではありません。

現在のところ、このインベントリ内の*/group_vars/allを更新することで、この情報は手動で同期されます。

しかし、これを中央の場所に保持し、インベントリ間で同じ情報を繰り返すことを含まないより洗練されたソリューションがありますか?

+1

インベントリに変数が依存していない場合は、なぜあなたは定期的にvariable-を使用していませんファイル? – techraf

+0

これは私が以前に行ったことです。時間がたつにつれて、構成を在庫とタスクに分けて役割に分けることは、優れた慣習です。慣習に従うことで、あなたの仕事を使用しなければならない他の人たちが簡単になります。したがって、私はよりよい解決策を見出そうとしています。 –

答えて

1

これらのすべてのインベントリを単一のプレイブックで使用すると、group_vars/allをプレイブックディレクトリに置くことができます。 - Ansibleは、インベントリファイルだけでなく、現在のプレイブックディレクトリからもホストおよびグループを読み取ります。

あなたが複数のプレイブックでこれらの目録を使用する場合は、別の在庫から、共通のディレクトリやシンボリックリンクを作成することができます。

/inventory-common/common_vars.yml 
/inventory-live/group_vars/all/common.yml -> ../../../inventory-common/common_vars.yml 
/inventory-test/group_vars/all/common.yml -> ../../../inventory-common/common_vars.yml 
+0

これはgroup_varsで動作します。なんらかの理由で、 '/ inventory-live/host_vars/localhost/common.yml'では動作しません。このシナリオではファイルは読み込まれませんが、'/inventory-live/host_vars/localhost/vars.yml'は動作します。私はこの動作(Ansible 2.2)に関するドキュメントを見つけることはできませんが、答えが十分に機能しています。 –

関連する問題