Как использовать доступные частные роли из существующего проекта?

Для моей первоначальной настройки ansible-awx я взял свои роли, инвентарь и playbooks и поместил их в один GIT-репозиторий, защищенный аутентификацией по ключу ssh. Кажется, что HTTPS не работает в Ansible-AWX 7.0

Я импортировал GIT-репозиторий как проект в ansible-awx

. Мне уже удалось сослаться на playbooks и инвентарь. Как мне удается использовать роли, которые у меня есть в репозитории GIT?

Я попытался использовать следующий файл requirements.yml:

- src: ansible-awx@<some azure devops repo>
  name: hosting
  scm: git

Не удается разрешить роль хоста при попытке запустить playbook, который применяет роль хоста к мой инвентарь.

Я уже пробовал следующее:

  • Аутсорсинг роли в другом репо
  • Использование личных токенов git внутри src

Безуспешно.

Помощь очень ценится.

Обновление: Фактическая настройка. 1. Роль помещается в отдельный репозиторий GIT

/
- defaults
- files
- handlers
- meta
- tasks
- templates
- vars
  1. Репозиторий ролей добавляется как проект с правильными учетными данными (ключ SSH)

Полученное сообщение об ошибке:

Identity added: /tmp/awx_5_kjl4ecco/artifacts/5/ssh_key_data (/tmp/awx_5_kjl4ecco/artifacts/5/ssh_key_data)
ERROR! the role 'celum-hosting' was not found in /var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting/roles:/var/lib/awx/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting
The error appears to be in '/var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting/playbook_applyhostingrole.yml': line 4, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
  roles:
    - { role: celum-hosting }
      ^ here
0
задан 30 September 2019 в 11:29
1 ответ

Если у вас есть playbook по пути / вашего git, роли, которые нужны этому playbook, должны быть расположены по пути / roles в том же базовом каталоге. Вы не можете «делиться» ролями. Это «проблема» Ansible. Ранее было возможно, что рабочий каталог был основой пути поиска ролей , но это представляло угрозу безопасности и было удалено. Ansible всегда ищет папку ролей внутри папки, в которой работает playbook.

Итак - у вас не может быть репозитория Git только для ролей и другого репозитория для playbooks в AWX, потому что он помещает оба в разные места.

Возможно - что вы можете сделать, так это поместить репозиторий ролей в подмодуль Git в вашу playbook, и в этом случае checkout репозиторий playbook также проверит репозиторий ролей. Но в этом случае у вас никогда не может быть ролей внутри репозитория playbook.

0
ответ дан 17 March 2020 в 08:05

Теги

Похожие вопросы