
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 с каким-то значением и нужно в плейбуке сделать проверку, если данная переменная передаёться - выполнить плейбук если нет то вывести информацию на экран. Подскажите как можно это реализовать

Vladislav
15.10.2018
14:48:10

Timur
15.10.2018
14:49:48

Artur
15.10.2018
14:50:16

Google

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

Николай
15.10.2018
14:50:36
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
то что я искал .. Всем спасибо

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
получается, мне надо плейбук на xz делать?

Anton
15.10.2018
16:13:12

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

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

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

Vladislav
15.10.2018
16:41:10

Asten
15.10.2018
16:43:03

Vladislav
15.10.2018
16:43:36

Admin
ERROR: S client not available

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

Asten
15.10.2018
16:45:37

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 ты можешь захотеть накатить на любую группу. А конфиги нужны на каких-то конкретных хостах. Этим можно оперировать