要解决"Ansible角色中的处理程序不触发"问题,您可以尝试以下方法:
handlers目录下的main.yml文件中定义。例如:# roles/myrole/handlers/main.yml
- name: restart service
service:
name: myservice
state: restarted
notify关键字触发。例如:# roles/myrole/tasks/main.yml
- name: Install package
yum:
name: mypackage
state: present
notify: restart service
# playbook.yml
- hosts: myhosts
roles:
- myrole
handlers关键字来引用处理程序。处理程序应该在主playbook的底部使用handlers关键字定义。例如:# playbook.yml
- hosts: myhosts
roles:
- myrole
handlers:
- include: roles/myrole/handlers/main.yml
notify关键字后面的名称一致。例如:# roles/myrole/handlers/main.yml
- name: restart service
service:
name: myservice
state: restarted
# roles/myrole/tasks/main.yml
- name: Install package
yum:
name: mypackage
state: present
notify: restart service
通过执行以上步骤,您应该能够解决Ansible角色中的处理程序不触发的问题。
上一篇:Ansible角色中的变量循环
下一篇:Ansible角色中的文件目录