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 @   ^_^果冻^_^  阅读(7)  评论(0编辑  收藏  举报  
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示