Как заменить файл шаблона в роли Ansible?

В некоторых ролях Ansible, таких как https://github.com/bertvv/ansible-role-hosts, используются файлы шаблонов, которые могут быть практически не нужны для нужд этого проекта. Если автор роли не предоставил подстановку переменной для имени шаблона, есть ли еще способ заменить файл шаблона? Очевидно, что я мог бы разветвлять роль и использовать свой собственный форк, но я надеюсь, что есть лучший ответ, такой как "просто поместите файл шаблона замены в каталог шаблонов вашей роли, который зависит от роли Берта".

2 ответа

В путях к Playbook есть волшебство "делай то, что я имею в виду" для относительных путей. rolename/templates сначала ищется в порядке зависимости, затем {{playbook_dir}}/templates

Вы не можете изменить это, не изменив роль каким-либо образом, один из:

  • изменение имени файла src

  • добавление зависимости от вашей роли, которая предоставляет другой шаблон с тем же именем

  • редактирование их шаблона

Мне больше всего нравится менять имя файла. Отправьте им изменение, которое превратит имя исходного шаблона в переменную по умолчанию в роли.

Если вы хотите, чтобы изменения происходили при каждом запуске, вы можете использовать lineinfile Задача в файле экземпляра шаблона (т.е. dest в template задание) после того, как роль применена.

Другие вопросы по тегам