@puppet_ru

Страница 83 из 112
Freddie
29.08.2018
08:14:35
делать как в ЦЕРНе, или похоже. думать про multi-tenancy и про то, как дать людям инструменты для взлетания своих простых окружений, где они будут боги и цари

(при условии, что базовый company-wide конфиг приносится модулем, который они тоже будут юзать, ну или чем-нибудь до паппета)

пойти в проститутки?
а ты что, по любви это всё делаешь что ли?

Andor
29.08.2018
08:18:07
по возможности

Google
dk
29.08.2018
08:22:21
Тебе нужны факты

Facter.add(:hw_nic_firmware) do confine :kernel => 'Linux' setcode do Facter::Core::Execution.execute('/sbin/get_nic_firmware_version') end end

Максималист
29.08.2018
08:30:40
это внутри класса реализуется?

Freddie
29.08.2018
08:30:52
это в фактах, lib/facter

https://puppet.com/docs/facter/3.9/custom_facts.html

dk
29.08.2018
08:31:17
А потом уже в коде модуля if not $::hw_nic_firmware { fail "..." } if $::hw_nic_firmware != $required_version { update ... }

Freddie
29.08.2018
08:31:41
> if not unless

чтоб не думать про скобочки, если вдруг условие начнёт усложняться

dk
29.08.2018
08:32:05
> if not unless
Я уже год не писал папповых конфигов ? (fix* полгода)

Максималист
29.08.2018
08:32:49
омг омг папет не дает скучать

пошел читать и пробывать

Google
dk
29.08.2018
08:34:26
пошел читать и пробывать
Ну вообще, тебе скорее всего придется распилить версию на минор-мажор и прочие ? если даунгрейд версии не предполагается

ptchol
29.08.2018
08:45:03
берите докер и окружение приложений складывайте туда )

Максималист
29.08.2018
08:46:51
так факт как значение я же могу в хиеру записать

?

ptchol
29.08.2018
08:51:14
=_=

Максималист
29.08.2018
08:51:25
вай но

нот

Andor
29.08.2018
08:51:33
при чём тут хиера?

ptchol
29.08.2018
08:51:37
факт как значение ?

dk
29.08.2018
08:51:37
Потому, что это разное

Максималист
29.08.2018
08:51:51
файл конфигурации

пусть там лежит

dk
29.08.2018
08:52:10
Тебе нужно перед готовкой конфигурации узнать версию прошивки

Хиера тут не при чем

Максималист
29.08.2018
08:52:22
так под хиерой имею ввиду yaml файл

ptchol
29.08.2018
08:52:49
хиера это как бы параметры для твоего стейта. То что ты сверху спускаешь.

Максималист
29.08.2018
08:53:06
ладно канцел не буду тупить

ptchol
29.08.2018
08:53:06
а факты это данные поставляемые нодой, на основании которых твоя логика может иметь воркэраунды

Максималист
29.08.2018
08:53:09
почитаю про файкты

ptchol
29.08.2018
08:53:38
и опять же эти факты используются для изменения "роутинга" по параметрам хиеры

Google
Максималист
29.08.2018
08:54:46
а факты это данные поставляемые нодой, на основании которых твоя логика может иметь воркэраунды
а выражение типа unless => "grep -w '1.8.65' ${tmp_dir}/inventory.txt" можно как факт представить???

Andor
29.08.2018
08:55:04
факт в манифестах пупета - ещё одна переменная

там можно обычную логику делать

Freddie
29.08.2018
08:56:10
dk
29.08.2018
08:56:21
Подозреваю, что ты делаешь что-то не то, но можно делать кастомные факты из yaml-файлов

Максималист
29.08.2018
08:57:28
Freddie
29.08.2018
08:57:37
ну и будет что-нибудь тупенькое (пьяный псевдокод наощупь): Facter.add(:fw_version) do if File.exist? '/path/to/inventory.txt' setcode do File.read '/path/to/inventory.txt' end end

Максималист
29.08.2018
08:58:09
логика такая выполнить патч если в файле инвентори нет этого патча а зависимость действий лишь для порядка

Freddie
29.08.2018
08:58:24
ну или прочитать файл и откусить всё лишнее, если там ещё что-то кроме версии лежит

dk
29.08.2018
08:58:29
просто тхт файл
https://puppet.com/docs/facter/3.6/custom_facts.html#external-facts

Freddie
29.08.2018
08:58:41
или умнее, если там формат подходит

Protos
29.08.2018
09:01:14
Ты же проверяешь какой-то апдейт так?

Максималист
29.08.2018
09:01:44
да

так идея а если выпилить нафиг все эти require

оставить unless

Protos
29.08.2018
09:02:00
Ну и пиши по завершению апдейта в кастом факт апдейт инфу

Максималист
29.08.2018
09:02:14
а между exec прописать ->

?

Google
Максималист
29.08.2018
09:02:38
действия по порядку - и c проверкой unless

Andor
29.08.2018
09:02:50
это будет то же самое что метапараметры

Максималист
29.08.2018
09:03:07
тоесть конфликт все равно будет

Andor
29.08.2018
09:03:32
какой конфликт?

Freddie
29.08.2018
09:03:57
Protos
29.08.2018
09:04:12
Да если много патчей тогда засрешь

Andor
29.08.2018
09:04:26
факт может быть типа "unapplied patches"

Freddie
29.08.2018
09:04:28
и скорее всего экзека с unless (и версией из переменно) будет достаточно

с другой стороны, если надо просто сравнить версию на хосте с версией, которая должна быть - тогда факт в самый раз

(ставлю диагнозы по фотографии)

Andor
29.08.2018
09:05:23
телепаты вышли из отпуска

Protos
29.08.2018
09:05:44
Лечу ваш паппет наложением рук

Максималист
29.08.2018
09:05:59
какой конфликт?
https://t.me/puppet_ru/8182

Andor
29.08.2018
09:06:34
про конфликт ничего не сказано

Максималист
29.08.2018
09:07:05
про конфликт ничего не сказано
да верно, уточню конфликтом отношение exec и unless назвал в моем случае

Protos
29.08.2018
09:07:53
С чего бы им конфликтовать? вывалит просто nil nil nil

Максималист
29.08.2018
09:08:11
1 патч ставиться

Freddie
29.08.2018
09:08:17
https://t.me/puppet_ru/8182
КАК? как такую ссылку сделать?

Максималист
29.08.2018
09:08:46
правой кнопкой на сообщении

скопировать линк

Google
Максималист
29.08.2018
09:08:52
так brake

надо поесть

Andor
29.08.2018
09:09:11
в веб-версии такого нет

Максималист
29.08.2018
09:09:14
???

dk
29.08.2018
09:09:34
1 патч ставиться
Как ты узнаешь - установлен ли патч или нет?

Я имею ввиду - есть какое-то приложение?

Protos
29.08.2018
09:10:14
Как ты узнаешь - установлен ли патч или нет?
Он после патча очевидно пихает инфу в файл

Freddie
29.08.2018
09:10:40
скопировать линк
о, спасибо. не во всех группах, видимо. можно. первый раз такое вижу

Protos
29.08.2018
09:10:56
Максималист
29.08.2018
10:09:08
Он после патча очевидно пихает инфу в файл
1) создаем файл куда выгружаем все текущие информацию о всех текущих патчах в текстовой файл 2) проверяем есть ли данный патч (уникал ид) в текстовом файле 3) если он там есть пропускаем exeec 4) если его там нет то выполняем exec

close. оставил реализацию без фактов. почитаю постетирую их тогда вернусь.

дня доброго

тишина

dk
30.08.2018
09:54:44
Бодрого

Максималист
30.08.2018
10:31:11
с Solaris работал кто?

Andor
30.08.2018
10:32:03
Возможно

Максималист
30.08.2018
13:32:47
вопрос

запускаешь манифест с 1 классом, в директории он есть

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