
Единорожа
12.02.2018
09:59:33
/opt/prometheus/ - не существует
И puppet ругается
Error: Cannot create /opt/prometheus/exporters; parent directory /opt/prometheus does not exist

zelo
12.02.2018
10:00:17
ну да, описать её - делов то

Google

zelo
12.02.2018
10:00:25
вроде не длинный путь )

dk
12.02.2018
10:01:39
file { [ '/opt', '/opt/prometheus', '/opt/prometheus/exporters' ]:
ensure => dirctory
}

Единорожа
12.02.2018
10:01:42
Но я специально вынес в переменную, мне теперь её обрезать придется каким-то образом что бы создать все родительские дирректории

dk
12.02.2018
10:01:45
Изврат, кончно

Xeniya MTS
12.02.2018
10:02:51
Для парсинга

zelo
12.02.2018
10:05:45

Единорожа
12.02.2018
10:06:10
А вот тут я хз, как в голову что придет не мне
Я думаю при помощи split можно отрезать что мне нужно, но что-то все не очень красиво выходит

zelo
12.02.2018
10:08:14
нотифай в exec с "mkdir -p $переменная" может? )
онлииф директория не существует

Единорожа
12.02.2018
10:13:26
Что-то все слишком не красиво выходит, просто руками опишу /opt/puppet и пускай сами скажут как им красиво нужно)

Google

Единорожа
12.02.2018
14:29:20
Еще тупые вопросы от меня подъехали.
Есть у меня $exporters_path в prometheus/init.pp заданная в class prometheus($exproters_path)
Есть у меня несколько других pp в каждом из которых свой класс вида class prometheus::mysql_exporter
Есть у меня templat-ы для systemd инитов
Как мне правильно в темплейтах вытянуть значение из $prometheus::exporter_path?
Прямо указывать пробовал <%= prometheus::exporters_path %> Detail: undefined method `exporters_path' for nil:NilClass
Пробовал в самом классе указывать $exporters_path = $prometheus::exporter_path и так же пробовал указывать в круглых скобках в классе итог undefined local variable or method `exporters_path'

dk
12.02.2018
14:31:30
@prometheus[‘exporters_path’]

ptchol
12.02.2018
15:09:23
никак же
только лукапом
но это типа бэд прэктис
вы просто представьте, у вас шаблон конфига, зависящий от стороннего класса

dk
12.02.2018
15:17:16

ptchol
12.02.2018
15:17:35
как бэ это тайтли каплэд. и это плёха
лукап внутри шаблона вызывается помоему через scope

dk
12.02.2018
15:18:20
Конфигурация уровня ‘китайская лапша’ - ни начала, ни конца

ptchol
12.02.2018
15:18:34
но я бы не рекомендовал всё же так делать.
лучше объявите это как параметры, и дефолтные значения их задайте из другого класса

dk
12.02.2018
15:19:01
Только незаменимые специалисты в ней смогут разобраться

ptchol
12.02.2018
15:19:01
и просто не трогайте никогда, если оно вам не надо.

Единорожа
12.02.2018
15:19:06
@prometheus[‘exporters_path’]
Теперь ошибка такая же но символы другие Detail: undefined local variable or method `?exporters_path?' for #<Puppet::Parser::TemplateWrapper:0x54b188c2>

dk
12.02.2018
15:19:48

ptchol
12.02.2018
15:20:18
https://puppet.com/docs/puppet/5.3/lang_template_erb.html#scopevariable-or-scopelookupvarvariable

Единорожа
12.02.2018
15:21:19

ptchol
12.02.2018
15:21:57
По моим ощущениям да.
Но если хотите, пример я вам кинул

Google

ptchol
12.02.2018
15:23:24
у вас есть разные варианты решения "проблемы."
вконце концов можно победить это включением
анкор паттерн задеприкейтили вроде, но это лучше вроде чем такое вот )

Единорожа
14.02.2018
09:24:24
Я вернулся вновь с вопросами
https://forge.puppet.com/puppetlabs/firewall вот этим кто-либо пользуется?

Max
14.02.2018
09:26:40
Я
четкая вещь

Единорожа
14.02.2018
09:27:01
Есть цель - закрыть порт для всех кроме n ипов, на сколько я помню руками нельзя сделать -s ! ип1, ип2 (несколько ипов перечислить через запятую)
Моя цель открыть для ип1, ип2, закрыть для всех. Мне 3 раза firewall{} корячить?
Просто source => ['ип1', 'ип2'], что-то не прокатило

Max
14.02.2018
09:27:21
и пукнуть не даст без твоего разрешения на агенте
Ну сколько нужно - столько можно и добавить - главное это счетчик

zelo
14.02.2018
09:28:17
https://github.com/alexharv074/puppet-firewall_multi.git
ставил вот этот модуль для массива src

Единорожа
14.02.2018
09:29:00
Debian 9 iptables 1.6 нельзя с ! пихать несколько
iptables v1.6.0: ! not allowed with multiple source or destination IP addresses

dk
14.02.2018
09:42:44


Единорожа
14.02.2018
09:43:15
Оказалось, сделали выше за меня, но что-то не особо у меня выходит)
Error: Could not set 'present' on ensure: undefined method `+' for nil:NilClass at /etc/puppetlabs/code/environments/exporters/modules/firewall_multi/manifests/init.pp:126
Error: Could not set 'present' on ensure: undefined method `+' for nil:NilClass at /etc/puppetlabs/code/environments/exporters/modules/firewall_multi/manifests/init.pp:126
Wrapped exception:
undefined method `+' for nil:NilClass
Error: /Stage[main]/Prometheus::Mysql_exporter/Firewall_multi[9104 mysql exporter]/Firewall[9104 mysql exporter from ип2]/ensure: change from absent to present failed: Could not set 'present' on ensure: undefined method `+' for nil:NilClass at /etc/puppetlabs/code/environments/exporters/modules/firewall_multi/manifests/init.pp:126
Версии поставил как в readme


zelo
14.02.2018
09:57:37
Prometheus::Mysql_exporter/Firewall_multi[9104 mysql exporter]/Firewall[9104 mysql exporter from ип2]/ensure
а вот тут реально можно по русски писать?
я просто не пробовал

Единорожа
14.02.2018
09:58:14
Там был второй ип
В целом все выглядит
firewall_multi {"9104 mysql exporter":
chain => 'INPUT',
proto => 'tcp',
source => [
'ип1',
'ип2',
],
dport => 9104,
action => 'accept'
}

zelo
14.02.2018
10:10:37
у меня версия 1.7.0 с 3м паппетом работает

Google

Единорожа
14.02.2018
10:12:27
У меня 5 с 1.12+1.10 и копипаста из readme не работает

dk
14.02.2018
11:41:41
Путем нехитрых манипуляций этот модуль можно заставить работать с 5-м паппетом

Единорожа
14.02.2018
11:51:36
Но при этом надо будет утаскивать к себе в репозиторий
А не просто указать его в puppet file

ptchol
14.02.2018
11:55:47
Как жить не с вендореными модулями ? Если у вас нет врапперов
А если есть врапперы то и на дефолтный модуль можно мульти навернуть ))

Единорожа
14.02.2018
11:59:41

dk
14.02.2018
12:00:23
Ты про декораторы уровня
class my_firewall ($rules) {
create_resources('firewall', $rules);
}
?

Единорожа
14.02.2018
12:05:12
Если вопрос мне то, мне нужно научить firewall модуль уметь хавать списки как source

dk
14.02.2018
12:05:33
Не, это птчолу :)

ptchol
14.02.2018
12:22:55
Вроде того.

dk
14.02.2018
12:26:30
После некоторого опыта с паппетом на хх начинаешь смотреть вакансии, где требуется именно опыт с работы с паппетом. Но как определить - где он есть, если везде пишут "puppet/chef/ansible/salt/pssh"

ptchol
14.02.2018
12:32:40
Ищи наоборот где нет паппета а тока ансибл

Ivan
14.02.2018
12:33:13
О_О

dk
14.02.2018
12:33:43
Сижу, вот, паппет вкручиваю. Пока приходится одному страдать т.к. ни у кого экспертизы нет по части написания каталогов :с
Но ансибл тут есть. На нем написаны пара десятков плейбуков уровня кистартов, которые вручную запускаются в дженкинсах
Не обманули
А паппет на мастере может сохранять графы того, что творилось на агентах? Или можно ли доставать дот-графы из паппетбд?

Google

Alexander
16.02.2018
08:26:14
Привет, не подскажите в puppet можно принтер установить ?

dk
16.02.2018
08:40:48
Неожиданный вопрос

Alexander
16.02.2018
09:14:05
в интернете вроде есть варианты через модули - я подумал может как то еще можно

Xeniya MTS
16.02.2018
13:59:57

ptchol
16.02.2018
15:19:30
чтобы в паппете принтер стоял, чего непонятного

zelo
16.02.2018
18:24:42
а в кубернетесе кофе-машина

dk
16.02.2018
18:37:00
Но это все лучше писать самому, а то искать на форджах (если нужно - обращайтесь ко мне, составим договор, поработаем)

ptchol
16.02.2018
19:01:51
Дверь запили !
Принтер поставь в паппет !

dk
16.02.2018
19:06:46