1. ホーム
  2. ansible

[解決済み] ansibleで変数が未定義のときにタスクを実行するには?

2022-05-08 17:56:38

質問

ansibleの変数が登録されていない/未定義である場合にタスクを実行する方法を探しています。

-- name: some task
   command:  sed -n '5p' "{{app.dirs.includes}}/BUILD.info" | awk '{print  $2}'
   when: (! deployed_revision) AND ( !deployed_revision.stdout )
   register: deployed_revision

解決方法は?

からの ansibleドキュメント : 必須変数が設定されていない場合、Jinja2 の定義済みテストを使用してスキップまたは失敗することができます。例えば

tasks:

- shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
  when: foo is defined

- fail: msg="Bailing out. this play requires 'bar'"
  when: bar is not defined

つまり、あなたの場合 when: deployed_revision is not defined が動作するはずです。