
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

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

Xeniya MTS
25.06.2017
17:08:19

Единорожа
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

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 который типа депрекейтед, и который частично заменен хиерой

Xeniya MTS
26.06.2017
16:02:59
Просто не в модули же хиеру?

ptchol
26.06.2017
16:03:45
ничо не понял
у тебя же автолоад параметров классов
или ты про то что иерархий нет в рамках модулей ?

Xeniya MTS
26.06.2017
16:04:18

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) развернуть инстанс со свежим кодом и дропнуть как замержится/либо долить свежий код если нужно)
Не думаю что это большое)

Alex
06.07.2017
09:47:29

Google

Xeniya MTS
06.07.2017
09:47:30
Я пробовал что-нибудь большое
Ничего не сломано
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)
это ошибка в ДНК :(

Alex
06.07.2017
09:52:51

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