Рейтинг:0

ansible не находит роль, упомянутую в playbook

флаг uz

Я довольно новичок в Ansible, поэтому я мог неправильно настроить что-то
[У меня есть контейнер Docker, в котором работает служба Ansible.
У меня есть репозиторий Ansible, содержащий файлы Ansible (это репозиторий .Git).

Моя воля состояла в том, чтобы автоматически возвращать каждую лабораторию на сервере vCenter к определенному моментальному снимку
Итак, я (с помощью ansible-roles-explained-with-examples guide):

  • Создал роль с ansible-галактика init имя команды vcenter (см. дерево каталогов ниже)
  • Создал несколько файлов задач vcenter внутри задачи папку (см. дерево каталогов ниже). Вот пример rever.yml файл задания:
- имя: Вернуться к снимку
  vmware_guest_snapshot:
    имя хоста: "{{ vcenter_hostname }}"
    имя пользователя: "{{ vcenter_username }}"
    пароль: "{{ vcenter_password }}"
    центр обработки данных: "{{ datacenter_name }}"
    состояние: вернуться
    имя_снимка: ЧИСТЫЙ
  делегат_к: локальный
  • Предоставленные учетные данные vCenter в vcenter\vars\main.yml файл, например:
# файл vars для vcenter
vcenter_hostname: vcenter.foo.com
vcenter_username: [email protected]
vcenter_password: f#0$o#1$0o
  • Включены задания в задачи\main.yml файл с импорт-задача ключ, вот так:
---
# файл задач для roles/vcenter
- import_tasks: poweroff.yml
- import_tasks: poweron.yml
- import_tasks: revert.yml
- import_tasks: shutdown.yml
  • Создал revert_lab.yml playbook, который включает в себя роль, как это
---
- имя: восстановить локальную лабораторию
  хозяева: все
  роли:
  - центр

Прежде чем выполнить плейбук, чтобы вернуть все машины в лабораторию, я провел небольшую проверку. синтаксиса плейбука:

ansible-playbook playbooks/revert_lab.yml --syntax-check

Ошибка, которую я получил, была:

[ПРЕДУПРЕЖДЕНИЕ]: Ansible запускается в доступном для записи каталоге (/ansible), игнорируя его как источник ansible.cfg. Для получения дополнительной информации см.
https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir
[ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕНИИ]: Ansible потребует Python 3.8 или новее на контроллере, начиная с Ansible 2.12. Текущая версия: 3.6.8 (по умолчанию, 16 ноября 2020 г., 16:55:22) [GCC
 4.8.5 20150623 (Red Hat 4.8.5-44)]. Эта функция будет удалена из ansible-core в версии 2.12. Предупреждения об устаревании можно отключить, установив 
deprecation_warnings=False в файле ansible.cfg.
[ВНИМАНИЕ]: Инвентаризация не проанализирована, доступен только неявный локальный хост.
[ВНИМАНИЕ]: предоставленный список хостов пуст, доступен только локальный хост. Обратите внимание, что неявный локальный хост не соответствует «всем»
ОШИБКА! роль «vcenter» не найдена в /ansible/playbooks/roles:/root/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/ansible/playbooks

Ошибка, по-видимому, находится в «/ansible/playbooks/revert_lab.yml»: строка 5, столбец 5, но может
быть в другом месте файла в зависимости от конкретной проблемы синтаксиса.

Оскорбительная строка выглядит так:

  роли:
  - центр
    ^ здесь

я решил добавить ansible.cfg в мой репозиторий с a путь_ролей ключ:

[по умолчанию]
инвентарь = /ansible/inventories
roles_path = /доступный/роли
# roles_path = ./roles:..~/ansible/roles

Я снова побежал --syntax-check команду, но получил ту же ошибку. Я пробовал разные виды ролевых путей - и получил ту же ошибку. Конечно ansible-playbook команда не сработала (с тем же сообщением об ошибке):

ansible-playbook playbooks/revert_lab.yml -i inventory/test/onpremis/domain.com/lab_r.yml

Так, Как заставить ansible распознавать мою роль?
Как мне сделать так, чтобы мой playbook успешно запускался?
Относится ли ansible.cfg к «истории» или нет?

Мой репозиторий:

С:.
ââââансибль
✓ ansible.cfg
ââââзапасы
â–––тест
â â ââââоблако
â â â–––на территории
✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ домен.com
â â â lab_j.yml
â â â lab_r.yml
â â ââââgroup_vars
â â all.yml
ââââplaybooks
✓ ✓ revert_lab.yml
ââââроли
â ââââvcenter
ââââзадачи
â â main.yml
✓ poweroff.yml
✓ poweron.yml
â â revert.yml
❏ shutdown.yml
â ââââварс
✓ main.yml
Рейтинг:0
флаг cz

Ansible сказал вам, что не так:

[ПРЕДУПРЕЖДЕНИЕ]: Ansible запускается в доступном для записи каталоге (/ansible), игнорируя его как источник ansible.cfg. Для получения дополнительной информации см. https://docs.ansible.com/ansible/devel/reference_appendices/config.html#cfg-in-world-writable-dir.

Это означает, что ваши изменения в файле ansible.cfg игнорируются.

Исправьте разрешения для этого каталога и повторите попытку.

флаг uz
```chmod o-w``` в доступном каталоге

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.