Ansible 在与本地不同的主机上运行任务

Ansible 在与本地不同的主机上运行任务

我有一个在本地主机上运行的 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

答案2

相关内容