Я новичок в Ansible, и я пытаюсь создать роль, которая копирует файл на удаленный сервер. Локальный файл может иметь другое имя при каждом запуске playbook, но его нужно скопировать на одно и то же имя удаленно, примерно так:
- name: copy file
copy:
src=*.txt
dest=/path/to/fixedname.txt
Ansible не допускает использование подстановочных знаков, поэтому, когда я написал простой учебник с задачами в основной пьесе, я мог бы сделать:
- name: find the filename
connection: local
shell: "ls -1 files/*.txt"
register: myfile
- name: copy file
copy:
src="files/{{ item }}"
dest=/path/to/fixedname.txt
with_items:
- myfile.stdout_lines
Однако, когда я переместил задачи в роль, первое действие больше не работало, потому что относительный путь относится к роли, когда playbook выполняется в корневом каталоге каталога "role". Я мог бы добавить путь к файлу файлов ролей, но есть ли более элегантный способ?