ansible的tags的用法

如果一個playbook,有很多的任務,在實際使用這個劇本時,你可能只是想要執行裏面的一部分任務而已,或者只想要執行其中一類任務而已,而非想要執行整個劇本中的全部任務,這個時候可以藉助tag實現這個需求。

見名知意,tag可以對任務進行’打標籤‘的操作,當任務存在標籤以後,我們就可以在執行playbook時,藉助標籤。指定執行哪些任務,或者指定不執行哪些任務。

例如:

image.png

如上所以,我們有3個task分別對應3個tag,實際應用中,tag應該是見名知意的,現在每個task都有自己的標籤,對於上述的playbook時,我們只想要執行task2,該如何執行呢?

image.png

還可以使用--skip-tags選項指定不執行的任務,如下所以,task1和task3都會執行,task2不會執行。

image.png


上面的3種語法都可以指定標籤,不過每個任務只有一個標籤,其實,我們可以爲每個任務添加多個標籤,3中語法添加多個標籤如下:

image.png

如下:不同的任務可以使用相同的標籤。

image.png

上例中每個任務都會多個標籤,而且每個任務都有一個共同的標籤,就是httpd標籤,所以,當我們執行ansible-playbook  --tags=httpd tagtouchfile.yaml,上述兩個任務都會執行,對於上面play中的所有任務獨有共同的httpd標籤,像這種情況,我們可以把httpd標籤提取出來,寫在paly中:

image.png

當tags寫在paly中而非task中時,play中的所有task會繼承當前play中的tags,而上例中,兩個task任務都會繼承httpd這個標籤,同時還會擁有自己的標籤。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章