Назад | Перейти на главную страницу

Ansible group_vars, видимый не членам группы

Я использую Ansible 2.0.0.2.

У меня есть такой инвентарный файл:

[webproxy]
testserver

[database]
testserver

[application]
testserver

[testing:children]
webproxy
database

Я запускаю роли из сборников пьес:

---
- hosts: application

  become: true

  roles:
    - application

Я определяю переменные для среды тестирования в group_vars/testing. У меня есть роли webproxy, database и application.

поскольку application группа не входит в testing группа, которую я ожидал бы запустить application роль не удалось, потому что я определил обязательные переменные только для группы тестирования. На самом деле работает application.yaml работает, он может использовать переменные, определенные в group_vars/testing. Это правильное поведение?

В testing Кажется, что группа имеет хоть какой-то эффект, потому что, если я полностью удалю ее из файла инвентаризации, выполнение ролей приложения завершится ошибкой из-за неопределенных переменных, как и ожидалось.

Являются group_vars должен так работать? Может быть, это вызвано тем, что я устанавливаю роли на одном хосте? (У меня сейчас нет доступа к нескольким машинам, поэтому я не могу тестировать, когда у каждой роли есть собственная машина.)

Я читал документацию по Ansible, такую ​​как Групповые vars doc но не нашли на это ответа.

Являются group_vars должен так работать?

Да.

Может быть, это вызвано тем, что я устанавливаю роли на одном хосте?

Да. Факты привязаны к хозяевам, а не к группам.

Это также означает, что одни и те же значения переменных, определенные в нескольких group_vars, будут перезаписаны.