2015-05-04 6 views
25

Immaginate questo playbook ansible:Come posso eseguire solo attività ansibili con più tag?

- name: debug foo 
    debug: msg=foo 
    tags: 
    - foo 

- name: debug bar 
    debug: msg=bar 
    tags: 
    - bar 

- name: debug baz 
    debug: msg=baz 
    tags: 
    - foo 
    - bar 

Come posso eseguire solo il compito debug baz? Voglio dire solo eseguire attività che sono contrassegnate con foo E bar. È possibile?

Ho provato questo, ma verrà eseguito tutti i 3 compiti:

ansible-playbook foo.yml -t foo,bar 
+2

La mia unica soluzione finora è stata quella di utilizzare i tag composti come 'tag: [ 'foo', 'bar', 'foo-bar']' che è un po 'brutto ... :-( – chmac

risposta

18

tag Ansible uso "o" non "e" come un confronto. La tua soluzione per creare ancora un altro tag è quella appropriata.

0

Credo che la sintassi corretta è:

- name: debug baz 
    debug: msg=baz 
    tags: foo, bar 
+0

È un'opzione della riga di comando? – chmac

+0

scusate la marcatura non è corretta. In realtà è come apparirebbe nel playbook. – foofunner

+0

OK, pensate che si tratta di assegnare più tag a un singolo elemento, ma don Penso che sia utile eseguire solo elementi che hanno * più tag * ... – chmac