ansible任务控制-handlers
handlers作用
- handlers用于notify监控发生变更后的动作触发,例如当某一个服务配置文件发生变更时重启服务
handlers流程
-
1.配置notify监控,例如监控nginx的配置文件
-
2.发送通知到handlers
-
3.handlers触发动作
示例:当nginx配置文件发生变更时重启服务
编辑yml文件
提示
notify后的内容可以任意,但是handlers后的name下的内容必须 与notify后定义的名称一致
handlers会在所有任务正确执行完成后执行,只会执行一次,并且只有当tasks改变后才会触发handlers
cat > task_handlers.yml < EOF
- hosts: devops02
tasks:
- name: copy nginx conf
copy:
src: ./file/nginx.conf
dest: /etc/nginx
notify: restart nginx
handlers:
- name: restart nginx
service:
name: nginx
state: restarted
EOF
执行yml文件
$ ansible-playbook task_handlers.yml
PLAY [devops02] ****************************************************************************************************************************************
TASK [Gathering Facts] *********************************************************************************************************************************
ok: [devops02]
TASK [copy nginx conf] *********************************************************************************************************************************
changed: [devops02]
RUNNING HANDLER [restart nginx] ************************************************************************************************************************
changed: [devops02]
PLAY RECAP *********************************************************************************************************************************************
devops02 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0