Я пытаюсь настроить (надеюсь) простой скрипт Ansible для проверки ветки git. Существует три окружения: dev, qa и live. Каждый охватывает два хоста. Но dev и qa используют одни и те же хосты, просто используя разные каталоги.

Я хотел бы иметь сортировку файла инвентаря как это:

[dev]
internal1.example.com
internal2.example.com

[dev:vars]
dir = /opt/dev

[qa]
internal1.example.com
internal2.example.com

[qa:vars]
dir = /opt/qa

[live]
live1.example.com
live2.example.com

[live:vars]
dir = /opt/live

Но это не работает. Значения переменных берутся из всех групп, к которым они принадлежат. Таким образом, internal1.example.com получает значение dir из dev и qa, независимо от того, какое из них я пытаюсь развернуть.

Как я могу назначить переменную, которая применяется к хосту, в зависимости от целевой группы?

Я использую Ansible версии 1.5.4.

1 ответ1

-1

https://ansible-tips-and-tricks.readthedocs.io/en/latest/ansible/inventory/

Вы можете использовать групповые переменные с файлами, расположенными в [ansible_base_dir]/group_vars/[group-name]

Итак, у вас есть файлы:

[Ansible_base_dir]/group_vars/ DEV

---
dir: /opt/dev

[Ansible_base_dir]/group_vars/ QA

---
dir: /opt/qa

[Ansible_base_dir]/group_vars/ живая

---
dir: /opt/live

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .