如何在 Ansible Playbook 中定义和使用处理程序

在 Ansible 中,句柄是任务的同义词,但这里有一个问题——当它被侦听的另一个事件或任务调用时,它会被触发以采取行动。 处理程序主要用于执行辅助任务,这些任务会继续安装新服务,例如 Web 服务器或数据库。 这些任务包括在配置文件中进行修改后重新启动或重新加载服务。 处理程序只运行然后一个任务承担一个 通知 指示。

带有用于重启 Nginx 的处理程序的 Ansible Playbook 文件

为了牢牢掌握 Ansible 中处理程序的作用,我们将创建一个简单的 playbook 文件,名为 install_nginx.yml. 该剧本包含在远程 Ubuntu 节点上安装 Nginx 网络服务器的单个剧本。 安装后, 通知 指令指示处理程序重新启动 Nginx 服务

请注意“通知”定义与处理程序的名称匹配。 正如你所看到的’重启 Nginx’ 下的定义 通知 指令匹配 playbook 中 Handler 的名称。

现在,让我们运行 playbook 文件。

$ ansible-playbook /etc/ansible/install_nginx.yml -K

从下面的输出中,您可以看到 Ansible 先执行了任务,然后是处理程序。 此外,您可以看到它记录了 2 个更改,这些更改实际上是 Nginx 的安装和由处理程序执行的 Nginx 服务的重新启动。 首要任务是安装 Nginx,而次要任务是重新启动 Nginx 网络服务器。