@pro_ansible

Страница 163 из 625
Pavel
11.03.2017
15:50:33
2 commits ?

Phil
11.03.2017
15:50:45
git clone make install

Pavel
11.03.2017
15:53:37
Это самое крутое что я видел по соотношению звезд и функциональности. В репе лежат 3 файла gitignore, readme, license ......... => ?60

Dmitrii
11.03.2017
16:38:20
Снова ансибл хуесосили?

Google
Pavel
11.03.2017
16:39:21
скорее джангу ?

Paul
11.03.2017
16:43:21
с удовольствием посмотрю на инструмент, который не хуесосят. И который при этом реально используется.

Serge
11.03.2017
22:08:11
Это самое крутое что я видел по соотношению звезд и функциональности. В репе лежат 3 файла gitignore, readme, license ......... => ?60
А прикинь, мы ветку POC таки допишем и в develop смержим. Вообще на куски репу разорвут.

Кстати, вот как надо относиться к сообществу https://twitter.com/GitHubHelp/status/840675186802319361

А вот другой мой любимый тредик. https://twitter.com/lig1/status/801483475656310786

Краткое содержание: - исправьте баги - помоги - так вот же PRы, осталось только смержить - если с чем-то не согласен, иди в IRC ...

Ладно, пойду багу в Pyventory исправлю.

Кстати, я придумал как его сделать вообще офигенным. Короче, стабилизирую, добавлю фичу изоляции скоупов разных переменных и тогда загоню всё снова в yaml.

Только тогда название Pyventory теряет смысл, но что же делать, так исторически сложится;)

Идея со скоупами растет отсюда https://speakerdeck.com/lig/efficient-ansible-host-groups-organization

Смысл в том, чтобы контролировать, что переменная используется только в своем контексте. То что относится к области проведения приложения не должно переопределяться в области конфигурации окружения, например

Albert
11.03.2017
22:28:40
Мы решили проблему с разными env с помощью плейбуков. Просто готовим роли под продакшен, а на стейджинг просто еще один плейбук делаем и rewrite на нужные параметры

А в многих случаях такой надобности нет... Просто отличий между прод и стейдж практически нет

Google
Serge
11.03.2017
22:48:56
А в многих случаях такой надобности нет... Просто отличий между прод и стейдж практически нет
Именно, добавил группы для прода и для стейджа и отличия в них положил.

Именно, добавил группы для прода и для стейджа и отличия в них положил.
А потом пришел Петя и один из этих параметров прописал в группе host_type_8.

Albert
11.03.2017
22:50:11
А кто петин код смерджил?

Serge
11.03.2017
22:50:11
Albert
11.03.2017
22:50:43
Нехерь Пете херню писать. На это конвенции пишутся

А если по конвенции не пишешь, то пусть свою херню в другом месте пишет

Serge
11.03.2017
22:51:23
А кто петин код смерджил?
Ну, так лучше иметь явное ограничение на уровне Пети, чем надеяться, что ревьювер не забыл употребить свои утренние вещества

Albert
11.03.2017
22:51:59
Ансибл не говорит тебе как писать

В этом то и преимущество

Serge
11.03.2017
22:52:16
Нехерь Пете херню писать. На это конвенции пишутся
Конвенции лучше всего автоматически проверять. Да, не всегда возможно. Но если возможно, это же хорошо.

Albert
11.03.2017
22:53:48
Ну, так лучше иметь явное ограничение на уровне Пети, чем надеяться, что ревьювер не забыл употребить свои утренние вещества
Это уже проблема любого софта. Не возможно все проверять. Всегда что нибудь пропустят... Зато можно поправить когда заметишь

Serge
11.03.2017
22:53:56
В этом то и преимущество
Я согласен. И нисколько не собираюсь заставлять кого-то писать как я. Просто хочу сделать полезный инструмент, который поможет автоматизировать проверку некоторых конвенций, в том числе той, которую я успешно использую

А я говорю про конкретную фичу, которая решает конкретную проблему

Не надо делать?

Вредно?

Albert
11.03.2017
22:56:18
Ну посмотрим что получится...

Хотя если проект как стоник напишет то же что и сам ансибл делает, то смысла я в нем мало вижу

Albert
11.03.2017
22:58:19
Я бы хотел видеть что то вообще другое. Например то что ансибл не позволяет делать - использовать jinja2 полностью везде, а не только в темплейтах

Google
Serge
11.03.2017
22:58:23
Так то и в ансибле смысла тогда нет. Он же то же самое, что fabric делает

Albert
11.03.2017
22:59:24
Как тут уже говорили - ансибл лучшее из всего что есть

хоть и сам го***

Serge
11.03.2017
22:59:40
Вот, кстати, в fabric именно так

Serge
11.03.2017
23:00:17
Это императивный код

Albert
11.03.2017
23:00:43
Убрать when, block, и похожее, и использовать просто jinja2

Serge
11.03.2017
23:02:03
Вот чего в ансибле действительно не хватает, чтобы на новый уровень перейти - это работы с состоянием. Но это уже отдельный очень жирный разговор за многие куски его архитектуры и разные возможные понимания стейта.

Albert
11.03.2017
23:02:16
Это императивный код
А чем ансибл уже не императивен?

Serge
11.03.2017
23:03:10
Убрать when, block, и похожее, и использовать просто jinja2
Ну это всё не к очень хорошему приведёт. Но одно это изменит сильно в лучшую сторону - управление видимостью переменных. Меня этот глобальный контекст бесит сильно.

Albert
11.03.2017
23:03:16
Ыместо when и with_* использовать if и for

Serge
11.03.2017
23:04:05
В свое время в Позитиве об это много копий поломали

В if у джинжи в общем случае слишком большая свобода. Там можно что-то вычислять. With_items - синтаксический сахар для декларативного кода

Вообще, я бы совсем убрал джинжу из плейбуков. Оставил бы возможность обращаться к элементам и всё. Там бы иметь возможность переменные дергать по имени из переменной и достаточно.

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

Декларативный и императивный код надо разделять как можно более явно.

Dmitry
12.03.2017
04:56:23
программирования на конфигах срач? одобряю! :)))

Magistr
12.03.2017
06:56:38
@lig11 а вы фичу ансибла с тем что переменные можно в 16 местах объявить будете реализовывать или порядок там наведете ?

Google
Serge
12.03.2017
07:54:03
Но точно будет четкая область видимости

here1am
12.03.2017
16:36:21
чуваки, а как вы одну и ту же роль растягиваете на несколько наборов тэгов? к примеру, я хочу сделать так, чтобы один и тот же демон запускался в несколько инстансов с разными конфигами и на разных портах

хотел ещё спросить, а смотрю, уже всё на месте https://docs.ansible.com/ansible/letsencrypt_module.html

Serge
12.03.2017
16:49:51
Есть несколько путей, зависит от того на каком уровне хочется множить.
Можно научить роль запускать N копий сервиса и кормить её списком объектов по которым запускать

Можно научить роль запускать N копий сервиса и кормить её списком объектов по которым запускать
Можно сделать N хостов с одним отличием - конфигом этого демона и одинаковым ansible_host и деплоить группой

Admin
ERROR: S client not available

here1am
12.03.2017
16:53:04
не, второе не нравится

есть пример реализации второго варианта? каждому шагу скармливать with_items не очень хочется

Serge
12.03.2017
16:53:57
Тогда учить роль тому, что сервиса N копий

не, второе не нравится
Ну оно бывает полезно не для одного сервиса, а когда правда два разных окружения в один хост пихаешь. Если сможешь изолировать, то оно даже работать так будет

Типа в main.yml инклюдишь item.yml, который рядом лежит

В main можно приготовить что-то общее перед или после include, может быть полезно

here1am
12.03.2017
17:00:16
хм. что-то я за полгода совсем ансибль забыл. спасибо, кажется понял, что делать

Serge
12.03.2017
17:04:50
Только помни, оно будет выполнять каждую операцию внутри этого файла, как будто на неё наложили этот with_items, а не по порядку всё для каждого. Это не for, это размазывание with_items по каждой инструкции внутри включаемого файла

here1am
12.03.2017
17:06:10
чем это чревато? медленнее или мне обязательно переменную принимать в каждой инструкциия?

Serge
12.03.2017
17:16:35
чем это чревато? медленнее или мне обязательно переменную принимать в каждой инструкциия?
Порядком выполнения, сайдэффектами, ну какими-то возможными. Надо учитывать просто

Lomakin
12.03.2017
17:33:37
Привет всем помогите с докером, лабу надо сделать...?

Google
Lomakin
12.03.2017
17:33:54
Знаю что не по теме

Алексей
12.03.2017
17:42:10
Чобы не задать вопрос с @ru_docker ?

Lomakin
12.03.2017
17:42:37
Алексей Большое спасибо

Igor
13.03.2017
08:00:56
Коллеги, а как копировать файл на удалённом хосте с одного места на другой?)

copy - с локального сервера на удалённый fetch - с удалённого на локальный

Igor
13.03.2017
08:10:55
Command не индемпотентен

Pavel
13.03.2017
08:13:54
copy: remote_src=true... (added in 2.0)

Igor
13.03.2017
08:20:05
Anatoly
13.03.2017
08:20:29
synchronize еще есть

Pavel
13.03.2017
08:20:49
Оно, спасибо!
все в доках ))

synchronize еще есть
это ж вроде не копи, а рсинк...

Pavel
13.03.2017
08:23:57
и все... если просто скопировать надо, зачем что-то еще?

я ж не спорю, можно всегда рсинком пользоваться

Anatoly
13.03.2017
08:25:02
и все... если просто скопировать надо, зачем что-то еще?
Иногда скопировать нужно директорию. Иногда не зачем копировать если содержимое файла не поменялось

Hackru
13.03.2017
10:08:06
я ж не спорю, можно всегда рсинком пользоваться
Я пока copy -a не выучил, всегда рсинкал :)

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