ansible-playbook的tag标签

ansible预置了5个特殊tag,分别为always、never(2.5版本中新加入的)、tagged、untagged、all

当我们把任务的tags的值指定为always时,那么这个任务就总是被执行,除非使用--skip-tags选项明确指定不执行对应的任务

---
- name: Add administrator user
  user:
    name: {{admin_user}}
    shell: /bin/bash
    state: present
- name: Config administrator password for administrator user
  user:
    name: {{admin_user}}
    password: {{admin_user_passwd}}
- name: Delete administrator user
  user:
    name: {{admin_user}}
    state: absent
  tag: delete_admin_user
- name: Modify root passwd
  user:
    name: root
    password: {{root_passwd}}
  tag: modify_root_pwd,always

当执行ansible-playbook --tags delete_admin_user test.yaml后,不但执行了delete_admin_user的标签任务,还执行了拥有always标签的任务。

如果不想执行标签中包含always的任务,使用--skip-tags always选项,就会跳过所有包含always标签的任务。

对于never标签,其作用与always正好相反。

对于tagged、untagged、all三个特殊标签,并非像always和never一样作为标签值存在,而是在调用标签时使用

ansible-playbook --tags tagged test.yaml

上述命令表示只执行有标签的任务,没有任何标签的任务不会执行。

ansible-playbook --skip-tags tagged test.yaml

上述命令表示跳过包含标签的任务,即使拥有always标签,也会跳过。

ansible-playbook --tags untagged test.yaml 

上述命令表示只执行没有标签的任务,但拥有always标签的任务,仍然会被执行。

ansible-playbook --skip-tags untagged test.yaml

上述命令表示跳过没有标签的任务。

在调用标签之前,如果要概览playbook中都有哪些标签,可以使用--list-tags选项。

参考文献:http://www.zsythink.net/archives/2641/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐