Возможность выбора неправильной конфигурации переменных, когда хост принадлежит к нескольким группам хостов

236
dangonfast

У меня есть сервер, infraкоторый принадлежит к двум различным группам хостов. Для каждой группы хостов у меня есть настройки в group_vars/<host-group>.yml:

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

А также:

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

Мои hostsявляются:

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

infra.ymlСборник пьес является:

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

develop.ymlСборник пьес является:

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

Теперь запуск playbook ограничен разработанными серверами:

ansible-playbook -i hosts develop.yml 

приведет к тому, что переменная user_nameвыберет неправильное значение infra. Проблема исчезнет, ​​если я удалю сервер infraиз infra_serversгруппы. Но это не правильно: сервер также является инфра-сервером, и когда playbook запускается для инфра-серверов, переменная действительно должна получить значение infra.

почему выбирается неправильное значение при ограничении playbook на develop_servers?

0

0 ответов на вопрос

Похожие вопросы