@puppet_ru

Страница 9 из 112
JT
15.06.2017
09:29:55
народ, подскажите, как можно тестировать манифест папета? имею в виду написание unit-test ?

zelo
15.06.2017
09:30:30
ставишь себе puppet puppet parser validate path/to/manifest.pp

JT
15.06.2017
09:31:05
не, валидейт - это только на проверку синтаксиса

zelo
15.06.2017
09:31:05
ну это только на синтаксис

Google
JT
15.06.2017
09:31:23
а я имею ввиду именно нормальное юнит-тестирование

то тут начальство поставило задачу - подумать о юнит-тестировании манифестов

на ум приходит только писать их на junit

zelo
15.06.2017
10:02:28
не очень понимаю, зачем это нужно puppet agent —ena;puppet agent -t —environment testenv;puppet agent —dis (на подготавливаемой ноде) и когда приходишь к идеалу, сливаешь изменения из testenv в production

тут недостаток только, если сильно ограничен в ресурсах

JT
15.06.2017
10:06:16
но это все равно ручное тестирование, а хочтся автоматизированного

zelo
15.06.2017
10:16:44
в puppet apply можно посмотреть

0x00
15.06.2017
10:29:16
JT
15.06.2017
10:31:49
ок, погляжу

ptchol
15.06.2017
17:39:07
ок, погляжу
тесты все вроде на серверспеке пишут.

JT
15.06.2017
17:40:49
Спасибо

Единорожа
21.06.2017
09:23:03
Привет всем) Кто может меня правильно в гугл отправить. Есть свой софт в котором конфиг(yaml) отличается на кажом сервере. Есть пуппет с хиерой. Как правильно все составить?)

В манифесте сделать content => hiera('backups::content'); И в hieradata/nodes/node.yaml backups::content: -"текст конфига" ?

Google
Единорожа
21.06.2017
09:25:51
Или есть какой-то тру вей

Xeniya MTS
21.06.2017
14:36:52
и в нём content => без всякой хиеры

то, что hiera yaml, не повод юзать heera для каждого yaml

ptchol
21.06.2017
17:00:03
Или есть какой-то тру вей
да норм, только если у вас конфиг мёджится будет, в иных случаях, я бы положил или файлы или шаблон.

не вижу смысла вытаскивать контент в иерархию, если "фишки" иерархии не используются.

Единорожа
21.06.2017
17:00:42
Для каждого сервера свой конфиг нужен

ptchol
21.06.2017
17:01:03
так в чём проблема ? $fqdn и пгнали.

file { '/etc/motd.conf': source => [ "puppet:///modules/zvq/common/motd.conf.${fqdn}", "puppet:///modules/zvq/common/motd.conf.${role}", 'puppet:///modules/zvq/common/motd.conf' ] }

найдётся хостовый, положится хостовый, не найдётся положится от роли, не найдётся положится дефолтный

ну или покладётся )

Единорожа
21.06.2017
17:12:54
как интересно)

0x00
21.06.2017
17:16:03
file { '/etc/motd.conf': source => [ "puppet:///modules/zvq/common/motd.conf.${fqdn}", "puppet:///modules/zvq/common/motd.conf.${role}", 'puppet:///modules/zvq/common/motd.conf' ] }
Да, я бы сделал как @ptchol советует. Если надо именно из иерархии генерить, то можно в темплейте делать <%= @my_config.to_yaml %> Add: В старых версиях рубей, правда, с этим могут быть проблемы, т.к. хэши там были неупорядоченные. В новых порядок будет сохраняться и в конфиге строчки от запуска к запуску меняться местами не будут.

Маленький Мук
25.06.2017
16:33:03
https://t.me/stream_consciousness

Xeniya MTS
25.06.2017
17:08:19
https://t.me/stream_consciousness
И что там хорошего?

Единорожа
26.06.2017
11:45:58
Есть совсем простой вопрос) Можете меня правильно в гугл отправить?) Нужно сделать что-то вроде if os=debian { packages { schedule provider => pip ensure => installed if os= ubuntu packages { python-schedule ensure => installed

zelo
26.06.2017
11:49:14
lsbdistid

встроенный факт

по нему можно делатьi f, но красивее возможно через хиеру

Xeniya MTS
26.06.2017
11:50:55
по нему можно делатьi f, но красивее возможно через хиеру
Смотря где. Зачем, например, пихать хиеру в модули?

Google
zelo
26.06.2017
11:51:12
не не, я ж говорю, возможно )

не утверждаю ни в коем разе

Xeniya MTS
26.06.2017
11:51:33
:)

ptchol
26.06.2017
13:44:36
хиеру везде

кейс с разными именами пакетов в дистрах это как раз история про params pattern который типа депрекейтед, и который частично заменен хиерой

ptchol
26.06.2017
16:03:45
ничо не понял

у тебя же автолоад параметров классов

или ты про то что иерархий нет в рамках модулей ?

ptchol
26.06.2017
16:05:02
ну это же несвовсем так, не ?

Хотя вру, то был эксперимент

Xeniya MTS
27.06.2017
07:36:33
JT
30.06.2017
08:45:39
есть задача, прошу помощи поставить Varnish + периодически затаскивать обновление geoip код на установку Варниша в манифесте написал, как правильнее сделать периодическое затаскивание? через bash или что получше есть ?

ptchol
30.06.2017
14:50:30
geoipupdate ?

Ivan
30.06.2017
14:59:58
А никто случаем не конвертирует ip2location в maxmind для nginx?

Единорожа
06.07.2017
09:13:37
Есть манифест, в котором сначала пулится файл сервиса - затем идет проверка на запуск

При выполнении - все пошло наоборот)

Все в одном классе

Google
Единорожа
06.07.2017
09:13:57
how to fix?)

0x00
06.07.2017
09:14:45
Посмотри документацию про dependencies. Ключевые слова: require, before

Единорожа
06.07.2017
09:16:54
https://docs.puppet.com/puppet/4.10/lang_relationships.html - видимо вот сюды смотреть надо)

0x00
06.07.2017
09:17:09
Да, абсолютно верно, это оно :)

Единорожа
06.07.2017
09:36:19
Просто добавил стрелочку -> и помогло)

Xeniya MTS
06.07.2017
09:41:18
Просто добавил стрелочку -> и помогло)
тут есть целый дзен во всём этом

сперва мне не нравилось, а теперь смотреть не могу на то, как это сделано в Ansible

(что просто подряд, и handler'ы неудобны)

Единорожа
06.07.2017
09:41:59
Ну я больше с анзиблом знаком, теперь приходится с пуппетом знакомиться)

//И не по своей воле

Xeniya MTS
06.07.2017
09:42:41
я стрелочки юзаю редко, только если подряд какая-то логика идёт, тогда выписываю её с отступами как в питоне и YAML. Чаще require пишу

так проще обычно

т.е. есть какая-то главная зависимость, где делается всё

например

zelo
06.07.2017
09:43:20
удобнее читать да

Xeniya MTS
06.07.2017
09:44:13
//И не по своей воле
а зря :( Пробовали что-нибудь большое на Ansible писать? Постоянно же то один модуль сломан, то другой :(

можно вообще кстати божественно делать - require и before понимают массивы :)

Единорожа
06.07.2017
09:46:34
С анзиблом ci/cd/cr (jenkins+gerrit+aws) развернуть инстанс со свежим кодом и дропнуть как замержится/либо долить свежий код если нужно)

Не думаю что это большое)

Google
Xeniya MTS
06.07.2017
09:47:30
С анзиблом ci/cd/cr (jenkins+gerrit+aws) развернуть инстанс со свежим кодом и дропнуть как замержится/либо долить свежий код если нужно)
ну да, но если что-то сложное, то уже часто не получается. На ансибле не выходит написать в рамках одного плейбука часто всё (что бы все роли можно было как библиотеку в компании юзать). Из-за глюков

Я пробовал что-нибудь большое Ничего не сломано
https://github.com/sHaggYcaT/pci_passthrough_deploy https://github.com/sHaggYcaT/fedora_kde_deploy https://github.com/sHaggYcaT/elementary_os_deploy Вот этот ансибл-говно проект вынужденно для этих ролей использует в одном случае 2.1, в другом 2.2(в 2.3 тоже сломано...)

говнопроект он в том числе из-за ограничений Ansible...

Единорожа
06.07.2017
09:49:57
О_о еосью кто-то серьёзно пользуется)

Xeniya MTS
06.07.2017
09:50:44
просто в паппет таких проблем нет, что бы важнейшие синтаксические контструкции одна работала в одной версии, а другая в другой

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

Alex
06.07.2017
09:51:15
Ну - после того, как редхэт купил энсибл, они сломали даже модуль copy

Но это же не ограничения энсибл

Это просто говноязык пайтон

И говнокоманда разработки

У паппета все такое же точно, только говноязык другой

Xeniya MTS
06.07.2017
09:52:06
Но это же не ограничения энсибл
ограничения - паппет опирается на сообщество, почти весь код в модулях(роли в терминах ансибл), а ансибл опирается на модули (плагины в терминах Puppet)

это ошибка в ДНК :(

Xeniya MTS
06.07.2017
09:52:56
Ansible galaxy это набор адского траша, который обычно не компилируется даже. А PuppetForge вполне можно юзать

Alex
06.07.2017
09:52:59
Выдуманные различия

А, разве что для докера какой-то

Xeniya MTS
06.07.2017
09:53:37
Да и срать - я из гэлэкси ни одного модуля не юзал
вот(!) А в Puppet тру вей юзать модули из форджа :)

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