Я часто устанавливаю Java JDK. Использование роли упрощает это прикосновение. Я пробовал несколько разных способов (включая множество .gitmodules и подмодулей ... Мне приходится использовать несколько систем git для работы, и все это становится уродливым). Мое главное требование - не проверять код роли в моем проекте playbook, в основном для того, чтобы я мог хранить все в одном месте.
Содержимое моего файла requirements.yml:
- src: https://github.com/staylorx/ansible-role-wls-prep.git
version: master
name: staylorx.wls-prep
- src: https://my-work-git-extravaganza.com
version: 2.x
name: coolplace.niftyrole
#From Ansible Galaxy
- src: staylorx.oracle-jdk
Я запускаю отдельную книгу install-roles.yml:
---
- hosts: localhost
tasks:
- file:
path: roles
state: absent
- local_action:
command ansible-galaxy install -r requirements.yml --roles-path roles
- lineinfile:
dest: .gitignore
regexp: '^\/roles$'
line: '/roles'
state: present
Я запускаю этот первый сценарий, а затем выполняю свои роли в любом сценарии. Для меня секрет в том, чтобы убедиться, что git игнорирует его, чтобы я не проверял роли по ошибке. Кроме того, поскольку я каждый раз удаляю папку, я гарантирую, что мне не нужно форсировать или игнорировать ошибки.