У меня возникла следующая проблема, и я не уверен, что это ошибка или мои настройки неверны. Я создал роль ssh
со следующей структурой:
.
├── roles
├── ssh
│ ├── files
│ │ └── sshd_config
│ └── tasks
│ └── main.yml
Файл main.yml выглядит следующим образом:
---
- hosts: all
tasks:
- name: "Set sshd configuration"
copy:
src: sshd_config
dest: /etc/ssh/sshd_config
Поскольку sshd_config
хранится в рекомендованном Каталог files
, я ожидал, что команда copy
автоматически выберет этот файл при обращении к нему из задачи. Вместо этого Ansible ищет sshd_config
в следующих каталогах:
ansible.errors.AnsibleFileNotFound: Could not find or access 'sshd_config'
Searched in:
<redacted>/roles/ssh/tasks/files/sshd_config
<redacted>/roles/ssh/tasks/sshd_config
<redacted>/roles/ssh/tasks/files/sshd_config
<redacted>/roles/ssh/tasks/sshd_config on the Ansible
Обратите внимание, что он выглядит в каталоге files
, но делает это в папке tasks
!
Основная цель - отправить локальный файл (на моем хост-компьютере) на удаленный сервер.
Я запускаю playbook с помощью следующей команды:
ansible-playbook -i hosts ./roles/ssh/tasks/main.yml -vvv
Вопросы :
- Правильно ли мое предположение Ansible должен искать файл в каталоге
files
рядом с каталогом tasks
? - Не испортил ли я мои настройки?