给tasks打tags
可以给tasks中的每个任务打tags以列表的方式书写,可以打多个:['tag1','tag2','tag3']
也可以给整个tasks打大标签,作为多个任务的共有tags示例如下
- hosts: PCremote_user: jacktasks:
- name: copy hoststags: ['hosts']copy:src: /etc/hostsdest: /home/jack/backup: yes
- hosts: PDremote_user: roottasks:
- name: add usertags: ['user']user:name: jiaouid: 1500password: $6$iWcHDljL6NvS45z9$Y/WMWbLhvjSOgl.NOM2sEpBbN6A4ghQiUFwImiyzmVq2JhVp.b3taieZFR4fx3npQY3Dk6OkkUuwnfGqw/DvA.
- name: add crontags: ['cron']cron:name: cron for jiaouser: jiaominute: '0'hour: '15'job: echo my lovenotify: hd1
- meta: flush_handlers
- name: touch filetags: ['file']file:path: /home/jiao/teststate: touchowner: jiaogroup: jiaomode: 0777
-
hosts: PB
remote_user: roottasks:- name: install apachetags: ['apache']yum:name: httpdstate: installednotify: hd2
handlers:
- name: reload crondlisten: hd1service:name: crondstate: reloaded
- name: restart httpdlisten: hd2service:name: httpdstate: restarted
查看tags: ansible-playbook --list-tags test9.yml
执行某个tags:ansible-playbook --tags apache test9.yml
执行多个tags:ansible-playbook --tags user,file test9.yml
跳过已执行的tags:ansible-playbook --skip-tags cron,file,user,apache test9.yml
执行未打tags的任务:ansible-playbook --tags untagged test9.yml
执行所有打tags的任务:ansible-playbook --tags tagged test9.yml
ansible还预置了5个特殊tag,这5个特殊tag分别为
always任务就总是会被执行,除非你使用'--skip-tags'选项明确指定不执行对应的任务
never(2.5版本中新加入的特殊tag)
tagged 打过标签的任务
untagged 未打过标签的任务
all 所有任务
精彩评论