Fork me on GitHub

Tags 标签

Ansible的标签(Tags)功能可以给role,file,task,playbook,然后利用这些标签来指定要运行Playbook中的个别任务,或不执行指定的任务,并且它的语法非常简单

使用场景

选择性任务执行:当您不需要运行整个 Playbook 时,可以选择性地运行部分任务。
调试和测试:调试复杂的 Playbook 时,可以只运行相关部分,减少调试时间。
定期任务:在日常运维中,某些任务可能需要定期执行,可以通过标签快速调用这些任务。

tags: ['always'] 表示这个tags代表的任务一定会执行

---
    # 可以给整个Playbook的所有任务打一个标签
    - hosts: ubuntu
      gather_facts: yes
      tags: deploy
      #roles:
      # 给角色打的标签将会应用于角色下所有的任务
      # - { role: tomcat, tags: ['tomcat', 'app'] }
      tasks:
         - name: setup
           setup:
           tags:
             - always
         - name: Notify on completion.
           debug:
             msg: "{{inventory_hostname}} is finished!"
           ignore_errors: yes
           tags: ['hostname','hostname2','hostname3']

         - name: print ip
           debug:
             msg: "{{ inventory_hostname }} :::::{{ ansible_all_ipv4_addresses }} "
             #ignore_errors: yes
           tags:
            - ip
            - ip2
            - ip3
         - name: print ip
           debug:
             msg: "The IP address of {{ inventory_hostname }} is {{ ansible_default_ipv4.address }}"

通过指定tags执行指定任务

ansible-playbook playbook5.yaml --tags deploy

ansible-playbook playbook5.yaml --tags ip

ansible-playbook playbook5.yaml --tags "hostname,ip"

ansible-playbook playbook5.yaml --skip-tags ip
ansible-playbook playbook5.yaml --skip-tags "hostname,ip"
posted on 2024-08-19 18:36  anyux  阅读(111)  评论(0)    收藏  举报