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作为你角色的最后一个任务,在每个角色之后强制执行处理程序(如果它们被触发)。