
Максималист
28.08.2018
12:23:52
перепроверю

Andor
28.08.2018
12:24:38
unless vs onlyif

Максималист
28.08.2018
12:25:55
ааа
сек

Google

Максималист
28.08.2018
12:26:37
тест

Protos
28.08.2018
12:29:03

dk
28.08.2018
12:29:27
В каком?

Максималист
28.08.2018
12:30:03
Executing 'echo balallaika' ? понял

Andor
28.08.2018
12:44:19
srsly?

Максималист
28.08.2018
12:47:33
?

Andor
28.08.2018
12:47:56
умеешь на каком-нибудь языке программирования программировать?
если да, то на каком

Максималист
28.08.2018
12:48:25
вопрос религиозынй смолчу

Andor
28.08.2018
12:48:31
что?
это я спрашиваю на каком языке тебе аналогию про экранирование показывать

Google

Максималист
28.08.2018
12:48:57
\'
? :D
bash

Andor
28.08.2018
12:49:21
не, я D не знаю, но там вроде стандартные кавычки "
в баше особо внутри одинарных не поэкранируешь
но внутри двойных правила подстановки и экранирования почти такие же как в puppet

Максималист
28.08.2018
12:53:38

Andor
28.08.2018
12:54:17
что?
не понял вторую часть фразы

Максималист
28.08.2018
12:54:50
работает
unless => 'grep -w \'127.0.0.1\' network.txt'
вторая часть - порой кажется что паппет устроен по другому и простые вещи там работаю иначе. по другой логике
уточнение -
двойные проверки в рамках одной execue могут быть ?
к примеру
require => Exec['create stream inventory'],
unless => 'grep -w \'192.168.0.1\' network_in.txt'

Andor
28.08.2018
14:12:52
У тебя в примере нет двойной проверки
https://puppet.com/docs/puppet/5.3/types/exec.html#exec-attribute-unless

Максималист
28.08.2018
14:19:58
разве -
первая 1) require => Exec['create stream inventory'],
вторая 2) unless => 'grep -w \'192.168.0.1\' network_in.txt'

Andor
28.08.2018
14:31:10
Это совершенно разные параметры

dk
28.08.2018
14:59:08

Andor
28.08.2018
15:03:30
хм, а ведь метапараметры вычисляются на стороне мастера и учавствуют в компиляции каталога, а обычные парамеры - только на стороне клиента
только щас об этом подумал

Максималист
28.08.2018
15:04:36
Откуда такие познания? Пупет есеншнл?)

Google

Максималист
28.08.2018
15:04:46
Они между собой не конфликтуют?

Andor
28.08.2018
15:04:50
нет
метапараметры это параметры типа require/before/after/tag/ и ещё некоторые
https://puppet.com/docs/puppet/5.5/metaparameter.html вот

Максималист
28.08.2018
15:06:25
Значит проблема в чем то другом.
Собираю в отдельных классах действия и проверки. Складываю в один вылет.
Лан посмотрю вечеро

Andor
28.08.2018
15:06:43
что?
в какой вылет складываешь?
что вообще значит эта фраза?

Максималист
28.08.2018
15:14:01
Вечерком нариссую и скину. Либо завтра.
Идея такая:
в 1 классе последовательно выполняется патчи сетевой карты.
Во 2 классе считывание патчей запись в файл.
Из этого всего складываю 1 файл что бы установка только если патча нет. Следовательно проверки делаю о котлрых выше писал. И тут ошибки.
Буду у консоли снова покажу конкретно. Пока отбоц
Отбой

dk
28.08.2018
15:35:32

Максималист
28.08.2018
15:37:08
Та не в файл все складываю. Буду у консоли будет конкретика.

Andor
28.08.2018
15:38:01
какой файл? зачем?

dk
28.08.2018
15:39:58
concat { '/dir/my-network-card.patch':
ensure => present,
}
exec { 'apply-patch':
unless => 'check patch /dir/my-network-card.patch',
command => 'apply patch /dir/my-network-card.patch',
subscribe => '/dir/my-network-card.patch',
}
concat::fragment { 'patch-part1':
target => '/dir/my-network-card.patch',
content => 'test contents',
order => '01'
}
...
Если я все правильно понял

Max
28.08.2018
20:12:28
Ступид вопрос, но как правильно создать парент папку для сервиса?
Ситуация - 2 модуля (которые должны были жить по отдельности на разных серверах) имеют одну точку входа: /opt/some_home/ .
Если врубить 2 сервиса - папет выругается на дупликейт локации /opt/some_home для сервис1 и сервис2 (ре-декларирование).
Есть вариант все сделать exec, но полагаю есть более правильное решение. Пожно подсказку) ?

Холм
28.08.2018
20:20:31

ptchol
28.08.2018
20:21:52
или заюзать ensure_resource а не писать првоерку самому

Google

Andor
28.08.2018
20:21:53
вынеси директорию в класс
у нас было profiles::dirs с кучей подклассов

Max
28.08.2018
20:22:11
Я склоняюсь больше к if !defined Но по ходу file {} не создаст внутреннюю директорию без паретна - тоесть надо еще логику для парента придумать

Холм
28.08.2018
20:22:17

Andor
28.08.2018
20:22:25
конечно
просто делаешь include profiles::dirs::opt::some_home

ptchol
28.08.2018
20:22:44
конечно
ну типа не круто же. ты зависимость модуля вытащил из модуля

Andor
28.08.2018
20:23:16
у тебя всё равно будут зависимости между модулей
как не крутись

Холм
28.08.2018
20:23:21

Max
28.08.2018
20:23:22
ну вот и холивар наметился …

Andor
28.08.2018
20:23:26
можешь эти зависимости в профиле себе вписать

ptchol
28.08.2018
20:24:20

Andor
28.08.2018
20:24:21
можешь в профиле делать include dirclass; include your-module и подключать уже этот профиль
а там зависимости между директориями сами расставятся
с чего б ?
ну так или иначе какой-нибудь модуль постгреса будет зависеть например от модуля apt который приносит репозиторий

Холм
28.08.2018
20:25:39

ptchol
28.08.2018
20:25:51
ну вобще как бы объявлять плейсмент директорий как "модуль".. такое се.

Холм
28.08.2018
20:25:52
или как там дира называется.

Google

Andor
28.08.2018
20:26:24
довольно удобно получалось

ptchol
28.08.2018
20:26:47
А может посмотрет ьв сторону hiera ?

Andor
28.08.2018
20:27:00
при чём тут хиера?

ptchol
28.08.2018
20:27:02
ensure_resources по ресурсам из хиеры

Холм
28.08.2018
20:27:08

Andor
28.08.2018
20:27:10
можно конечно

ptchol
28.08.2018
20:27:52
типа у тебя как бы останется логика создания в модулях и пофигу на их компоновку. главное чтобы данные для этих модулей правильные приехали, а esure_resources обеспечить отсуствие дупликейтов

Холм
28.08.2018
20:27:56
сорри, я потерял нить обсуждения. мы же решали пробьлему редеклейра директории.

Andor
28.08.2018
20:28:41
ну вот я бы вынес создание директории в специальный класс и просто делал ему include

Холм
28.08.2018
20:29:18
или я не так понял задачу?

Andor
28.08.2018
20:29:33
задачу - так
то, что я написал - не так

Max
28.08.2018
20:29:39
@Andorka ну эта логика у меня будет вынесена в моунт … но для теста хотел просто дир создать. А по факту обламался с редекларейтом

Andor
28.08.2018
20:30:00
ну вот маунт у тебя же будет в отдельном классе?

Max
28.08.2018
20:30:08
с юзером и гроппой разобрался - стандартный чек иф дефайнед

Холм
28.08.2018
20:30:15

Andor
28.08.2018
20:30:31
да

Холм
28.08.2018
20:30:32
+