Скажем, у меня есть Nginx конфигурационный файл, созданный с помощью шаблона, который я использую для настройки некоторых узлов для перенаправления имя сервера HTTP на HTTPS:Несущие: возможны ли переменные для конкретной роли и инвентаря?
server {
listen 80;
server_name {{ server_name }};
rewrite ^https://$server_name$request_uri? permanent;
}
Say У меня есть два веб-сайтов, размещенных на одной машине :
- сайт A
- сайт B
каждый имеет свое собственное имя сервера и каждый нуждается в перенаправление выше. В то же время, скажем, у меня есть по крайней мере две отдельные конфигурации развертывания, каждый из которых представлен своим собственным файлом инвентаризации и его group_vars/папки, например:
- бродяга Onebox
- производства
каждого используя другое имя сервера. Так что теперь у меня есть 2 * 2 = 4 отдельные имена серверов:
- sitea.myonebox.com
- siteb.myonebox.com
- sitea.production.com
- siteb.production.com
Я не могу понять, как определить все эти 4 переменные. Я не могу определить две отдельные переменные в group_vars /, потому что шаблон j2 ожидает только одно имя переменной {{server_name}}, поэтому я должен был бы определить тот же шаблон дважды, чтобы сделать эту работу.
Другой вариант - иметь sitea и siteb как две отдельные роли (которые я собираюсь делать в любом случае) и хранить имя_рынка в ролях/sitea/vars/main.yml, однако эта настройка не учитывает инвентаризацию , что означает, что я бы снизился до 2 переменных, а не 4.
Возможно ли это вообще без дублирования шаблона или есть Ansible, который еще не поддерживает этот сценарий?
анзибль 1.8.2: 'ОШИБКА: Ошибка синтаксиса при загрузке YAML script' – user272735
Правильный синтаксис выглядит как: '- {role: sitea, server_name:" {{sitea_server_name}} "}' – user272735
Вы правы, исправлены – hkariti