私はちょっと変わった動作をしています。私はまだAnoys初心者ですので、事前にお詫び申し上げます。変数に基づいてロールを実行しています
私はここに見た例に基づいて、条件付きで役割を実行しようとしている:https://github.com/atomicobject/ansible-laptop-playbook-example/blob/1785f25014fa5a7776de5b332d093b60bf59c8e0/laptop.yml
をとにかく、私はhost_vars/localhost
を持っている:私は私のトップレベルsite.yml
、で
has_thing: true
:
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing is defined and has_thing == "true" }
これは役割をスキップします。
私が代わりにこれを行う場合:
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing is defined }
を役割が実行されます。私はこれを行う場合は
:
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing == "true" }
それは動作しません。
私がない場合:
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing != "true" }
それはまだ動作しません。なぜ私はその値をテストしない限り、変数has_thing
が明確に定義されているのか理解できません。
私はここで何が欠けていますか?
ありがとうKonstantin。私は ' - {role:myrole、when:has_thingが定義され、has_thing: 'true'}'を実行しようとしましたが、 'has_thing: 'true'}'の構文に関するエラーが発生しました。どんな考え? – prelic
'debug:var = has_thing'を使用して、引用符で囲まれていない出力の平均文字列を引用します。 'のようなもの:when:has_thing |デフォルト(false)|ブールはあなたがしたいことをするはずです。 –
忍者編集に申し訳ありません。私はあなたが今言っていることを理解しています。あなたの助けに感謝します。 – prelic