目录
ansible标签也是挻重要的,任务执行可以直接指定标签,也可以跳过代码片断。
一、标签tgas说明
tags用于让用户选择运行playbook中的部分代码。ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长。此时,如果确信其没有变化,就可以通过tags跳过此些代码片断。
当任务task的时候,重复执行多次,只有一个任务做了修改,如果我们可以在那里任务做一个tags(标签),运行指定tags的任务即可。
二、例子
例如前面文章《ansible 剧本Playbooks(一) 介绍、组件及使用》中的“6.3 优化 例2”,我们安装nginx,其中有一项是复制nginx配置文件的,还有一个任务是创建index.html的,我现在只修改一下index.html的内容,配置文件没动
#重新写入yaml文件,只在copy添加tags,只修改网页内容,加粗而已
cat>myYAML/config_nginx.yml<<EOF
---
- hosts: hua
remote_user: root
vars:
- indexhtml: /disk1/www/hualinux.com/index.html
- service: nginx
tasks:
- copy:
src: /disk1/ansible_conf/nginx/18/default.conf
dest: /etc/nginx/conf.d/default.conf
- name: creat nginx index.html
shell: echo '<h3>hualinux.com</h3>' > {{ indexhtml }}
notify:
- restart {{ service }}
tags:
- html
handlers:
- name: restart {{ service }}
service:
name: "{{ service }}"
state: restarted
EOF
cat myYAML/config_nginx.yml
#指定标签 执行剧本
ansible-playbook myYAML/config_nginx.yml --tags "html"
[root@vm82 ansible]# ansible-playbook myYAML/config_nginx.yml --tags "html"
PLAY [hua] **********************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************
ok: [192.168.3.21]
TASK [creat nginx index.html] ***************************************************************************************
changed: [192.168.3.21]
RUNNING HANDLER [restart nginx] *************************************************************************************
changed: [192.168.3.21]
PLAY RECAP **********************************************************************************************************
192.168.3.21 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
web访问效果: