Есть ли способ переопределить шаблон, определенный как роль галактики? - PullRequest
2 голосов
/ 18 апреля 2019

Я пытаюсь настроить сервер с ansible, и я хотел бы использовать эту роль галактики .

Он определяет шаблон , который я 'Я хотел бы настроить, но я не знаю, как.

Сейчас я определил роль в requirements.yml и установил ее, используя:

ansible-galaxy install -r requirements.yml

который установил эту роль где-то в моей системе.

Я попытался воссоздать дерево папок в своем хранилище, где я храню свои пьесы:

roles
  |- ansible-role-passenger
     |- templates
        |- passenger.j2

, но это не работает.Когда я запускаю свой playbook, ansible использует файл passenger.j2 изнутри роли galaxy.

Я думаю, что могу разветвлять роль galaxy на github и просто отредактировать файл passenger.j2, как я хочу, но я нене знаю, есть ли это "лучший" способ сделать это:)

1 Ответ

3 голосов
/ 18 апреля 2019

Ваши выводы, к сожалению, верны.Переопределение жестко закодированного шаблона в роли из вызывающей пьесы просто невозможно , если только автор роли не реализовал это как функцию

Лучший способ, который я нашел до сих пор: учитывая, что роль содержитшаблон по умолчанию в templates/passenger.j2, добавьте переменную в default/main.yml, например passenger_config_template: passenger.j2, и используйте эту переменную в роли.Затем пользователь может переопределить эту переменную в своей книге или инвентаре play и использовать другое имя для шаблона, который будет выбран в другой роли или непосредственно в каталоге templates на уровне playbook.

Вы можете иметьпосмотрите на аналогичную проблему и принятый PR , который я однажды сделал @geerlingguy на его ansible-role-gitlab.Он может подумать о том, чтобы сделать то же самое в отношении своей роли пассажира (или может принять ваш пиар, если вы его предложите).

...