Ansible Playbook中的tags
前言
在编程的时候,我们习惯的会定义很多函数,这些函数只有在我们需要的时候,我们去调用它,它才会执行,那如何让playbook可以有这种类似的功能,实现我们随意调用某一个task的功能呢?
在playbook中,有一个叫做tags的东西,这个东西就可以实现上面我们想要的那种功能,只执行我们想执行的那部分内容。
本文中涉及的试验环境信息如下:
服务器信息如下:
192.168.5.2 # 管理主机
192.168.5.3 # 被管理远程主机
192.168.5.4 # 被管理远程主机
inventory文件内容如下:
[web]
192.168.5.3
192.168.5.4
tags基本用法
下面这是一个简单的playbook:
---
- hosts: web
gather_facts: False
tasks:
- name: action1
debug: msg="I am action1"
tags:
- action1
- name: action2
debug: msg="I am action2"
tags:
- action2
当我们执行时:
当不加任何
tags
参数,那么会执行所有标签对应的任务;可以使用
tags
指定需要执行的指定任务:ansible-playbook tagsTest1.yaml --tags "action1"
可以使用
skip-tags
指定需要跳过执行的任务:ansible-playbook tagsTest1.yaml --skip-tags "action1"
特殊的tags
标签的名字是我们自己定义的,但是总有一些特殊的名称已经被系统占用了,如果我们用这些特殊的标签名就会是不同的结果。
always
我们可以在yaml中指定always
标签,这样的话,在执行playbook的时候,有没有指定指定这个tag,带有always
的task都会被执行。tagged
我们可以使用--tags tagged
来执行所有标记了标签的task,不管标记的标签名字是什么。比如这样执行:ansible-playbook tagsTest1.yaml --tags tagged
untagged
我们可以使用--tags untagged
来执行所有没有标记标签的task,不管标记的标签名字是什么。比如这样执行:ansible-playbook tagsTest1.yaml --tags untagged
all
我们可以使用--tags all
来执行所有的任务。比如这样执行:ansible-playbook tagsTest1.yaml --tags all
总结
tags
功能还是蛮常用的,至少我还经常用的到,因为小巧实用,就经常被我“宠幸”,你也应该留意一下这个功能,以后不一定可以用的着。最后,如果觉的还不错,可以点击下方的“打赏”哦。
夜晚的蚊子,是真的可以吃人!
人生是个圆,有的人走了一辈子也没有走出命运画出的圆圈,其实,圆上的每一个点都有一条腾飞的切线。
玩代码、玩技术
长按识别二维码,关注“果冻想”
如果觉得还不错,可以点个“在看”哦~
![](https://images.cnblogs.com/cnblogs_com/vipygd/1768905/o_200519134052%E5%8D%9A%E5%AE%A2%E7%94%A8%E5%9B%BE.png)