Как заменить файл шаблона в роли Ansible?
В некоторых ролях Ansible, таких как https://github.com/bertvv/ansible-role-hosts, используются файлы шаблонов, которые могут быть практически не нужны для нужд этого проекта. Если автор роли не предоставил подстановку переменной для имени шаблона, есть ли еще способ заменить файл шаблона? Очевидно, что я мог бы разветвлять роль и использовать свой собственный форк, но я надеюсь, что есть лучший ответ, такой как "просто поместите файл шаблона замены в каталог шаблонов вашей роли, который зависит от роли Берта".
2 ответа
В путях к Playbook есть волшебство "делай то, что я имею в виду" для относительных путей. rolename/templates
сначала ищется в порядке зависимости, затем {{playbook_dir}}/templates
Вы не можете изменить это, не изменив роль каким-либо образом, один из:
изменение имени файла src
добавление зависимости от вашей роли, которая предоставляет другой шаблон с тем же именем
редактирование их шаблона
Мне больше всего нравится менять имя файла. Отправьте им изменение, которое превратит имя исходного шаблона в переменную по умолчанию в роли.
Если вы хотите, чтобы изменения происходили при каждом запуске, вы можете использовать lineinfile
Задача в файле экземпляра шаблона (т.е. dest
в template
задание) после того, как роль применена.