@puppet_ru

Страница 74 из 112
Andor
20.08.2018
15:36:38
ты уверен что это хеш?

Protos
20.08.2018
15:37:08
ты уверен что это хеш?
Да это не хэш это я вас в заблуждение ввел соре

Это под each.do функцию

Забыл как оно правильно зовется

Google
Andor
20.08.2018
15:37:40
список?

Protos
20.08.2018
15:37:47
Да помоему

Короче суть в том что у меня обьявлены данные в хиере выше

IP -IP: ??? как их сюда пихнуть правильно? -IP

Konstantin
20.08.2018
15:38:40
я тебе выше написал

Protos
20.08.2018
15:39:08
"%{hiera('Здесь полный путь так?')}"

Konstantin
20.08.2018
15:39:18
да

Protos
20.08.2018
15:39:22
Ок спасебо

Господа еще один вечерний вопрос

Andor
20.08.2018
17:53:43
да хоть два

Protos
20.08.2018
17:53:44
А можно как-то часть списка откидывать?

Andor
20.08.2018
17:53:51
.filter

или ты хочешь в hiera?

Google
Protos
20.08.2018
17:54:16
или ты хочешь в hiera?
Список у меня хранится в хиере да

Andor
20.08.2018
17:54:30
ты не хочешь это делать хиерой

Protos
20.08.2018
17:54:35
Я его использую в ич ду для ерб шаблона

В списке немного больше чем нужно в новом шаблоне

Немного лень пересобирать список

Andor
20.08.2018
17:55:07
ты можешь пупетом пофильтровать в пупет-коде

Protos
20.08.2018
17:55:10
Под каждый шаблон

Andor
20.08.2018
17:55:12
а можешь рубями в ерб-шаблоне

Protos
20.08.2018
17:55:51
Andor
20.08.2018
17:56:14
функция .filter

Protos
20.08.2018
17:56:25
Щас почекаю

Andor
20.08.2018
17:56:28
https://puppet.com/docs/puppet/5.5/function.html#filter

Protos
20.08.2018
17:58:59
Andor
20.08.2018
18:00:46
ну хотя бы до 3.8 обновись

и включи parser=future

тогда будет тоже

Protos
20.08.2018
18:01:10
Andor
20.08.2018
18:02:25
зря

Protos
20.08.2018
18:02:47
зря
Не от меня зависит

Какие еще есть способы откинуть кусок списка?

Google
Freddie
20.08.2018
18:05:48
https://github.com/puppetlabs/puppetlabs-stdlib/blob/master/README.md#delete_regex

И следующее, работают как раз как .filter

Protos
20.08.2018
18:09:05
Хм завтра попробую спасибо надеюсь только что я правильно понял что это подойдет для фильтрации именно значений а не имени переменных

Andor
20.08.2018
18:11:15
лучше бы всё равно обновиться

хотя бы до 3.8

между 3.6 и 3.8 разницы мало

Protos
20.08.2018
18:13:57
Ну к сожалению никак

Konstantin
20.08.2018
18:51:03
в ерб есть .select рубишный

если есть желание заботать, я могу помочь

если думать лень и надо лишь бы как наебенить, давай сам

<% list = [ { t: 1, }, { t: 2, }, { t: 4, }, { t: 5, }, ] %> <% new_list = list.select {|item| item[:t].even? } %> <%= new_list %>

это тебе для затравки, если захочешь включить мозг и поразбираться

Protos
20.08.2018
20:30:24
Konstantin
20.08.2018
20:31:00
а я очень уверен, что ты не очень понимаешь о чем говоришь

Protos
20.08.2018
20:32:25
Konstantin
20.08.2018
20:32:53
короче, попробуй, всё же разобраться с тем, что я тебе говорю

Protos
20.08.2018
20:37:47
Ну я так понял оно выбирает из хэша или массива

Только мне так кажется что оно собирает не значение а переменную

Konstantin
20.08.2018
20:48:15
?

Protos
20.08.2018
21:04:35
?
Я не прав?

Google
Konstantin
20.08.2018
21:07:58
сложно очень конструктивно говорить, ты ведь не программист совсем, верно?

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

Protos
20.08.2018
21:10:21
Это довольно сложно но я могу дать аналог входных параметров

Если расскажешь было бы круто

В общем есть некая хиера в которой содержатся данные в виде списка Test -ip :123 -name: 123 -ip: 231 -name: 231

Есть шаблон в котором эти данные собираются

Konstantin
20.08.2018
21:17:49
и тебе надо извлечь из неё только те хосты, у которых ИП начинается с единицы допустим. если я тебе такой пример напишу - разберешься?

Protos
20.08.2018
21:18:39
<% @machines.each do |machines| -%> if token == "<%= machines['machine_name'] %>": assign("Server", "<%= machines['machine_name'] %>", "Machine", "<%= machines['machine_name'] %>") <% end -%>

Допустим такого вида шаблон

Konstantin
20.08.2018
21:18:56
так

Protos
20.08.2018
21:19:02
Внутри шаблона питоновый код повторяемый по количеству входящих в список данных

Мне не сложно собрать еще один хиера список

Но может есть более интересное решение

(руби я знаю очень фигово)

Выше говорили про фильтр в принципе логика понятна и я попробую

Konstantin
20.08.2018
21:29:21
1) можно юзать просто erb для дебага

через паппет гонять дольше

просто erb file.erb

2)

Google
Konstantin
20.08.2018
21:29:47
<% machines = [ { 'ip' => '1.2.4.5', 'name' => '1.2.4.5', }, { 'ip' => '1.2.4.5', 'name' => '1.2.4.5', }, { 'ip' => '1.2.4.5', 'name' => '1.2.4.5', }, { 'ip' => '1.2.4.5', 'name' => '1.2.4.5', }, ] %> <% for machine in machines %> <% if machine['ip'][0] == '1' %> if token == "<%= machine['name'] %>": assign("Server", "<%= machine['ip'] %>", "Machine", "<%= machine['name'] %>") <% end %> <% end %>

это более простой вариант - на дубовых циклах без операций map/filter/reduce/each и прочего

erb в cli не поддерживает тэги с управлением переносом строк - -%>, насколько я помню, имей это в виду

Protos
20.08.2018
21:31:41
Хм

Сейчас я пойму чо тут

Konstantin
20.08.2018
21:32:16
если прям хочется select + each

то

<% @machines.select { |machine| machine[:ip][0] == '1' }.each do |machine| -%> if token == "<%= machine['name'] %>": assign("Server", "<%= machine['ip'] %>", "Machine", "<%= machine['name'] %>") <% end -%>

Protos
20.08.2018
21:32:39
Мне не то что бы хочется

Konstantin
20.08.2018
21:32:54
без них можно обойтись, см первый пример на циклах/ифах

Protos
20.08.2018
21:32:56
Просто это генерация .py для jyton

Konstantin
20.08.2018
21:33:13
ну ничего, и не такое генерили

Protos
20.08.2018
21:34:32
Короче я так понял выносим в [] все нужные данные

Konstantin
20.08.2018
21:34:41
они уже там

та фигня сверху - это просто типа эмуляция хиеры

Protos
20.08.2018
21:35:04
А

Konstantin
20.08.2018
21:35:08
в теории, ты должен просто дописать @ к machines

и все заработает

впрочем, в 3.6 вроде бы не обязательно иваром делать переменную

но ты сделай)

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