将主机作为变量从角色传递到下一角色

问题描述 投票:0回答:1

我有一本很长的剧本,其中定义了许多角色。现在我需要一个角色,我需要将主机作为变量传递给主机,该变量将在较早的角色上定义。例如剧本

    ---
- name: task1
  hosts: app1
  gather_facts: no
  any_errors_fatal: true
  roles:
    - role-1

- name: task2
  hosts: "{{ host }}" 
  any_errors_fatal: true
  gather_facts: no
  roles:
    - role-2

我的角色-1

---
     - name: setting the var
       set_fact:
          host: "app2"

     - debug:
          var: host

我的角色2

---
      - debug:
              var: host
      - name: do something
        file:
          path: /home/ec2-user/dir1
          state: directory
          mode: '0755'

但是,当我尝试运行我的剧本时,我的角色2被跳过了,因为没有主机匹配。有人可以指出我如何使该设置正常工作。

ansible ansible-inventory
1个回答
0
投票

您想要的是add_host:,然后将新创建或分配的组设置为第二播放的add_host:

hosts:
© www.soinside.com 2019 - 2024. All rights reserved.