私は3段のボックスがあり、各層に異なる変数設定(キャッシュディレクトリのようなもの)を適用していますが、デフォルトの束があります。私はまた、ノードベースでをオーバーライドする必要があります。これは、通常、ホスト自体のインベントリ変数を介して行われます。ホストを編成する最良の方法が何であるかわからないので、precedence worksが私の好みです。可能性:varsでネストされたグループを使用
ここに私が試したさまざまなことがあります。私は、変数定義の長い文字列でそれらのそれぞれを持っていた、まず
[bots-fancy]
fancy-1
[bots-super-fancy]
super-1
[bots-magical]
magic-1
magic-2 provider=aws
:それぞれのケースで私はこのようなインベントリファイルのエントリを持っています。私はまた別のgroup_var/bots/[bots-magical | bots-super-fancy | bots-fancy].yaml
ファイルを持っていた。これはすぐに支持されなくなりました。
試み1:脚本は脚本変数 で私はこのような何かを持っていた:
---
hosts:
- bots
vars_files:
- "group_vars/bots/defaults.yml"
- "group_vars/bots/{{ groups_names[0] }}.yml"
roles:
- somethign
が、これは働いていた(はい脆性が)それは私がホストあたりに上書きすることはできないだろう基準。私はノードで時折異なるものを設定しなければならなかったが、グループ全体ではそうではなかった。
試み2:各
ためgroup_vars
を使用して私は、hostsファイルに
[bots:children]
bots-fancy
bots-super-fancy
bots-magical
を追加しました。プレイブックからvars_files
を削除し、グループごとにgroup_vars
を作成しました。私はgroup_vars/bots.yaml
にデフォルト/共有設定を追加しました。プレイブックを実行すると、それはそのように見えるgroup_varsのbots
だけをロードします。理想的には、bots
をロードし、bots-fancy
でオーバーライドします。最後にhostsファイルから値を取得します。
私はこれらのグループを構成する最善の方法がわからないので、どんな入力であれ非常に役に立ちます!