Nklya
Вот пример из галакси, как для приватных реп хз
https://github.com/debops/ansible-owncloud/blob/master/meta/main.yml#L5
Nklya
что это за хрень?
Nklya
Зависимости прописываются в секцию dependencies файла имя_роли/meta/main.yml
Nklya
А ты хочешь вписать прямую ссылку на роль в плейбуе
Vladimir
Стоп стоп
Vladimir
ты хочешь что бы роль у тебя играла прям из гелакси ?
Vladimir
Так это зависимости к твоей роле же
Vladimir
Что бы она работала
Vladimir
Ты саму роль физически к себе должен забрать
Nklya
у тебя глобальное непонимание как работает ансибл и галакси
bebebe
для начала я бы поднял версию до 2.5.x.x
Vladimir
Она должна лежать roles/
Vladimir
Гелакси это тупо репозиторий как гитхаб
Vladimir
Ты не можешь инклюдить роль по url
Vladimir
- role: 'git+https://git.xxx.com/scm/ansible-role-cluster.git,master,devops.common.cluster'
Vladimir
Зачем ?
Vladimir
Причем тут тогда репозиторий ?
Vladimir
Они должны лежать там где ты ансибл запускать будешь
Nklya
То, что вытащил это ок.
Проблема есть с непониманием как это работает
Vladimir
Vladimir
Вот так это работает
Nklya
вот так выглядит инфра репа, в которую подгружаются внешние роли из requirements.yml, в котором в свою очередь указано откуда брать роли
https://github.com/cndies/ansible-repo-example
Vladimir
А где написано что можно из гита подгружать ? оО
Vladimir
Я может что то упустил
Nklya
bebebe
а как ты устанавливаешь роль?
ansible-galaxy install -r ./requirements.txt
Vladimir
А ты точно прочитал ? ))))
Vladimir
Advanced Downloading это походу то что ты пытаешься делать ...
Nklya
конечно можно вытаскивать роли из гит реп
Vladimir
Но не денапически же ? А через ansible-galaxy install
Vladimir
Похоже да
Vladimir
Там ты просто указываешь насколько я сам понимаю(может и не так) откуда брать роль и он пройдется если надо по депенденсам и скачает их
Vladimir
Ну допустим у тебя роль mysql зависит от другой роли другого человека и работает в паре с ней, тогда ты говоришь от чего она зависит
Vladimir
Но роли в любом случае надо скачать
Vladimir
Стоп стоп
Vladimir
Вот смотри, ansible-galaxy это инструмент для того что бы скачивать роли и делиться через сайт galaxy.ansible.com
Nklya
ansible-galaxy это не только галакси
Vladimir
ansible-playbook это инструмет что бы выполнять эти роли !которые лежат в каталоге roles/ у тебя на машине где ты запускаешь ансибл
Vladimir
Ну там можно указать свой репозиторий
Vladimir
Это ничего сильно не меняет
Vladimir
Считай это как git и github
Vladimir
Но код не будет выполняться на github.com
Vladimir
Ну так это все надо что бы скачать
Vladimir
У тебя не может быть роли в плейбуке с урлом
Vladimir
ansible-galaxy install myrole.txt && ansilbe-playbook $playbook_name
Vladimir
Я же тебе сказал
bebebe
Вы лучше расскажите в каком окружение запускаете?
Vladimir
Есть роль vasy.iptables есть твоя крутая роль me.mysql, и ей нужно настроить iptables тоже, так вот ты говоришь что твоя роль зависит от вася.айпитейблс и ее тоже надо скачать
Vladimir
В мете как раз лежит то что надо установить
Vladimir
В дополнение к этой роле!
Vladimir
Да
bebebe
Где запускается плейбука
Vladimir
И когда другой человек будет качать твою роль он еще к ней сразу будет скачивать все зависимости
bebebe
Докер? Из хост системы?
Vladimir
Теперь стало яснее ?
bebebe
В Дженкинс добавьте сборку докер контейнера, запускайте плейбуку в нем где уже все депенды
bebebe
А куда проще?
Vladimir
Еще раз, ansible-galaxy нужен для менеджмента ролей, установки в место где ты их будешь запускать, он умеет !скачивать роли !загружать на удаленный репозиторий и тп, он их не запускает
Vladimir
А зачем ты их каждый раз загружаешь ?
Vladimir
У тебя каждый запуск чистый диск ?
Vladimir
без этих ролей ?
Vladimir
Если у тебя не персист стор то да надо каждый раз их скачивать
bebebe
Ещё раз, соберите контейнер с ролями один раз и далее просто в нем запускайте
Vladimir
А если это на твоей локальной машине то достаточно 1 раз запустить
Vladimir
А дальше играть плейбуки
Vladimir
А нахер тебе гелакси тогда ?!?!?
Vladimir
Если он и так из гита берет все что тебе надо
bebebe
тут проблемы не с ansible, а с процессом имхо
Vladimir
Тут проблема непонимания походу
Vladimir
Гелакси это такой же репозиторий как и твой гит
bebebe
вы можете делать много образов докеров
ansible-env1:master, ansible-env1:stable, ansible-env1:staging, ansible-env1:f73fdefce7a8fdsfsa
Vladimir
Если все твои роли лежат в твоем гите, и дженкинс их сам скачивает то зачем тебе гелакси ?
Vladimir
А в чем проблема ?
Vladimir
У тебя для твоих ролей отдельный репозиторий же так ?
Nklya
ансибл написан на простом питоне. открой исходники и увидишь что хочешь какую-то дикую дичь
Vladimir
Я просто с дженскинсом не работал, но разве ты не можешь описать в нем какую ветку тебе брать всегда ?
Vladimir
Да то что он говорит это задача для CI CD а не для ансибла
Vladimir
Вопрос персистенса в системе версионирования в этом же проблема ? Или Я чего то уже не понимаю и запутался
Vladimir
Ну тогда ansible-galaxy install всегда
Vladimir
Что тебе там не ясно ?!