仅从ansible playbook运行一个任务和处理程序

仅从ansible playbook运行一个任务和处理程序,ansible,ansible-playbook,Ansible,Ansible Playbook,如何从Ansible playbook和处理程序运行单个任务,该处理程序在任务成功完成时收到通知,同时跳过相关playbook中的所有其他任务 目前,我执行以下操作: ansible-playbook --start-at-task "task1" --step -K -i hosts playbook.yml 然后在任务完成后按Ctrl+c。但是,这也将跳过处理程序 我知道我可以向任务添加一个标记并使用它,如中所示,但我更希望能够在不添加标记的情况下执行此操作。这是可能的吗?目前ansibl

如何从Ansible playbook和处理程序运行单个任务,该处理程序在任务成功完成时收到通知,同时跳过相关playbook中的所有其他任务

目前,我执行以下操作:

ansible-playbook --start-at-task "task1" --step -K -i hosts playbook.yml
然后在任务完成后按Ctrl+c。但是,这也将跳过处理程序


我知道我可以向任务添加一个标记并使用它,如中所示,但我更希望能够在不添加标记的情况下执行此操作。这是可能的吗?

目前ansible playbook没有提供任何允许您运行单个任务的功能,例如
--task
。因此,对我来说,标签和标签是这里最好的解决方案。

可以运行单独的角色(从
角色/
目录):

和单独的任务文件:

ansible -i stage.yml -m include_tasks -a file=tasks/create-os-user.yml localhost

如果您将任务从角色外部化到根目录
任务/
(重用是通过
导入任务:../../../tasks/create os user.yml实现的),您可以独立于playbook/role运行它。

您能详细说明为什么要避免添加标记吗?因为你可以想出几种方法,但它们都比添加标签更麻烦,因为它看起来太麻烦了。此外,考虑到有一个直接选项可以跳过以前的任务,因此也有一个直接选项可以跳过以后的任务似乎是有意义的。根据这里的答案,情况似乎并非如此,因此我很想接受塞德里克·莫伦特的答案。
ansible -i stage.yml -m include_tasks -a file=tasks/create-os-user.yml localhost