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功能还是蛮常用的,至少我还经常用的到,因为小巧实用,就经常被我“宠幸”,你也应该留意一下这个功能,以后不一定可以用的着。最后,如果觉的还不错,可以点击下方的“打赏”哦。

夜晚的蚊子,是真的可以吃人!


人生是个圆,有的人走了一辈子也没有走出命运画出的圆圈,其实,圆上的每一个点都有一条腾飞的切线。

260979a5469de219502e13ba3b469354.jpeg

玩代码、玩技术

长按识别二维码,关注“果冻想”

如果觉得还不错,可以点个“在看”哦~

posted @ 2020-10-28 09:07  ^_^果冻^_^  阅读(1)  评论(0编辑  收藏  举报  来源