Подскажите, а можно ли все переменные shell-окружения, у которых имя

соответствуют шаблону, например, ANS_* импортировать, как переменные ансибл?

22 ответов

16 просмотров

Разрешаю)

Зачем?

Лучше изложить задачу целиком. А так попахивает какой то дичью )

Dmitry-Gorsky Автор вопроса
Mikhail Khoroshev
Лучше изложить задачу целиком. А так попахивает ка...

Плэйбук вызывается из gitlab CI. В гитлабе задана куча переменных. Не вижу смысла их всех вручную задавать в параметре ansible-playbook -e

Dmitry Gorsky
Плэйбук вызывается из gitlab CI. В гитлабе задана ...

напиши скрипт )))) который возьмет все переменные и сконвертнет их в аргументы запуска ансибл плейбука

Dmitry-Gorsky Автор вопроса
George Gaál
напиши скрипт )))) который возьмет все переменные ...

Это понятно да создать промежуточный файл и потом его подцепить. Думал, что можно сделать как-то проще, может быть, есть готовый плагин для ансибл?

Dmitry Gorsky
Плэйбук вызывается из gitlab CI. В гитлабе задана ...

Ну вот файликом надо передать --extra-vars="@file_with_vars"

Dmitry Gorsky
Плэйбук вызывается из gitlab CI. В гитлабе задана ...

Зачем, почему не написать групварс или любой другой варс и использовать нужное вам переменные?

Dmitry-Gorsky Автор вопроса
Grek 🇺🇦 G
Зачем, почему не написать групварс или любой друго...

И потом запушить в гит? Это не имеет большого смысла и противоречит идеологии. Переменные могут время от времени меняться, и не нужно для этого что-то куда-то пушить. Они так и хранятся в настройках CI.

Dmitry Gorsky
И потом запушить в гит? Это не имеет большого смыс...

Кто я такой чтоб запрещать вам так делать? Мне понятней когда из гита видно что переменная приходит из энв, и я не страдаю вспоминая а откуда тут что взялось?

Dmitry Gorsky
Плэйбук вызывается из gitlab CI. В гитлабе задана ...

И все эти переменные у вас используются в вашем плейбуке?

Dmitry-Gorsky Автор вопроса
Timur Gadiev
И все эти переменные у вас используются в вашем пл...

Более того, они только ради плейбука и создаются

Dmitry Gorsky
Более того, они только ради плейбука и создаются

Тогда сделайте принудительный мап в плейбуке или варс-файле через лукап. ans_var: >- {{ lookup('env', 'ANS_VAR') }}

Dmitry-Gorsky Автор вопроса
Timur Gadiev
Тогда сделайте принудительный мап в плейбуке или в...

Это про сути то же самое, что перечислить все переменные в -e при вызове ансибл... Так делали уже...

Dmitry Gorsky
Это про сути то же самое, что перечислить все пере...

Берешь API gitlab и выковыриваешь все переменные из репы curl --request GET --header "Authorization: gitlab-ci-token ${CI_JOB_TOKEN}" \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/variables/*

Dmitry-Gorsky Автор вопроса
Mikhail Khoroshev
Берешь API gitlab и выковыриваешь все переменные и...

Зачем? Они и так все доступны в окружении при запуске скрипта.

Dmitry Gorsky
Зачем? Они и так все доступны в окружении при запу...

Ну тебе же было лень их перечислять в extra vars. А если добавятся какие?

Dmitry-Gorsky Автор вопроса
Mikhail Khoroshev
Ну тебе же было лень их перечислять в extra vars. ...

Кажется, этот вариант был лучше: env | egrep "^ANS_.*" | sed 's/=/: /g' > vars.yml

Dmitry Gorsky
Это про сути то же самое, что перечислить все пере...

А как вы ещё хотите? Ансибловые сущности - это совершенно отдельно от переменных окружения. Ансибл не обязан ничего знать о ваших произвольных переменных окружения за исключением строго оговорённых

Dmitry Gorsky
Кажется, этот вариант был лучше: env | egrep "^ANS...

Сам же написал - не изящно )) Тогда вот так env | sed -re 's|^(ANS_.*)\=(.*)|\1:\2|g'

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта