2016-07-07 5 views
2

私はそのようなプレイブックを持っています。クライアントごとに1つの役割があります。依存関係の役割に他のタグを適用することは可能ですか?

- hosts: hosting 
    roles: 
    - { role: client1, tags: ['client1'] } 
    - { role: client2, tags: ['client2'] } 

各ロールでは、たとえばnginxに依存しています。

/roles/client1/meta/main.yml 
dependencies: 
    - nginx 

私はそれが必要ないときに nginxの役割を起動しないようにしたいと思います。だから私は依存関係にnginxタグを追加しました。

/roles/client1/meta/main.yml 
dependencies: 
    - { role: nginx, tags: ['system'] } 

しかし、タグclient1でプレイブックを起動すると、nginxロールが実行されます。 これを回避する方法はありますか?

私は、プレイブックへの依存を "エクスポート"することができますが、それはうまくいくと知っていますが、それは私が考えるすてきな解決策ではありません。

- hosts: hosting 
    roles: 
    - { role: nginx, tags: ['system'] } 
    - { role: client1, tags: ['client1'] } 
    - { role: client2, tags: ['client2'] } 

答えて

4

タグは互いにオーバーラップしませんが、カミューラントです。依存関係のタグは、client1systemです。

しかし、これで十分です。あなたのプレイブックを呼び出すときに、システムタグをスキップすることをAnsibleに伝えてください:

ansible-playbook ... --tags client1 --skip-tags system 
+0

ありがとう@udondan – elhostis

関連する問題