tags可以幫助我們對任務進行’打標簽’的操作,當任務存在標簽以后,我們就可以在執行playbook時,借助標簽,指定執行哪些任務,或者指定不執行哪些任務。在實際的使用中,我們應該讓tags的值能夠見名知義。
當指定標簽后,只有標簽對應的任務會被執行,其他任務都不會被執行
除了能夠指定”需要執行的任務”,還能夠指定”不執行的任務”,使用?–skip-tags
選項指定”不執行的任務”,可以為每個任務添加多個標簽,三種語法添加多個標簽的示例如下
tags:- testtag- t1tags: tag1,t1tags: ['tagtest','t2']
當tags寫在play中而非task中時,play中的所有task會繼承當前play中的tags,而上例中,兩個任務都會繼承httpd標簽,同時還有擁有自己的標簽。
在調用標簽時,也可以一次性指定多個標簽,調用多個標簽需要用逗號隔開,在調用標簽之前,如果你想要概覽一下playbook中都有哪些標簽,可以使用?–list-tags
選項,其實,ansible還預置了5個特殊tag,這5個特殊tag分別為
alwaysnever(2.5版本中新加入的特殊tag)tagged
表示只執行有標簽的任務,沒有任何標簽的任務不會被執行
untagged
只執行沒有標簽的任務,但是如果某些任務包含always標簽,那么這些任務也會被執行。all特殊標簽all表示所有任務會被執行,不用指定,默認情況下就是使用這個標簽
?如果你不想執行標簽中包含always的任務,你可以使用–skip-tags always
選項明確指定跳過它們
?