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

Использование внешних переменных внутри шаблона Ansible

Задний план

Я пишу книгу, которая устанавливает два одинаковых веб-приложения на разные машины. Для обоих приложений требуется собственная база данных MySQL / MariaDB. Я планирую передавать информацию MySQL (имя базы данных, имя пользователя и пароль) через внешние переменные, которые соответствуют определенным заполнителям в файле шаблона (например, mysql.php).

Проблема

У меня один и тот же файл для обеих установок приложения (например, ради, mysql.php). У обоих есть заполнители для {{ db_name }}, {{ db_user }}, и {{ db_password }}. Как я могу использовать несколько внешних переменных, которые я передаю в свою книгу, в каждой «установке» отдельно?

Если это не имеет смысла, я буду рад уточнить.

Вы можете включать файлы переменных во время выполнения.

Например, у вас может быть:

/<ansible-root>/environments/
                            /env-A.yml
                            /env-B.yml

Эти файлы будут содержать специфичные для сайта переменные, например:

---
variable_a: foo 
variable_b: bar

... на который вы бы ссылались в своих пьесах со стандартным ({{ variable_a }}) обозначение.

Когда вы запустите свой playbook, просто включите правильный файл:

$ ansible-playbook playbook.yml -e @environments/env-A.yml