ansible的tags的用法

若是一個playbook,有不少的任務,在實際使用這個劇本時,你可能只是想要執行裏面的一部分任務而已,或者只想要執行其中一類任務而已,而非想要執行整個劇本中的所有任務,這個時候能夠藉助tag實現這個需求。ide

見名知意,tag能夠對任務進行’打標籤‘的操做,當任務存在標籤之後,咱們就能夠在執行playbook時,藉助標籤。指定執行哪些任務,或者指定不執行哪些任務。3d

例如:blog

image.png

如上因此,咱們有3個task分別對應3個tag,實際應用中,tag應該是見名知意的,如今每一個task都有本身的標籤,對於上述的playbook時,咱們只想要執行task2,該如何執行呢?繼承

image.png

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

image.png


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

image.png

以下:不一樣的任務可使用相同的標籤。class

image.png

上例中每一個任務都會多個標籤,並且每一個任務都有一個共同的標籤,就是httpd標籤,因此,當咱們執行ansible-playbook  --tags=httpd tagtouchfile.yaml,上述兩個任務都會執行,對於上面play中的全部任務獨有共同的httpd標籤,像這種狀況,咱們能夠把httpd標籤提取出來,寫在paly中:file

image.png

當tags寫在paly中而非task中時,play中的全部task會繼承當前play中的tags,而上例中,兩個task任務都會繼承httpd這個標籤,同時還會擁有本身的標籤。語法

相關文章
相關標籤/搜索