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这个标签,同时还会拥有本身的标签。语法

相关文章
相关标签/搜索