Ansible 处理程序没有开火?
Ansible handlers are not firing?
我是 Ansible(运行 版本 2.2.1.0)的新手,所以到目前为止我一直在遵循基本的目录结构。最近我试图将一些任务移动到 handlers
区域,但我遇到了一些奇怪的行为。
我的树结构如下:
host_inventory
host_vars
site.yml
roles
common
handlers
main.yml
meta
main.yml
tasks
main.yml
vars
main.yml
真的只有两个相关文件(我认为)。
此版本的 tasks/main.yml 确实调用了处理程序:
角色/公共/tasks/main.yml:
---
- name: make test file
shell: "touch /home/hello"
notify: say goodbye
并在 roles/common/handlers/main.yml:
---
- name: say goodbye
shell: "touch /home/goodbye"
这不会调用处理程序:
角色/通用/tasks/main.yml
---
- name: test for file
stat:
path: /home/hello
notify: say goodbye
roles/common/handlers/main.yml
---
- name: say goodbye
shell: "echo something"
我不明白为什么我的 stat
任务没有调用它们的处理程序。
任何人都可以提供一些见解吗?我觉得我错过了一些明显的东西。
仅当任务状态为 changed
时才会通知处理程序。
在您的示例中,shell
任务始终处于 changed
状态,但 stat
任务始终处于 ok
状态。
有关详细信息,请参阅 documentation。
我是 Ansible(运行 版本 2.2.1.0)的新手,所以到目前为止我一直在遵循基本的目录结构。最近我试图将一些任务移动到 handlers
区域,但我遇到了一些奇怪的行为。
我的树结构如下:
host_inventory
host_vars
site.yml
roles
common
handlers
main.yml
meta
main.yml
tasks
main.yml
vars
main.yml
真的只有两个相关文件(我认为)。
此版本的 tasks/main.yml 确实调用了处理程序:
角色/公共/tasks/main.yml:
---
- name: make test file
shell: "touch /home/hello"
notify: say goodbye
并在 roles/common/handlers/main.yml:
---
- name: say goodbye
shell: "touch /home/goodbye"
这不会调用处理程序:
角色/通用/tasks/main.yml
---
- name: test for file
stat:
path: /home/hello
notify: say goodbye
roles/common/handlers/main.yml
---
- name: say goodbye
shell: "echo something"
我不明白为什么我的 stat
任务没有调用它们的处理程序。
任何人都可以提供一些见解吗?我觉得我错过了一些明显的东西。
仅当任务状态为 changed
时才会通知处理程序。
在您的示例中,shell
任务始终处于 changed
状态,但 stat
任务始终处于 ok
状态。
有关详细信息,请参阅 documentation。