そのため、さまざまな Web サイトの IIS 設定を提供するために使用される group_vars に基づくプレイブックを使用しています。
group_vars は 2 つの主要な辞書で構成されます (そのうちの 1 つは、辞書のリストの辞書の複雑なリストを含みます)。
複雑なものには、Jinja2 の firstdict からの変数への参照があります (例: {{ firstdic.sitename }})
これは group_vars と完全に連携し、参照は Ansible の jinja2 エンジンによって解決されます。しかし、動的インベントリに関しては、最初の dict から変数を参照するときに dict 全体が設定されていません。
ここにいくつかの JSON があります (私の動的インベントリからのように) :
"firstdict": { "sitename": "mysitename" }
"complexdict": {"someotherdict": {"sitepath": "{{ firstdict.sitename }}"}}
この JSON を使用すると、デバッグ モジュールは complexdict が定義されていないことを検出します。
ただし、jinja2 の部分は正しく解析され、実行されます。
動的在庫入力:
"complexdict": {"someotherdict": {"sitepath": "{{ \"foo\" }}"}}
モジュールが返すデバッグ:
"complexdict": {
"someotherdict": {
"sitepath": "foo"
}
}
変数の優先順位の問題はありますか? なぜこのように機能しないのか、他に知っておくべきことはありますか?
Ansible マスターの皆さん、ご協力ありがとうございます :)
PS : 私は経験的なエスケープ、中括弧、二重引用符などのエスケープをすでに試しました。