Всем привет! Подскажите пожалуйста как передать в ansible-galaxy requirements.yml deploy

token? Команда вызывается в .gitlab-ci.yml. Не получается передать --extra-vars ansible-galaxy.

39 ответов

20 просмотров

Что за деплой-токен и зачем он в ansible-galaxy?

Alimar-Ramazanov Автор вопроса
Timur Gadiev
Что за деплой-токен и зачем он в ansible-galaxy?

Для того чтобы пуллить роли из приватного репозитория или группы в gitlab

Пишешь requirements.yml.j2 вида --- collections: - name: https://{{ lookup('env','ANSIBLE_COLLECTIONS_TOKEN') }}@gitlab.example.com.io/ansible-collections/collection.git type: git version: 0.15.7 ... и перед запуском ansible-galaxy шаблонизируешь его командой вида ansible -m template -a "src=requirements.yml.j2 dest=requirements.yml" -e ansible_connection=local localhost; \ ansible-galaxy collection install -r requirements.yml

Alimar-Ramazanov Автор вопроса
Николай М
Пишешь requirements.yml.j2 вида --- collections: ...

А передать extra vars как в ansible-playbook нельзя?

Alimar Ramazanov
А передать extra vars как в ansible-playbook нельз...

Если тебя не устраивает предложенное готовое решение -- ищи в коде ansible-galaxy интересующие тебя параметры.

Timur Gadiev
ssh-ключи для чего придумали?

ssh не всегда доступен оттуда, откуда хочется пуллить роли. Иногда он вообще недоступен, потому что безопасность (не тобой управляемая).

Alimar-Ramazanov Автор вопроса
Timur Gadiev
ssh-ключи для чего придумали?

Пытаюсь использовать deploy key для репозитория роли. Пока не получается не клонить

Alimar-Ramazanov Автор вопроса
Николай М
А как надо?

Наверное имеется в виду вот это https://docs.gitlab.com/ee/ci/ssh_keys/

Timur Gadiev
Что это значит, простите?

Что я непонятного сказал? К примеру, есть какой-то корпоративный селф-хостед gitlab, в который сложены роли/коллекции. Служба безопасности и админы этого гитлаба либо вообще не открывают ssh, либо открывают его в сети, доступные через какой-нибудь чекпоинт впн, к которому можно только с винды подключиться. А тебе надо работать с этими ролями/коллекциями. ssh нет. Есть только https.

Николай М
Что я непонятного сказал? К примеру, есть какой-то...

Ну, это уже бред, извините. Закрывать ssh, оставляя https

Timur Gadiev
Ну, это уже бред, извините. Закрывать ssh, оставля...

Это не бред, это сплошь и рядом. Вышеописанную конструкцию я уже у 2 или 3 клиентов использовал. Могу дать адреса сетевиков-безопасников, расскажете им, что они делают неправильно)

Николай М
Это не бред, это сплошь и рядом. Вышеописанную кон...

Скажите организацию просто. Внесу в блеклист для наших безопасников и сетевиков на собесах

Alimar-Ramazanov Автор вопроса
Timur Gadiev
Вы по https репозитории выкачиваете?

deploy: stage: deploy tags: - docker-airflow-localexecutor before_script: - eval $(ssh-agent -s) - echo $SSH_AGENT_PID > SSH_AGENT_PID_FILE - echo "$SSH_ROLE_DEPLOY_PRIVATE_KEY" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - ssh-keyscan www >> ~/.ssh/known_hosts - chmod 700 ~/.ssh script: - ansible-galaxy install -r roles/requirements.yml -p roles/ - ansible-playbook playbook.yml -e $USER_PARAMS_JSON after_script: - export SSH_AGENT_PID=$(cat SSH_AGENT_PID_FILE) - eval $(ssh-agent -k) only: - tags

Timur Gadiev
Скажите организацию просто. Внесу в блеклист для н...

Крупные организации. Очень крупные. Все их знают. Лидеры рынка в своих нишах. Названия не дам. Вам, видимо, просто очень везёт в жизни, что вы с таким не сталкиваетесь.

Николай М
Крупные организации. Очень крупные. Все их знают. ...

Такие крупные лидеры, что стесняетесь назвать? Понятно 😁

Timur Gadiev
Такие крупные лидеры, что стесняетесь назвать? Пон...

🤷🏻‍♂️ не понимаю, что тут непонятного) NDA, все дела. Или с таким тоже не сталкивались?)

Николай М
🤷🏻‍♂️ не понимаю, что тут непонятного) NDA, все де...

NDA для места работы? 🙂 Нет, не сталкивался. Вы как потом собесы будете проходить, если работу менять надумаете? Будете говорить, что безработным были и пайплайны на досуге писали? 😁

Timur Gadiev
NDA для места работы? 🙂 Нет, не сталкивался. Вы ка...

NDA, заключенное с клиентами. Кажется, это не я не проснулся.

Alimar-Ramazanov Автор вопроса
Николай М
Что я непонятного сказал? К примеру, есть какой-то...

Искаропки работать не будет. Поднимай внутренний Ansible Galaxy, ну или Ansible Automation Platform покупай

Sergey Pechenkó
Искаропки работать не будет. Поднимай внутренний A...

Что работать не будет? Речь идёт как раз об использовании репозиториев on-premise GitLab (доступного в данном случае только по https) как источника коллекций/ролей (это можно назвать внутренним galaxy).

Николай М
Что работать не будет? Речь идёт как раз об исполь...

Это так не работает. ansible-galaxy работает через API. Перечитай доку, пожалуйста.

Sergey Pechenkó
Это так не работает. ansible-galaxy работает через...

Кажется, тут какое-то недопонимание возникло. requirements.yml.j2, представленный мною в обсуждении, был скопирован из рабочего проекта, и таких проектов у меня несколько (только домен изменен на example). Более того, даже через прямой вызов команды работает (вот только вчера пользовался): ansible-galaxy collection install git+https://galaxy.southbridge.io/collections/system.git. Можешь прямо сейчас сам попробовать :) Да и всё, конечно же, взято из доков. Не сам же придумал. Коллекции через git отлично работают, без API.

Николай М
Кажется, тут какое-то недопонимание возникло. requ...

То есть ты принципиально отказываешься замечать разницу между публичным репо и закрытым?

Николай М
Кажется, тут какое-то недопонимание возникло. requ...

И "Коллекции через git отлично работают, без API" - это не то же самое, что "у меня работает установка коллекции из открытого git-репо"

Николай М
Пишешь requirements.yml.j2 вида --- collections: ...

Я мейкфайлом сделал похожее, только при помощи седа, без привлечения жинжи, она тут немного оверкилл :)

T T
Я мейкфайлом сделал похожее, только при помощи сед...

Зато нативно (если ансибл уже используется в пайплайне). Так-то sed тоже хороший вариант, безусловно)

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

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта