Ansible escolhendo a configuração incorreta da variável quando o host pertence a vários grupos de hosts

0

Eu tenho um servidor infra que pertence a dois grupos de host diferentes. Para cada grupo de hosts, eu tenho configurações em group_vars/<host-group>.yml :

# in group_vars/develop.yml
user_name: "develop"
...

E:

# in group_vars/infra.yml
user_name: "infra"
...

Meus hosts são:

[deploy_servers]
int.openstack.mine
preprod.openstack.mine
prod.openstack.mine

[infra_servers]
infra.openstack.mine

[develop_servers]
infra.openstack.mine
int.openstack.mine

A playbook infra.yml é:

---

- name: "Configure infrastructure hosts"
  hosts: infra_servers
  become: yes
  roles:
    - { role: "nickjj.user", tags: "user" }
    - { role: "nickjj.docker", tags: "docker" }
    - infra

A playbook develop.yml é:

---

- name: "Configure development hosts"
  hosts: develop_servers
  become: yes
  roles:
    - { role: "nickjj.user", tags: "user" }
    - { role: "nickjj.docker", tags: "docker" }
    - develop

Agora, executando o livro de exercícios limitado aos servidores de desenvolvimento:

ansible-playbook -i hosts develop.yml

fará com que a variável user_name escolha o valor errado infra . O problema desaparece se eu remover o servidor infra do grupo infra_servers . Mas isso não está certo: o servidor é também um servidor infra e, quando o manual é executado para os servidores infra, a variável deve, de fato, obter o valor infra .

Por que o valor errado é escolhido ao limitar o playbook ao develop_servers ?

    
por dangonfast 28.05.2018 / 06:42

0 respostas

Tags