私が書いた複数の役割を呼び出すプレイブックがあります。このプレイブックには、個別に呼び出すことも、最初から最後までプロシージャ全体を実行することよりも、タグ付けされた各ロールがあります。役割の中で、それらの中の作品を分割するために追加のタグを提供することができる。ロールタスクの中には、ロール固有のタグに関係なく、ロールが実行されるたびに実行されるため、「always」というタグが付いています。アシスタント:ロール内の「always」タグをスキップ
私が取り組んでいる問題は、これらの「常に」タグは、ロール固有のタグが呼び出されたかどうかにかかわらず実行されることです。ロールのタグを呼び出さないと、そのロールに固有の「常に」のタスクを含め、ロールを実行したくはありません。
例:
# Playbook
- hosts: localhost
roles:
- role: roleA
tags: do_roleA
- role: roleB
tags: do_roleB
# Role A:
- name: Always do this when doing role A
debug: msg="test"
tags: always
- name: Task1
debug: msg="task1"
tags: do_task1
- name: Task2
debug: msg="task2"
tags: do_task2
例コール:
ansibile-playbook my-playbook.yml --tags "do_roleB"
しかし、これはロールAでのデバッグが同様に発生する原因となります。私が持っている
いくつかの要件:roleBがそれを必要とするいくつかのタスクを有することができるよう
- は「常に」スキップすることはできません。
- タグをalwaysから変更し、すべてのサブタスクにタグのリストを追加しないでください。すなわち、[do_task1、do_task2]はタグの数が大きくなり、追加するのを忘れやすくなるため、
基本的に私は、「プレイブックタグ」と呼ぶと、タグが一致するプレイブックからロールのみを実行することをアナフィラティブに指示する方法を探しています。 「always」タグが付いていても、一致しないロールのタスクは実行しないでください。しかし、私が "ロールタグ"を呼び出すと、そのロール内の "always"というタグか、私が呼び出すタグを持つすべてのタスクを実行します。
この機能はありますか?それは私がAnsible 2.0.1.0
お試しいただけますか?ansibile-playbook my-playbook.yml -skip-tags "do_roleA" – perbellinio