Ansible модуль копирования игнорирует каталог ролевых файлов - PullRequest
1 голос
/ 28 февраля 2020

У меня возникла следующая проблема, и я не уверен, что это ошибка или мои настройки неверны. Я создал роль 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

Вопросы :

  1. Правильно ли мое предположение Ansible должен искать файл в каталоге files рядом с каталогом tasks?
  2. Не испортил ли я мои настройки?

1 Ответ

2 голосов
/ 28 февраля 2020

Я думаю, вы перепутали роли с playbooks . Вы создали пьесу на месте, где роль должна быть. Вам лучше создать роль, а затем создать книгу игр (за пределами /roles dir), которая ее использует.

Вот пример /roles/ssh/tasks/main.yml:

- name: "Set sshd configuration"
  copy:
    src: sshd_config
    dest: /etc/ssh/sshd_config

и книга воспроизведения с использованием ssh Роль:

---
- hosts: all
  tasks:
   - import_role:
        name: ssh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...