运行 ansible 剧本中只有一个任务和处理程序
Run only one task and handler from ansible playbook
我如何 运行 来自 Ansible 剧本的单个任务和在该任务成功完成时收到通知的处理程序,同时跳过相关剧本中的所有其他任务?
目前我执行的是:
ansible-playbook --start-at-task "task1" --step -K -i hosts playbook.yml
然后在任务完成后按Ctrl+c。但是,这也会跳过处理程序。
我知道我可以向任务添加标签并使用它,就像在 How to run only one task in ansible playbook? 中一样,但我更希望能够在不添加标签的情况下执行此操作。这可能吗?
ansible-playbook 目前没有任何东西可以让你 运行 一个单一的任务,比如 --task
。因此,对我来说,标签和 --tags
选项是您最好的解决方案。
可以 运行 一个单独的角色(来自 roles/
目录):
ansible -i stage.yml -m include_role -a name=create-os-user localhost
和一个单独的任务文件:
ansible -i stage.yml -m include_tasks -a file=tasks/create-os-user.yml localhost
如果您将任务从角色外部化到根 tasks/
目录(通过 import_tasks: ../../../tasks/create-os-user.yml
实现重用),您可以 运行 它独立于 playbook/role.
我如何 运行 来自 Ansible 剧本的单个任务和在该任务成功完成时收到通知的处理程序,同时跳过相关剧本中的所有其他任务?
目前我执行的是:
ansible-playbook --start-at-task "task1" --step -K -i hosts playbook.yml
然后在任务完成后按Ctrl+c。但是,这也会跳过处理程序。
我知道我可以向任务添加标签并使用它,就像在 How to run only one task in ansible playbook? 中一样,但我更希望能够在不添加标签的情况下执行此操作。这可能吗?
ansible-playbook 目前没有任何东西可以让你 运行 一个单一的任务,比如 --task
。因此,对我来说,标签和 --tags
选项是您最好的解决方案。
可以 运行 一个单独的角色(来自 roles/
目录):
ansible -i stage.yml -m include_role -a name=create-os-user localhost
和一个单独的任务文件:
ansible -i stage.yml -m include_tasks -a file=tasks/create-os-user.yml localhost
如果您将任务从角色外部化到根 tasks/
目录(通过 import_tasks: ../../../tasks/create-os-user.yml
实现重用),您可以 运行 它独立于 playbook/role.