私は、同僚の古いロールに以下を含みます。ロール内の全ての実行を実行することが可能です
---
- name: deploy
include: deploy.yml
when: deploy is defined and deploy == 'True'
- name: undeploy
include: undeploy.yml
when: undeploy is defined and undeploy == 'True'
- name: database-migrate
include: database-migrate.yml
when: db is defined and db == 'True'
ただし、どのように私が役割を含むかにかかわらず、Ansibleは自動的に各インクルードを処理しています。これは、--list-tasksオプションを使用して確認できます。私の脚本で私はバージョン2.1.1.0(数週間前、アップグレード)を実行している
roles:
- { role: vip-notification-services-app, deploy: 'True', tags: ['deploy']}
を次している。例えば
。このロールはアップグレード前に正常に実行されていました。
したがって、このスタイルをロールに含めることができなくなったのか、使用する必要がある別の構文があるのだろうかと思います。
私の[回答](http://stackoverflow.com/a/39856625/2795592)から別の質問(「条件付き」には仕事が含まれる方法について)を参照してください。 –
@ ConstantinSuvorovその答えはこのような状況には当てはまりません。 – smiller171
私は、値がブール値「True」の代わりに文字列「True」に評価される必要があると言います。これは意図的ですか? おそらく、これらのタスクをvarsファイルまたはdefaultsファイルに定義していますか、またはこれらのタスクを実行する前にどこかに定義していますか? – smiller171