Ansible condicional com a variável

0

Pergunta

Eu tenho que criar um cluster, onde determinados pacotes devem ser instalados em todos os hosts, enquanto outros pacotes são instalados em máquinas específicas somente.

Eu gostaria de adicionar uma condicional para o meu yum install loop para selecionar o host de destino com base na minha grupos de inventário (master, slave, todos).

- 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'}

Eu entendo que jinja2 de modelagem não é uma opção, mas eu não conseguia descobrir o que é o caminho certo para fazê-lo. Obrigado!

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

Melhor resposta

3

Você não ter compreendido o aviso. Condicionais como when já é um Jinja expressão, então você não deve usar adicionais Jinja delimitadores de dentro deles. Isso não significa que você não pode usar variáveis, isso significa que você não precisa fazer nada de especial para acessá-los.

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

Aprecio muito isso! Trabalhou como um encanto!
János

Em outros idiomas

Esta página está em outros idiomas

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