
bebebe
21.10.2018
13:13:06
можно и сложить, я могу это сделать за вас

Maxim
21.10.2018
13:13:21
там что-то вроде with_items: admins + project_name

Vadim
21.10.2018
13:13:39
вытягивать админов для проекта через json_query, например

Maxim
21.10.2018
13:13:40
или по-другому как-то?

Google

Maxim
21.10.2018
13:14:01

Vadim
21.10.2018
13:14:52
для более сложных случаев у нас свой монструозный питоновский модуль который устанавливает факты, дергая где надо API, например

bebebe
21.10.2018
13:15:03
не обязательно, можно сделать следующим образом
users:
....
global_admins: &global_admins
- <<: *admin1
- <<: *admin2
project_admins:
<<: *global_admins
- *project_admin
- *project_admin2

Maxim
21.10.2018
13:15:41
о, можно свести копипасту к одной строчке
круто

Алексей
21.10.2018
13:20:30
Всякие паппеты рассчитывают список юзеров и имеют одну точку зрения на результат. Ансибл в силу работы имеет каждый раз разную. При типичном конечно кейсе

Maxim
21.10.2018
13:21:14
ну то что эти юзеры будут в разном порядке приезжать - это же вроде не так страшно
или я что-то упускаю?

Dovnar
21.10.2018
13:21:53

bebebe
21.10.2018
13:31:49

Maxim
21.10.2018
13:32:08
в каком плане?
то что элементы в массиве будут отсортированы по-разному вроде бы в любом случае не страшно же
главное, чтобы внутри элементов поля в тыкву не превратились

Google

Maxim
21.10.2018
13:33:31
или я по-прежнему чего-то не понимаю?

bebebe
21.10.2018
13:46:49

Алексей
21.10.2018
13:52:11
Тыква это а не вариант. Комбинаторный взрыв проектов пользователей и их прав.

bebebe
21.10.2018
13:53:12

Constantin
21.10.2018
14:00:28
Ребят, а как вы плэйбуки с letsencrypt тестируете?
Есть --stage флаг у certbotа, но он все равно пытается провести dns проверку, а я просто на локальном окружении хочу потестить, что все хорошо работает, пусть и с фэйковыми сертификатами

bebebe
21.10.2018
14:02:36
—stage - это обращение к staging api со стороны letsencrypt, проверка происходит таже самая, только
1. отдается не "зеленый сертификат"
2. отсутствуют лимиты на количество запросов и сертиифатов, как раз для того что-бы не попасть под баны на prod letsencrypt'e во время множества тестирований

Constantin
21.10.2018
14:04:08
—stage - это обращение к staging api со стороны letsencrypt, проверка происходит таже самая, только
1. отдается не "зеленый сертификат"
2. отсутствуют лимиты на количество запросов и сертиифатов, как раз для того что-бы не попасть под баны на prod letsencrypt'e во время множества тестирований
Ну это я знаю, мне инетересно, можно ли как-то потестировать без DNS проверки, то есть чтобы с локальной виртуалки в вагранте или из докер контейнера
Пока пришла в голову мысль поискать контейнер, или север, который на любой запрос от certbot на него будет отвечать, что все ок. Чтобы генерились левые сертификаты без проверки по DNS, этого бы вполне хватило

bebebe
21.10.2018
14:06:20
в ваших тестовых окружениях нет доступа до интернетов?

Sergey
21.10.2018
14:06:40

Constantin
21.10.2018
14:08:18

bebebe
21.10.2018
14:08:45
а как образы качать без инета)00
локальный артифактори видимо.
хотя нужно как-то прокидывать внутрь http порт, или менеджить тестовую зону в dns
вообщем, не до конца понятно что будет тестироваться, работоспособность самого letsencrypt или то что letsencrypt клиент вызывается с нужными параметрами.
впрочем, это уже оффтопик. в k8s есть letsencrypt Issuer
для докера есть letsnecrypt-companion
https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion


Constantin
21.10.2018
14:09:38
локальный артифактори видимо.
хотя нужно как-то прокидывать внутрь http порт, или менеджить тестовую зону в dns
вообщем, не до конца понятно что будет тестироваться, работоспособность самого letsencrypt или то что letsencrypt клиент вызывается с нужными параметрами.
впрочем, это уже оффтопик. в k8s есть letsencrypt Issuer
для докера есть letsnecrypt-companion
https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion
Тестироваться будет, что все, что завязано на то, что сертификат будет получен отрабатывает корректно, например, что Nginx получит сертификаты, что они будут созданы, если их нет, что задача на обновление поставится и т. п. рутина


bebebe
21.10.2018
14:11:37
работает прямо из коробки, вам про него расскажут в @devops_ru

Constantin
21.10.2018
14:12:04

Maxim
21.10.2018
14:15:50

bebebe
21.10.2018
14:26:38

Maxim
21.10.2018
14:28:01
Да вот и мне пока кажется, что не зависит от их порядка ничего ;)


Sergey
21.10.2018
16:00:18
то есть задача в конкретизированном виде выглядит так:
есть контора, которая делает всякий маркетинговый треш
есть ряд админов, который довольно фиксирован
есть команды разработчиков, которые меняются от проекта к проекту, а так же - пересекаются между проектами
есть сервера, которые бывают выделенные для проекта, а бывают предназначены для N проектов одновременно
цель задачи: завести всех админов и всех проектных юзеров на целевом сервере
учитывая довольно лютую перемешанность разработчиков между проектами хочется держать список (детальный - с ключами, группами, etc) всех юзеров в каком-то строго одном месте, а в роли рассовывать только "указатели" на элементы этого списка
для серверов, предназначенных для N проектов одновременно, эти списки из ролей должны как-то мержиться
а админы в полном составе должны присутствовать на всех серверах
делается LDAP, и без вот этого вот всего

Google


Kirill
21.10.2018
16:06:16
LDAP это всегда в таких случаях single point of failure
то есть задача в конкретизированном виде выглядит так:
есть контора, которая делает всякий маркетинговый треш
есть ряд админов, который довольно фиксирован
есть команды разработчиков, которые меняются от проекта к проекту, а так же - пересекаются между проектами
есть сервера, которые бывают выделенные для проекта, а бывают предназначены для N проектов одновременно
цель задачи: завести всех админов и всех проектных юзеров на целевом сервере
учитывая довольно лютую перемешанность разработчиков между проектами хочется держать список (детальный - с ключами, группами, etc) всех юзеров в каком-то строго одном месте, а в роли рассовывать только "указатели" на элементы этого списка
для серверов, предназначенных для N проектов одновременно, эти списки из ролей должны как-то мержиться
а админы в полном составе должны присутствовать на всех серверах
как вариант - центральный LDAP сервер с паблик ключами, при попадании туда нового ключа делаешь пакет из базы LDAP, подписываешь его для целостности, остальные сервера сверяют целостность пакета LDAP каждые n минут, если база обновилась - тянут базу и разворачивают ее куда-то типа /etc/ssh-keys/ - а) нет single point of failre б) удаление и заведение нового пользователя в одном месте с) нету LDAP трафика туда-сюда


bebebe
21.10.2018
16:11:59

Kirill
21.10.2018
16:13:20
но опять же весь этот онанизм выгоден при пользователях >100, во всех остальных случаях можно чо нить другое придумать

bebebe
21.10.2018
16:14:55
Кирилл, зачем вы вангуете, можно все узнать у автора ?
я так понял он ему просто досталось наследие

Sergey
21.10.2018
16:15:16
и пользователь даже ничего не заметит

bebebe
21.10.2018
16:15:55
и те, даже которые умеют, не всегда могут в связку RBAC+LDAP

Kirill
21.10.2018
16:16:28
бывает так что падает все включая резервные

Sergey
21.10.2018
16:17:57
если три лдапа уронил - ССЗБ

Alex
21.10.2018
16:23:22

Vitaly
21.10.2018
16:47:44
Другое дело, многие решения умеют только проверку пароля через ldap. Пользователей надо руками локально заводить

bebebe
21.10.2018
16:54:31
Это не оффтопик ли, коллеги?

Sergey
21.10.2018
19:15:34

Павел
21.10.2018
19:41:00
Товарищи, поделитесь опытом, может холиварный вопрос или кому как удобно, но все-таки.
У кого как запускаются плейбуки? Вот есть, например задачи контроля конфигурации сотен серверов, ее должны контролировать штук 30 плейбуков.
Это все запихивается в какой-нибудь CI? Например у нас тимсити и можно туда запихать. Или как-то по другому запускаются плейбуки обычно? Какие есть лучшие практики в этом отношении?

Sergey
21.10.2018
19:42:20
Чаще всего всё завязывается на рабочие процессы в компании. Вот как у вас заведено - так и стоит делать, потому что потом натягивать реальность на результаты работы, как сову на глобус - такое себе занятие.
(при написании данного поста ни одна сова не пострадала ?)

Google

Павел
21.10.2018
19:42:52

Sergey
21.10.2018
19:43:23
Тогда можно начать с простого - веб-мордочка по вкусу (Jenkins, AWX, Rundeck)
Либо что-то люто самописное, но там часто возникают проблемы с тем, чтобы подружить это самописное с Ансиблом.
А упомянутая троица умеет в инвентори и плейбуки.
(с плагинами, канеш)

Павел
21.10.2018
19:45:04

Vlad
21.10.2018
19:45:36
У нас очень просто. Есть репозиторий в gitlab. При коммите запускается ci запускающий ansible. Он-же дергается через хук самим сервером при перезагрузке.

Sergey
21.10.2018
19:45:55
https://plugins.jetbrains.com/plugin/9017-ansible-runner
не зашло?

Aleksei
21.10.2018
19:47:57
Зачем дженкинс если awx все из коробки умеет

Павел
21.10.2018
19:48:32
не зашло?
Там есть несколько особенностей, ограничений. Например, ситуация:
Хочется запускать плейбуки от отдельного пользователя на сервере раннеров, а мы не можем, потому что раннеры работают от другого пользователя и так положено. Плагин позволяет тупо взять репу с плейбуками и ролями и запустить его от юзера, от которого работают раннеры. В общем неудобно.

inqfen
21.10.2018
19:49:02
У меня подобное в гитлабе
Мне норм

Sergey
21.10.2018
19:49:13

Aleksei
21.10.2018
19:50:45

inqfen
21.10.2018
19:51:02

Vlad
21.10.2018
19:51:12

inqfen
21.10.2018
19:51:25

Sergey
21.10.2018
19:54:02

Google

Алексей
21.10.2018
19:56:41

Aleksei
21.10.2018
19:56:45

Artem
21.10.2018
20:37:27
Рэднэк

Alex
21.10.2018
21:38:08
Рандек хз зачем теперь нужен
Гадость страшная этот рандек. Я пару лет назад хотел внедрить вместо Дженкинса, так там бага была которая не могла запускать ансибл. Потом хотел Дженкинс заюзать, не совпало по бизнес процессам. Попробовал авх, тоже не совпало по бизнес процессам. Gocd это просто для красивой кнопочки, функционала вообще нет. Теперь хочу попробовать Форман и гитлаб ci.

Эдуард
21.10.2018
22:17:55
gitlab-ci тоже не рекомендую для большего, чем docker build .

Alex
21.10.2018
22:18:54

bebebe
22.10.2018
02:11:53

Alex
22.10.2018
07:39:33

bebebe
22.10.2018
07:40:14

Alex
22.10.2018
07:40:26

Алексей
22.10.2018
07:42:07
Ранек это вебкрон же

dmbm
22.10.2018
07:46:34
Привет! А что лучше выбрать, типа rundeck, awx, tower или что-то подбное? Нужна доменная авторизация, гибкая и настраиваемая ролевая модель, т.е. доступ к определённым inventory определённым группам, доступ на запуск определённых плейбуков, понятный интерфейс для дежурного. Лучше - если возможен запуск не только ансибл, а например ещё и других скриптов. У кого какой опыт работы с такими системами?

bebebe
22.10.2018
07:47:19

Dan
22.10.2018
07:48:47

Антон
22.10.2018
08:04:26

Victor
22.10.2018
08:05:09

Dan
22.10.2018
08:05:40

Victor
22.10.2018
08:06:13
вполне, в чем отличие от @devops_ru ?
Кроме того что там народу меньше

Dan
22.10.2018
08:06:30