我有一个在本地主机上运行的 ansible 剧本。我需要运行一个特定任务,该任务在不同的主机(不同的组)上的剧本中调用。是否可以在任务中指定此任务应使用不同的连接,而不是所有其他任务和角色使用的本地连接?
role1: (runing on localhost)
- task1
- task2
- include_role:role2
tasks_from: task4 (should run on controllergroup)
role2:
- task4
- task5
不调用两个 ansible playbook 是否可以实现这种情况?
这是詹金斯工作的一部分,我做了两个触发器来分别调用 ansible 剧本,我想在角色 1 中执行此操作
答案1
问:“不调用两个 ansible playbook 是否可以实现这种情况?“
答:是的。这是可能的。将剧本分成几个部分,例如
- hosts: localhost
tasks:
- include_role:
name: role1
tasks_from: task1
- include_role:
name: role1
tasks_from: task2
- hosts: controllergroup
tasks:
- include_role:
name: role2
tasks_from: task4
- hosts: localhost
tasks:
- include_role:
name: role2
tasks_from: task4
- include_role:
name: role2
tasks_from: task5