Ansible Picking falsche Variablenkonfiguration, wenn der Host zu mehreren Hostgruppen gehört

310
dangonfast

Ich habe einen Server, infrader zu zwei verschiedenen Hostgruppen gehört. Für jede Hostgruppe habe ich folgende Einstellungen group_vars/<host-group>.yml:

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

Und:

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

Meine hostssind:

[deploy_servers] int.openstack.mine preprod.openstack.mine prod.openstack.mine  [infra_servers] infra.openstack.mine  [develop_servers] infra.openstack.mine int.openstack.mine 

Das infra.ymlSpielbuch ist:

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

Das develop.ymlSpielbuch ist:

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

Jetzt das Playbook auf die Entwicklungsserver beschränken:

ansible-playbook -i hosts develop.yml 

bewirkt, dass die Variable user_nameden falschen Wert wählt infra. Das Problem verschwindet, wenn ich den Server infraaus der infra_serversGruppe entferne . Dies ist jedoch nicht richtig: Der Server ist auch ein Infra-Server, und wenn das Playbook für die Infra-Server ausgeführt wird, muss die Variable tatsächlich den Wert erhalten infra.

Warum wird der falsche Wert gewählt, wenn das Playbook auf das beschränkt wird develop_servers?

0

0 Antworten auf die Frage