coverl 发表于 2018-7-30 11:49:26

Ansible中的tags使用

  如果你有一个很大的playbook,而你只想run其中的某个task,这个时候tags是你的最佳选择。
  如何使用呢?
  一、最常见的使用形式:
  抄取官方的实例:
tasks:  

  
    - yum: name={{ item }} state=installed
  
      with_items:
  
         - httpd
  
         - memcached
  
      tags:
  
         - packages
  

  
    - template: src=templates/src.j2 dest=/etc/foo.conf
  
      tags:
  
         - configuration
  此时若你希望只run其中的某个task,这run 的时候指定tags即可
ansible-playbook example.yml --tags "configuration,packages"   #run 多个tags  
ansible-playbook example.yml --tags packages                   # 只run 一个tag
  相反,也可以跳过某个task
ansible-playbook example.yml --skip-tags configuration  二、tags 和role 结合使用
  tags 这个属性也可以被应用到role上,例如:
roles:  
- { role: webserver, port: 5000, tags: [ 'web', 'foo' ] }
  三、tags和include结合使用
- include: foo.yml tags=web,foo  这样,fool.yml 中定义所有task都将被执行
  四、系统中内置的特殊tags:
  always、tagged、untagged、all 是四个系统内置的tag,有自己的特殊意义
  always: 指定这个tag 后,task任务将永远被执行,而不用去考虑是否使用了--skip-tags标记
  tagged: 当 --tags 指定为它时,则只要有tags标记的task都将被执行,--skip-tags效果相反
  untagged: 当 --tags 指定为它时,则所有没有tag标记的task 将被执行,--skip-tags效果相反
  all: 这个标记无需指定,ansible-playbook 默认执行的时候就是这个标记.所有task都被执行
页: [1]
查看完整版本: Ansible中的tags使用