Передать хост как переменную из роли в следующую роль - PullRequest
0 голосов
/ 18 марта 2020

У меня длинная книга с определенным количеством ролей. Теперь у меня есть требование для одной роли, мне нужно передать хост как переменную, которая будет определена в более ранней роли. например, playbook

    ---
- 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 пропускается, потому что не найдено ни одного хоста. может кто-нибудь указать мне, как заставить эту установку работать.

1 Ответ

0 голосов
/ 19 марта 2020

То, что вы хотите, это add_host:, а затем установите вновь созданную или назначенную группу в качестве hosts: 2-го воспроизведения:

- hosts: app1
  tasks:
  - add_host:
      name: app2
      groups:
      - my-group

- hosts: my-group
  tasks:
  - debug: var=ansible_host
...