だから私のコードにはタスクがあります
- name: cool task
Shell: 'touch iamnotcool.txt'
when: me.cool is not defined
私の変数は次のようになります
---
me:
stumped: yes
タスクを実行すると、次のエラーが返されます
{"failed": true, "msg": "The conditional check 'me.cool' failed. The error was: error while evaluating conditional (me.cool): 'dict object' has no attribute 'cool'.
含めた構文:
when: me.cool is not defined
正しい。
not in
も使用できます。
when: "'cool' not in me"
問題はあなたのエラーメッセージです:
条件チェック 'me.cool'が失敗しました。
あなたの状態は次のように定義されていると主張します:
when: me.cool
そのため、使用しているバージョンにバグがあり(どのバージョンであるかは共有していません)、 既知の問題 があるか、エラーの原因となった正確なタスクを投稿していません。
次のようにjinja2 selectattr()構文を使用することで、「dictオブジェクト」に属性がないことを回避できます。
when: me|selectattr("cool", "defined")|list|length >0
https://groups.google.com/forum/#!topic/ansible-project/8XJkHQgttLA でMichael Hoglanから得たアイデア