@pro_ansible

Страница 610 из 625
Artur
15.10.2018
14:39:03
можеш сделать общую группу для эти двух групп ( текущих)

файл переменных назвать именем общей группы

и все они будут доступны всех хостам в любой из двух групп

да и в общей группе ( если туда запихнуть хост ) тоже они будут доступны

Google
Vladislav
15.10.2018
14:40:12


т.е. вот так потенциально?

Matvey
15.10.2018
14:40:36
какое ТЗ вообще?

Artur
15.10.2018
14:42:19


Vladislav
15.10.2018
14:42:21
как мне при таком раскладе манипулировать как аппликейшен-приложениями, так и сервис-приложениями?

xz1 никак не связан с другими xz

не корректно их все в одну группу, ибо логины-пароли разные

Anton
15.10.2018
14:45:20
Врде всё правильно же сделал, теперь у тебя в group_vars для xz* лежат логины-пароли, а в group_vars для rabbitmq - переменные для конфигурации всех rabbitmq.

В итоге rmq-prod1 будет иметь переменные из xz1 и rabbitmq.

Николай
15.10.2018
14:47:25
всем привет. передаю в плейбук с помощью ключа --extra-vars ключ pkg с каким-то значением и нужно в плейбуке сделать проверку, если данная переменная передаёться - выполнить плейбук если нет то вывести информацию на экран. Подскажите как можно это реализовать

Google
Artur
15.10.2018
14:50:22
ну или в блок всё запихнуть

Николай
15.10.2018
14:50:36
во всех тасках придётся делать when
как сделать эту проверку ?

when: ?????

Timur
15.10.2018
14:51:21
Достаточно одного таска с проверкой и инклудом нужных тасок в зависимости от результата

Artur
15.10.2018
14:52:34
тоже верно

Николай
15.10.2018
14:52:51
ок, как правильно написать проверку на наличие переменной ?

Matvey
15.10.2018
14:53:34
when: foo is defined

Timur
15.10.2018
14:53:56
Да, именно так

Matvey
15.10.2018
14:54:05
https://docs.ansible.com/ansible/2.7/user_guide/playbooks_conditionals.html#the-when-statement

Николай
15.10.2018
14:54:36
when: foo is defined
спасибо

то что я искал .. Всем спасибо

Terminator
15.10.2018
16:02:25
@cyberrr будет жить. Поприветствуем!

Cyber
15.10.2018
16:03:20
Привет всем, хочу сделать в set_fact динамическую переменную

С динамическим названием

Чтобы роль в конце выполнения устанавливала значение в переменную {{application}}.encrypt_pass

Как это правильно сделать ?

Vladislav
15.10.2018
16:11:58
В итоге rmq-prod1 будет иметь переменные из xz1 и rabbitmq.
теперь возник такой вопрос, а как мне и что запускать, чтобы это применить?

получается, мне надо плейбук на xz делать?

Anton
15.10.2018
16:13:12
получается, мне надо плейбук на xz делать?
Нет, на любой хост, хоть на все сразу.

Google
Vladislav
15.10.2018
16:13:23
не взлетело

не подтянулись переменные из группы

Anton
15.10.2018
16:13:56
Хосты уже автоматически подтянут себе переменные из обоих варсов. Если не взлетело, значит где-то в именах каталогов или файлов ошибка.

Vladislav
15.10.2018
16:14:47






с названиями все ок

но в плейбуке хост одной группы, почему он должен подтянуть другую?

Anton
15.10.2018
16:17:05
Он и не должен. Этот плейбук применится к хосту rmq-prod, я не вижу чтобы у него были где-то переменные заданы.

Так стоооп...)

Vladislav
15.10.2018
16:17:56
так а как быть, получается мне надо два плейбука делать?

Anton
15.10.2018
16:17:57
Я понял загвоздку)

Vladislav
15.10.2018
16:18:09
один на сетап всего, а второй по частям?

Cyber
15.10.2018
16:19:55
Может ли роль возвращать данные ?

Типа return

Vladislav
15.10.2018
16:20:43
роль не возвращает, возвращает степ

Anton
15.10.2018
16:21:39
один на сетап всего, а второй по частям?
Я думаю да. Сначала плейбук для настройки раббита, потом плейбук для его конфигурации твоими кредами. Ну и можно инклюднуть их последовательно тертим плейбуком, вообще всё по полочкам получится)

Vladislav
15.10.2018
16:22:30
блин, банальная вещь, а что-то такие сложности, аж ппц ?

спасибо, буду думать

правда почему-то в голове еще одна проблема возникла, но сформулировать пока не могу

Google
Cyber
15.10.2018
16:33:30
роль не возвращает, возвращает степ
А посмотри выше , мне нужна роль которая бы в переменную с динамическим названием делала, не знаешь как такое сделать ?

Asten
15.10.2018
16:33:56
так а как быть, получается мне надо два плейбука делать?
Несмог понять как airflow связан с rabbitmq. Это же 2 разные группы с 2 разными ролями и разными переменными. Разве нет?

Vladislav
15.10.2018
16:34:12
кажется я понял, получается, мне надо рулить группами сервисов, но когда надо объединять, то лучше всего это делать через отдельную группу, но с тегами, чтобы конфиги новые накатывались

Asten
15.10.2018
16:40:14
celery
Самый простой и понятный способ это celery вынести в отдельную роль и катить на группу celery в которой перечислены нужные тебе хосты или группы

Asten
15.10.2018
16:43:03
с celery все очень сложно в этом плане, он полностью в airflow вкорячен
Я к сожалению не могу угадать о чем ты и понять уровень вкоряченности) там же вроде pip install ...

Admin
ERROR: S client not available

Vladislav
15.10.2018
16:44:17
там еще много подводных камней, вплоть до отказа работать в virtualenv

Vladislav
15.10.2018
16:45:58
но как это решает мою проблему?

Asten
15.10.2018
16:48:02
но как это решает мою проблему?
Давай ещё раз. Какая проблема?





На скринах группы твои

Что нужно сделать с ними?

Vladislav
15.10.2018
16:49:52
установить по логике групп airflow и rabbitmq и настроить по логике группы airflow-rabbitmq

пока решение только в три плейбука, при этом третий обязательно через тэг

но что-то попахивает костылем

Google
Asten
15.10.2018
16:52:45
"логика группы aitflow" это какие то тачки которые нужно выполнить и там и там?

Не тачки а таски т9

Vladislav
15.10.2018
16:53:52
там роль airflow, в которой инсталится и конфигурируется дефолтом, аналогично у rabbitmq

Asten
15.10.2018
16:54:39
Прости не дописал( airflow-rabbitmq

Vladislav
15.10.2018
16:55:11
роль группы airflow-rabbitmq - это отдельный совокупный сервис



типа вот пример

возможно я делаю что-то не так, но пока я не догнал, как сделать "так" и как этим рулить...

Asten
15.10.2018
16:56:51
Я с телефона поэтому буду писать долго)

name: setup amqp hosts: rabbit role: rabbit tags: - rabbit - airflow-rabbit name: airflow hosts; airflow role: airflow tags: - airflow - airflow-rabbit name: some service hosts: airflow-rabbit role: airflow-rabbit tags: airflow-rabbit

С тегом airflow-rabbit выкатишь все сразу

Хочешь по отдельности кати с отдельным тегом

Надеюсь я тебя понял правильно

Vladislav
15.10.2018
17:03:51
Да, только роли airflow-rabbit нет, они разбросаны между двумя ролями airflow и rabbitmq

Но на мысль натолкнул, большое спасибо, кажется я понял, как это сделать

Asten
15.10.2018
17:04:38
Перенеси в новую роль и будет

Вообще нормально выносить в отдельные роли установку сервиса и конечную конфигурацию

У меня отдельно ставятся nginx, haproxy, elastic и так далее. А конфигурировать они более специфичными ролями

Vladislav
15.10.2018
17:07:10
Ага, я понял, огромное спасибо ??

Asten
15.10.2018
17:07:43
Если подробно: установка к примеру nginx и его базовых конфигурации это одна роль. А вот конфиги апстримов это другая

Почему так: nginx ты можешь захотеть накатить на любую группу. А конфиги нужны на каких-то конкретных хостах. Этим можно оперировать

Страница 610 из 625