Ansible warunkowy zmiennej

0

Pytanie

Muszę utworzyć klaster, w którym określone pakiety muszą być zainstalowane na wszystkich hostach, podczas gdy inne pakiety są instalowane tylko na niektórych hostach.

Chcę dodać warunek w swój cykl zabudowy yum, aby wybrać docelowy host jest na podstawie moich grup inwentarza (główny, slave, wszystkie).

- name: Install Package
  when: inventory_hostname in groups[ {{item.host }} ]
  yum:
    name: "{{ item.name }}"
    state: present
  loop:
    - {name: 'package_1', host: 'master'}
    - {name: 'package_2', host: 'slave'}
    - {name: 'package_3', host: 'all'}

Rozumiem, że tworzenie szablonów jinja2-to nie jest opcja, ale nie mogłem znaleźć odpowiedni sposób, aby to zrobić. Dziękuję!

ansible conditional-statements loops
2021-11-23 07:42:47
1

Najlepsza odpowiedź

3

Źle zrozumiałeś, to ostrzeżenie. Warunki, takie jak when już są wyrazem Jinja, więc nie należy używać w nich dodatkowe dzielniki Jinja. To nie oznacza, że nie możesz używać zmiennych, to oznacza, że nie musisz robić nic specjalnego, aby uzyskać do nich dostęp.

  when: inventory_hostname in groups[item.host]
2021-11-23 09:16:49

Bardzo ci wdzięczny! Działa jak zaklęcie!
János

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................