有条件的Ansible中的通知取决于角色

史蒂夫·E。

在Ansible中,是否有可能仅在播放中存在处理程序时有条件地通知处理程序?

例如:我有一本用于多种主机配置的手册。有些主机使用Apache运行PHP,有些则使用PHP-FPM。根据主机的不同,修改PHP时需要运行不同的处理程序。

这是问题的一个简单示例:

- name: copy php.ini
  copy:
    src=roles/php/templates/{{ php_template }}/php.ini
    dest=/etc/
  notify:
    - reload php-fpm
    - reload apache

显然,我想做的是在php.ini文件更改时通知正确的软件重新加载。但是,Ansible会产生错误,因为在任何时候都只有一个处理程序出现在剧本中,例如:

ERROR: change handler (reload php-fpm) is not defined

有没有一种方法可以在不产生错误或不复制Ansible代码的情况下实现这一目标?
提前致谢

史蒂夫·E。

最后,我通过检测相关角色的存在并使用它来确定要运行的处理程序,找到了一种解决方案。如果您可以找到更短的方法,请发布答案。

roles/php/tasks/main.yml
----
- name: detect apache
  shell: 
    'ls /etc/init.d/ | grep httpd | wc -l'
  register:
    httpd_exists
- name: detect php-fpm
  shell: 
    'ls /etc/init.d/ | grep php-fpm | wc -l'
  register:
    phpfpm_exists

然后为每个相关处理程序创建本地通知程序:

 notify:
   - php reload apache
   - php reload php-fpm

然后仍然扮演相同的角色,将条件添加到本地处理程序。

roles/php/handlers/main.yml
---
- name: php reload apache
  include: ../../apache/handlers/main.yml
  when: (httpd_exists.stdout == '1')

- name: php reload php-fpm
  include: ../../php-fpm/handlers/main.yml
  when: (phpfpm_exists.stdout == '1')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有条件的HTML类,取决于页面

来自分类Dev

有条件的更新,取决于匹配的字段

来自分类Dev

有条件地包含ansible角色的变量文件

来自分类Dev

有条件地运行 ansible 角色处理程序

来自分类Dev

Ansible-有条件地在角色中包含文件

来自分类Dev

CPP中的Valgrind和内存泄漏:“有条件的跳转或移动取决于未初始化的值”

来自分类Dev

Valgrind ::有条件的跳跃或移动取决于未初始化的值

来自分类Dev

有条件的Rails实例方法取决于所设置的属性

来自分类Dev

Valgrind:“有条件的跳跃或移动取决于未初始化的值”

来自分类Dev

铁路由器-有条件的路由,取决于租户

来自分类Dev

有条件的批处理文件取决于用户对VBScript MsgBox的响应

来自分类Dev

释放字符时,“有条件的跳转或移动取决于未初始化的值”

来自分类Dev

有条件的s,取决于反向引用是否相同

来自分类Dev

有条件地进行导航,具体取决于登录是否成功

来自分类Dev

尝试有条件地禁用链接,具体取决于通过javascript / jquery的链接文本

来自分类Dev

有条件的has_one关系取决于布尔值

来自分类Dev

有条件的SELECT取决于一组规则

来自分类Dev

有条件的JavaScript公式,取决于是否已选中复选框

来自分类Dev

铁路由器-有条件的路由,取决于租户

来自分类Dev

MySQL的:有条件的选择/ concat取决于列匹配

来自分类Dev

有条件的去抖动,取决于 event.keyCode

来自分类Dev

有条件地更新WordPress中的角色

来自分类Dev

“有条件的跳转或移动取决于未初始化的值”,但是分配功能未在堆栈跟踪中列出。如何?

来自分类Dev

如何有条件地运行useEffect,具体取决于同一周期的状态

来自分类Dev

如何有条件地格式化Kendo UI网格单元格(取决于值)

来自分类Dev

有条件的跳转或移动取决于未初始化的值和无效的大小写

来自分类Dev

Scala:最惯用的方式有条件地执行一个Future取决于另一个吗?

来自分类Dev

在xpath中没有条件

来自分类Dev

有条件的地方在codeigniter中

Related 相关文章

  1. 1

    有条件的HTML类,取决于页面

  2. 2

    有条件的更新,取决于匹配的字段

  3. 3

    有条件地包含ansible角色的变量文件

  4. 4

    有条件地运行 ansible 角色处理程序

  5. 5

    Ansible-有条件地在角色中包含文件

  6. 6

    CPP中的Valgrind和内存泄漏:“有条件的跳转或移动取决于未初始化的值”

  7. 7

    Valgrind ::有条件的跳跃或移动取决于未初始化的值

  8. 8

    有条件的Rails实例方法取决于所设置的属性

  9. 9

    Valgrind:“有条件的跳跃或移动取决于未初始化的值”

  10. 10

    铁路由器-有条件的路由,取决于租户

  11. 11

    有条件的批处理文件取决于用户对VBScript MsgBox的响应

  12. 12

    释放字符时,“有条件的跳转或移动取决于未初始化的值”

  13. 13

    有条件的s,取决于反向引用是否相同

  14. 14

    有条件地进行导航,具体取决于登录是否成功

  15. 15

    尝试有条件地禁用链接,具体取决于通过javascript / jquery的链接文本

  16. 16

    有条件的has_one关系取决于布尔值

  17. 17

    有条件的SELECT取决于一组规则

  18. 18

    有条件的JavaScript公式,取决于是否已选中复选框

  19. 19

    铁路由器-有条件的路由,取决于租户

  20. 20

    MySQL的:有条件的选择/ concat取决于列匹配

  21. 21

    有条件的去抖动,取决于 event.keyCode

  22. 22

    有条件地更新WordPress中的角色

  23. 23

    “有条件的跳转或移动取决于未初始化的值”,但是分配功能未在堆栈跟踪中列出。如何?

  24. 24

    如何有条件地运行useEffect,具体取决于同一周期的状态

  25. 25

    如何有条件地格式化Kendo UI网格单元格(取决于值)

  26. 26

    有条件的跳转或移动取决于未初始化的值和无效的大小写

  27. 27

    Scala:最惯用的方式有条件地执行一个Future取决于另一个吗?

  28. 28

    在xpath中没有条件

  29. 29

    有条件的地方在codeigniter中

热门标签

归档