@puppet_ru

Страница 61 из 112
Айтуар
24.04.2018
09:16:05
Докер решает все эти проблемы
Докер не решает всё. Особенно когда его нет.

ptchol
24.04.2018
09:16:23
сделайте так чтоб был !

Айтуар
24.04.2018
09:16:28
Начинаются проблемы с докером )

ptchol
24.04.2018
09:16:56
это лучше чем проблемы с венвами которые не дают настоящей изоляции и кучей кода на руби которые крутят этими венвами и пипами

Google
dk
24.04.2018
09:17:13
Докер решает все эти проблемы
Вот конкретно эту проблему он решает ни разу не лучше, чем рпм-билдер

Как разница где будет pip install -r req.txt - в докерфайле или в спеке%pre

ptchol
24.04.2018
09:21:31
разница будет в результате когда это развернется

dk
24.04.2018
09:23:00
разница будет в результате когда это развернется
Если у тебя стейтлессный микросервис: Package { servicename: } -> File { configname: } ~> Service { servicename: } То, в общем-то тоже пофиг :)

ptchol
24.04.2018
09:23:29
нет не пофиг если ты чуточку ошибёшься в путях и пришибёшь всё

dk
24.04.2018
09:23:32
Его можно апгрейдить, даунгрейдить, канареечно и пр...

ptchol
24.04.2018
09:23:53
у тебя пакеты воздействуют на одну систему беспорядочно меняя её стейт

ни о каком стейтлесе тут речи не идёт

dk
24.04.2018
09:25:01
нет не пофиг если ты чуточку ошибёшься в путях и пришибёшь всё
Чего все-то? Корявый контейнер пришибет общий волюм с не меньшим успехом

ptchol
24.04.2018
09:25:23
а зачем тебе оббщий вольюм в аппе ?

dk
24.04.2018
09:26:48
Зависимости у пакета локальные же (статические) - pip install --target ${package}/lib --isolated -r req.txt и доставляются прямо в пакете, никаких рекурсивных даун/ап-грейдов, лишь один пакет

Только в приложуху не забыть воткнуть sys.path.insert с путем до lib/

Google
dk
24.04.2018
09:28:03
а зачем тебе оббщий вольюм в аппе ?
Я подумал, что ты про нарушение целостности общих данных кривым релизом

ptchol
24.04.2018
09:28:23
не не не

я про то что когда ты менеджишь разные версии пакета в рамках венвов или без енвов

или ещё хуже, менеджишь венвы пакетом

это может привести к тому, что ты своим спеком покрошишь что то чужое

dk
24.04.2018
09:29:29
это может привести к тому, что ты своим спеком покрошишь что то чужое
юнит-тесты никто не отменял, нарукожопить в докерфайле тоже можно

ptchol
24.04.2018
09:29:42
ещё больше сложности )

и так 100500 строк кода в инфре чтобы развернуть пип пакет и поставить его ещё и тесты сверху )

dk
24.04.2018
09:30:32
Не, все проще же, изолированное окружение

В пакет собирается только основное приложение, в процессе сборки пип дотаскивает внутрь пакета зависимости

ptchol
24.04.2018
09:31:36
и тут приходит РКН и твой ап в момент деплоя не ставится да ? )

dk
24.04.2018
09:32:27
и тут приходит РКН и твой ап в момент деплоя не ставится да ? )
Всегда нужны кэши для пипа, контейнер тоже не соберется, если что-нибудь в процессе выполнения докерфайла сфейлится

ptchol
24.04.2018
09:32:39
тока мы это узнаем на момент билда а не деплоя

и проще сделать кеши \ прокси для билд фермы, а не для всех мест куда деплоим

dk
24.04.2018
09:33:14
rpmbuild тоже сфейлится, если что-то вернет ему код != 0

ptchol
24.04.2018
09:33:30
ты ж сказал что зависимости во время билда не запаковываем

dk
24.04.2018
09:33:57
Зависимости у пакета локальные же (статические) - pip install --target ${package}/lib --isolated -r req.txt и доставляются прямо в пакете, никаких рекурсивных даун/ап-грейдов, лишь один пакет

ptchol
24.04.2018
09:34:31
так это же на момент инстала а не билда

dk
24.04.2018
09:34:34
rpm пакет один, в нем приложуха и все её питонящие зависимости

Google
dk
24.04.2018
09:37:50
Формируется структура вида: %{_bindir}/my_app.py %{_libdir}/my_app/ - сюда пихаются питонящие дела, которые пипом поставились во время сборки "локально" (не в /lib/python билдера, а в билд-директорию/lib пакета)



Вот нотариально заверенный скриншот (код в закрытой инфре без интернетов)

ptchol
24.04.2018
09:41:55
лол

всё понятно и удобно)))

у меня такая же херь в виде грувишных билдов для дженкинса

dk
24.04.2018
09:42:23
Это издержки закрытой инфры, я не могу сделать pip install --update pip

Т.е. у билдера нет рута

ptchol
24.04.2018
09:42:36
это издержки сборки пакетов )

dk
24.04.2018
09:43:27
это издержки сборки пакетов )
Издержки pci-dss, пакеты нужно подписывать, а отдельный стейдж с другим контейнером для этого не стали делать (слишком много времени съедает сборка)

ptchol
24.04.2018
09:44:02
ну про это мы уже говорили )

dk
24.04.2018
10:02:57
Причем, нужно аншифт массива делать, иначе оно будет сначала в системных директориях искать

Айтуар
24.04.2018
10:41:51
Спасибо всем за советы. Пойду делать rpm.

JT
26.04.2018
11:54:10
привет, а есть кто провиженит AWS из папета ?

Georgii
26.04.2018
12:01:09
провиженим запущенные терраформом в авс инстансы

dk
26.04.2018
13:25:03
А в рамках Puppet::Parser::Functions::newfunction можно добраться до каталога?

Или хотеть проитерировать коллектор - это хотеть странного?

А кто как решает ситуацию puppet & yum update?

Google
dk
28.04.2018
10:29:34
Я пока не придумал ничего лучше, чем написать свой package-провайдер на базе yum.rb с подготовкой лок-листа в секции prefetch

Xeniya MTS
29.04.2018
15:54:18
А кто как решает ситуацию puppet & yum update?
Метапакет, у него в зависимостях все rpm инстанса. Номер метапакета = номер спринта

После спринта обновляется

Номер в переменной

Метапакет билдится моим питон-скриптом

dk
29.04.2018
16:29:55
А какую задачу это решает?
Проблема: yum update -y Для случаев любых пакетов с конкретной версией в конфигурации

Admin


dk
29.04.2018
16:30:02
Метапакетов не наготовишься :(

+ это усложняет ci

Xeniya MTS
29.04.2018
21:17:48
Метапакетов не наготовишься :(
А если автоматически?

Прописали версии пакетов, выкатили с помощью ci,

Запустили тесты

Если сломалось - алерт в мониторинг

dk
29.04.2018
21:19:56
Прописали версии пакетов, выкатили с помощью ci,
Вот про это усложнение ci я и говорил: нужно готовить для разных серверов разные метапакеты и учитывать наличие и изменения в этих пакетах в конфигурациях

Xeniya MTS
29.04.2018
21:20:54
Не, просто автоматически добавляешь последние версии. Если сломалось, разбираешься

dk
29.04.2018
21:20:55
Модифицированный провайдер пакетов, который готовит versionlock.list перед началом применения конфигурации, в этом плане лучше

Правда, я был ограничен во времени и сделать хорошо не успелось (уволился), чтобы после установки пакета делался yum-q с последующей корректировкой версии в лок-листе. Это позволило бы избежать необходимости прописывать релизную часть версии пакета (локер это требует) и создать возможность управления вайлдкардами в версиях

https://pastecode.xyz/view/946db026 Вот какое-то такое

ptchol
29.04.2018
23:15:26
Вы ненавидете людей просто

Google
Cyrill
06.05.2018
09:29:17
Коллеги, на новой работе есть puppet, подскажите что по нему почитать можно, чтоб быстро въехать?

AHPyXA
06.05.2018
10:03:37
Мне их официальный бесплатный курс неплохо помог осознать что происходит https://learn.puppet.com/category/self-paced-training

Valentin
08.05.2018
15:20:59
всем привет, подскажите такую вещь: нужно установить локальный пакет nginx(с репы не подходит, билдился с поддержкой lua), у него ес-но есть зависимости. rpm зависимости не решает. yum первый раз выполняется без проблем но при повторном вызове паппет агента возвращает "Nothing to do" что паппет принимает за ошибку и дальнейшие изменения не накатывает. как это побороть?

package { 'web_nginx': ensure => 'installed', # name => '/tmp/nginx-1.10.2-1.el6.x86_64.rpm', name => 'nginx', provider => 'rpm', source => '/tmp/nginx-1.10.2-1.el6.x86_64.rpm', require => File['/tmp/nginx-1.10.2-1.el6.x86_64.rpm'], }

для yum name менял местами

иначе тянет из реп

dk
08.05.2018
15:29:09
А что говорит rpm -q nginx ?

Он не может найти пакет name=>nginx среди установленных и выполняет повторную установку файла /tmp/nginx...rpm

Но пакет уже установлен и rpm вываливается с ошибкой nothin to do

Valentin
08.05.2018
15:32:02
нет, он не может установить только при первом запуске, с ключем -q не пробовал

dk
08.05.2018
15:32:50
Надо узнать название пакета

Может быть, еще и версию вписать

ptchol
08.05.2018
15:33:13
yum list installed |grep nginx

Valentin
08.05.2018
15:35:12
не, главная боль при чистой установке : yum устанавливает пакет, но при повторном вызове (раз в N промежуток контроль состояния) вываливается rpm не может установить из-за зависимостей, но если пакет установлен повторные вызовы проходят гладко

dk
08.05.2018
15:35:32
Т.е. наоборот?

Valentin
08.05.2018
15:35:47
+++

dk
08.05.2018
15:36:16
Так это: package { ["new", "nginx", "lua", "requirements"]: ensure => present } -> package { "web_nginx": ... }

ptchol
08.05.2018
15:37:18
понаставють стрелочек своих !

Страница 61 из 112