2022.01.10  

【Ansible】whenで{{ }}変数を使用した際の警告対応。should not include jinja2 templating delimiters

Ansible    

playbookファイルにwhenを記載し、ansible-playbookコマンド実行したところ、以下の警告が表示されました。

[WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: 'A' == '{{ arg1 }}'

条件文にjinja2テンプレート{{ }}{% %}などの区切り文字を含めるべきではないと怒られています。
これはAnsibleバージョン2.3から追加されたメッセージのようです。
https://github.com/ansible/ansible/issues/22397

対応方法

警告が出たplaybookは次のように定義されています。

playbook.yml
- hosts: group1

  tasks:
  - name: echo_task
    command: echo "引数にAが設定されています"
    register: command_result
    when: "'A' == '{{ arg1 }}'"

when: "'A' == '{{ arg1 }}'"部分の{{ }}が原因で警告がでているので、
ここを when: "'A' == (arg1)"と書き換えると警告がなくまります。

- hosts: group1

  tasks:
  - name: echo_task
    command: echo "引数にAが設定されています"
    register: command_result
    when: "'A' == (arg1)"
コマンド実行
$ ansible-playbook -i hosts playbook.yml -e "arg1=A"

PLAY [group1] ******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [11.22.333.444]

TASK [echo_task] ***************************************************************
changed: [11.22.333.444]

PLAY RECAP *********************************************************************
11.22.333.444            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

変数と文字列を結合したい場合

変数と文字列を結合したい場合を結合したい場合は次のように書きます。
変数も文字列も( )の中に書き、文字列は 'シングルクォート 'でくくります。

playbook.yml
- hosts: group1

  tasks:
  - name: echo_task
    command: echo "引数にAが設定されています"
    register: command_result
    when: "'hogeA' == ('hoge' + arg1)"
コマンド実行
$ ansible-playbook -i hosts playbook.yml -e "arg1=A"

PLAY [group1] ******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [11.22.333.444]

TASK [echo_task] ***************************************************************
changed: [11.22.333.444]

PLAY RECAP *********************************************************************
11.22.333.444             : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

Udemy動画

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信