Ansible のプロキシマップを隠す空の play 変数を削除する
インベントリのグループ変数は、その宣言が空や null であっても、play レベルの宣言に負けます。
group_vars がプロキシマップを定義しているのにタスクが空の値を受け取る場合は、play で宣言された同じ変数を探してください。play 変数の方が優先度が高く、空のプレースホルダーでもインベントリを上書きします。
公開 HTTP プロキシの使用を許可された外部ダウンロードでは、HTTP プロキシ一覧がインベントリ値の候補アドレスを提供します。マップはインベントリに置いたままにします:
proxy_env:
http_proxy: http://proxy.example.net:8080
https_proxy: http://proxy.example.net:8080次に、play レベルの proxy_env: プレースホルダーを使わずに、目的のタスクに適用します:
environment: "{{ proxy_env | default({}) }}"ロールにフォールバックが必要な場合、ロールのデフォルトにある空のマップはインベントリ値より下位に位置し、インベントリを優先させます。
示されているフィルターが扱うのは undefined であり、空に見えるすべての状態ではありません。明示的な null はすでに定義済みなので、通常の default({}) はその優先度の高い上書きを消しません。
プロキシのエンドポイントを変更する前に、影響を受けるホストの実効値を確認してください。environment ディレクティブがタスクの入力を提供するのは、変数の優先順位が評価対象のマップを選んだ後だけです。