ТЛ; др
Модуль шаблона Ansible рассматривает назначение шаблона как каталог, а не как файл. Чего мне не хватает?
Положение:
Я использую роль anulf-restic paulfantom в другой роли, названной backups-role
. Я тестирую свою роль с помощью фиктивной playbook в локальной среде lxc, которая устанавливает службу базы данных, а затем использует ansible-restic для создания задания cron для ее резервного копирования. В целях тестирования местом назначения резервной копии является локальный репо-репозиторий: /var/backup/backups-test
. Я использую только один restic_repo с именем backups-test
Неверно! переменная называлась {{ ansible_hostname }}/{{ ansible_date_time.epoch }}
, что эквивалентно myhost.local/1551799877
. Смотрите ответ напрямую.
Задача
Это задание с заданной стабильной ролью ( ansible-restic ):
- name: Deploy cron script
template:
src: 'restic.cron.j2'
dest: '/etc/cron.d/restic-{{ item.name }}'
mode: '0640'
no_log: false
with_items: '{{ restic_repos }}'
register: _cronfiles
... не может жаловаться с:
Destination directory /etc/cron.d/restic-backups-test does not exist
Обсуждение
Здесь нужно сделать ansible-restic, чтобы развернуть скрипт cron на основе шаблона с именем restic-backups-test
внутри каталога /etc/cron.d/
. Однако, похоже, что ansible интерпретирует, что каталог должен быть /etc/cron.d/restic-backups-test
, а имя файла - просто отметка времени эпохи, такая как 1551799877
, в отличие от того, что сама по себе ansible docs предлагает:
# Example from Ansible Playbooks
- template:
src: /mytemplates/foo.j2
dest: /etc/file.conf
owner: bin
group: wheel
mode: 0644
Боюсь, это вместо этого связано с моим окружением, но я не знаю, что может сделать ответное изменение этого поведения, и моя книга игр не выполняет черную магию.
Некоторые подробности
Я использую ANSIB версии 2.7.8 с python 3.5.3 с машины Debian Stretch против контейнера linux с гостевой ОС Ubuntu Bionic с python 2.7.15rc1 и python 3.6.7. символическая ссылка на python указывает на python2.7. Я пытался также с python3.6 с тем же результатом.
Прошение
Можете ли вы помочь мне разобраться в этом? В конце я просто хочу, чтобы это работало без изменения роли верхнего уровня. Имя файла метки времени может быть подсказкой, которую вы можете понять.