1

そのため、さまざまな 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 : 私は経験的なエスケープ、中括弧、二重引用符などのエスケープをすでに試しました。

4

1 に答える 1