Ansible 仅在 运行 单个角色时通知
Ansible only notify when run single roles
我不知道为什么我的 ansible 配置只在我 运行 单个角色时通知。
如果我使用这个配置
---
- name: Install PHP-Fpm, Nginx, MariaDB, pure-ftpd on CentOS 7 with Optimized
hosts: all
roles:
- nginx
Ansible return
https://pastebin.com/pW7Npj60
但是如果我使用这个配置
---
- name: Install PHP-Fpm, Nginx, MariaDB, pure-ftpd on CentOS 7 with Optimized
hosts: all
roles:
- nginx
- mariadb
Ansible return https://pastebin.com/tvkdpJiD
这就是ansible跳过启动服务的意思吗?
您的 mariadb
角色有失败的任务,因此主机被标记为失败并且没有执行此失败主机的处理程序。
默认情况下,每个角色的所有处理程序都在应用所有角色后执行,如果主机没有失败。
您可以:
使用 force_handlers 选项强制 Ansible 执行处理程序,即使此主机的任务失败也是如此。
使用meta: flush_handlers作为你角色的最后一个任务,在每个角色之后强制执行处理程序(如果它们被触发)。
我不知道为什么我的 ansible 配置只在我 运行 单个角色时通知。
如果我使用这个配置
---
- name: Install PHP-Fpm, Nginx, MariaDB, pure-ftpd on CentOS 7 with Optimized
hosts: all
roles:
- nginx
Ansible return
https://pastebin.com/pW7Npj60
但是如果我使用这个配置
---
- name: Install PHP-Fpm, Nginx, MariaDB, pure-ftpd on CentOS 7 with Optimized
hosts: all
roles:
- nginx
- mariadb
Ansible return https://pastebin.com/tvkdpJiD
这就是ansible跳过启动服务的意思吗?
您的 mariadb
角色有失败的任务,因此主机被标记为失败并且没有执行此失败主机的处理程序。
默认情况下,每个角色的所有处理程序都在应用所有角色后执行,如果主机没有失败。
您可以:
使用 force_handlers 选项强制 Ansible 执行处理程序,即使此主机的任务失败也是如此。
使用meta: flush_handlers作为你角色的最后一个任务,在每个角色之后强制执行处理程序(如果它们被触发)。