2015-05-04 12 views
25

Stellen Sie sich dieses ansible Textbuch:Wie kann ich nur zulässige Aufgaben mit mehreren Tags ausführen?

- 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 

Wie kann ich nur die debug baz Aufgabe ausführen? Ich möchte sagen, nur Aufgaben ausführen, die mit foo AND bar getaggt sind. Ist das möglich?

Ich versuchte dies, aber es wird alle drei Aufgaben ausführen:

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

Meine einzige Lösung ist bisher Verbindung Tags zu verwenden, wie 'tags: [ 'foo', 'bar', 'foo-bar']', das ist ein wenig hässlich ... :-( – chmac

Antwort

18

ansible Tags verwenden „oder“ nicht „und“ als Vergleich. Ihre Lösung zum Erstellen eines weiteren Tags ist die richtige.

0

Ich glaube, die richtige Syntax lautet:

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

Ist das eine Befehlszeilenoption? – chmac

+0

Sorry das Markup war falsch. Es ist tatsächlich, wie es in der Playbook aussehen würde. – foofunner

+0

OK, denke, das ist über mehrere Tags zu einem einzelnen Element zuweisen, aber don Ich denke, es hilft, nur Elemente zu verwenden, die * multiple * -Tags haben ... – chmac

Verwandte Themen