Ansible 处理程序不起作用,除非我将它们包含在我的游戏中?

时间:2021-03-02 17:59:01

标签: ansible ansible-2.x ansible-inventory ansible-facts ansible-template

我全新安装了 Ansible 2.9.17,除了处理程序外,一切都很好:-/ 出于某种原因,我的 ~roles/myservice/handlers/main.yml 没有加载,除非我包括:处理程序:在每个主机之后:我的 main.yml 文件中的行。
例子:

handlers:
- import_tasks: ../handlers/main.yml

我可以这样做,但我发现每个主机一次又一次地指定“相同的处理程序”:条目很烦人。这不能是 ansible 这样做的最佳实践。其他人以前遇到过这个问题吗?一定有我遗漏的配置...

我的文件夹结构:

~/roles/myservice/
                 ├── handlers
                 │   └── main.yml
                 ├── tasks
                 └── main.yml

我的角色/myservice/handlers/main.yml 是:

- name: restart myservice
  service:
    name: myservice
    state: restarted
  become: yes
  listen: restart myservice

roles/myservice/tasks/main.yml 是:

- name: Installing myservice
  become: yes
  become_user: root
  yum:
    name: myservice.rpm
  notify:
    - restart myservice

但是当我运行该剧时:

$  ansible-playbook -i hosts roles/myservice/tasks/main.yml --limit myservice

PLAY [myservice] ******************************************* ****************************************************** ****************************************************** ****************************

任务 [收集事实] ********************************************** ****************************************************** ****************************************************** **************************************************** 好的:[我的服务]

任务 [安装我的服务。] ********************************************* ****************************************************** ****************************************************** ******************************************** 好的:[我的服务]

任务 [收集事实] ********************************************** ****************************************************** ****************************************************** **************************************************** 好的:[我的服务]

TASK [安装 myservice] ******************************************** ****************************************************** **************************************** 错误!在主处理程序列表和侦听处理程序列表中都找不到请求的处理程序“restart myservice”

1 个答案:

答案 0 :(得分:1)

您正在将 { "type": "array", "items": { "type": "object", "properties": { "companyName": { "type": "string" }, "departments": { "type": "array", "items": { "type": "object", "properties": { "departmentName": { "type": "array" }, "status": { "type": "string" }, "employees": { "type": "array", "items": { "type": "object", "properties": { "employeeName": { "type": "string" }, "employeeSurname": { "type": "string" }, "position": { "type": "string" } } } } } } } } } } 文件作为剧本执行,您需要创建一个执行角色的剧本

main.yml