varsがymlにない場合、Ansibleにエラーをスローさせますか?


8

未定義のymlファイルのvarを置き換えるときにAnsibleを強制的に実行することはできますか?

回答:


9

はい、可能です。複雑な変数データへのアクセスのオンラインドキュメントを確認してください。

それを正確に行うための例が提供されています。

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

8

次の行を[defaults]ansible.cfg のセクションに追加します。

error_on_undefined_vars = True

変数が定義されていない場合、エラーメッセージが表示されます。


オプションには1.3が必要だと思います。これはまもなく登場しますが、まだリリースされていません。
mblakele 2013

1

変数を定義する

roles/<role_name>/defaults/main.yml

お気に入り:

SUPERVAR:
  VAR1:foo
  VAR2:bar

そして次に行う

roles/<role_name>/tasks/main.yml

お気に入り:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.