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

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

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

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

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

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

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

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

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

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