私はAnsible 2.3.2.0を使用しており、4つの異なるタスクを実行している役割を呼び出しています。タグを使用したコール固有のロールタスクが機能していない、すべてのタスクが実行中です
プレイブックでロールを呼び出し、特定のタグを指定すると、ロール全体とすべてのタスクが実行されます。私はこれが2.0の後に既知の問題であった場所を見て、includeステートメントの下に静的なディレクティブを追加することを提案しました。私はそれを試みたが、まだすべてのタスクが実行されました。ここで は、私が上記の役割文でこれを実行すると、私はAMIを期待
---
- include: ami.yml
static: yes
tags:
- ami
- include: launch_config.yml
static: yes
tags:
- launch_config
- include: asg.yml
static: yes
tags:
- asg
- include: ami_lc_cleanup.yml
static: yes
tags:
- ami_lc_cleanup
roles:
- {role: ansible-role-auto-deploy, tags: [ 'ami', 'launch_config', 'asg']}
そして、ここでは役割main.ymlです...脚本における役割文ですlaunch_config、asgタスクを実行するだけでなく、ami_lc_cleanupタスクも実行されます。
タスクはすべて機能しますが、どのタスクを実行するかを制限する方法はわかりません。誰もがそれを(タグを介してタスクを指定することができます)を動作させる方法についての任意の提案を持っていますか?
それはあまり助けにはならない、あなたは精巧にできますか? – tman
includeは 'static:yes'として定義されていますが、' when'や '' tags''などの条件文を使うときは 'static:no'にする必要があります。 – clemens321
静的に切り替えることを試みました:いいえ、そして違いはありません。 --list-tagsと--list-tasksオプションを使うと、最初の3つのタスクがTAGS:[ami、asg、およびlaunch_config]で実行されていることがわかります。たとえそれが電話プレイブックにタグ付けされていなくても。だから、ロールからタグを継承する必要があります... – tman