@puppet_ru

Страница 107 из 112
ptchol
03.10.2018
11:09:12
а. да. ты прав наверно ) запутался )

я имел ввиду source конечно

Freddie
03.10.2018
11:09:54
Я уже ноут убрал в локер, завтра тестить буду, если память не отшибёт

Andrew
03.10.2018
11:56:20
вопроc, если написать сначала exec { "mkdir_recurse_${name}": path => ['/bin', '/usr/bin'], command => "mkdir -p ${name}", unless => "test -d ${name}", } а потом сделать file { $my_dir: ensure => directory, mode => $mode, owner => $owner, group => $group, } то второй вызов просто проверит что папка существует с нужными правами, если права не те, выставит нужные верно?
а если сделать так define nfs::function::mkdir () { exec { "mkdir_recurse_${name}": path => ['/bin', '/usr/bin'], command => "mkdir -p ${name}", unless => "test -d ${name}", } } а потом file { $myfile: ensure => directory, require => [ Nfs::Function::Mkdir[$myfile] ], } это будет верно? чет не работает так(

Google
ptchol
03.10.2018
11:57:58
нормально. но это же реквайр и описание дефйна.

ты ж его ещё вызвать должен

nfs::function::mkdir{$myfile: }

вот так точнее

Andrew
03.10.2018
11:59:39
nfs::function::mkdir{$myfile: }
написал это перед file и не заводится чет всеравно(

я сам дурак, не ту функцию вызываю соре

Andrew
03.10.2018
12:33:01
dk
03.10.2018
12:33:22
Ну, сам процесс создания директории странный и нет описания зависимостей

А, с дефайном уже есть

Но вообще, вроде, должно сработать exec { "mkdir $myfile": creates => $myfile, command => "mkdir -p $myfile", } -> file { $myfile: mode => 777, }

Andrew
03.10.2018
12:38:08
Уже работает ) спасибо

Единорожа
03.10.2018
12:40:37
Стрелки зло

Google
Сергей
03.10.2018
13:23:43
а можно средствами puppet запустить выполнение не из-под прав root, а текущего пользователя? Для сравнения у SCCM при публикации программы пакета есть режим выполнения с правами пользователя, где для запуска и установки используется сеанс текущего активного пользователя. Вроде в puppet я такого не нашёл в явном виде, но а вдруг.... Цель: скопировать директорию с файлами на $HOME пользователя. При этом на клиентах могут быть разные пользователи (те я их список заранее не знаю)

Сергей
03.10.2018
13:32:33
Я чем вас экзек от указанного пользователя не устравает?
Тогда я не понимаю. Можно пример кода, при условии, что я не знаю что за пользователь сейчас активен на данной машине?

Максималист
03.10.2018
13:39:17
exec { "script by some user": command => "some_script.sh", user => $user, group => $group, cwd => $dir, path => $path, timeout => 0, }

Сергей
03.10.2018
13:41:10
Максималист
03.10.2018
13:41:40
я задачи не понял не много - если запустить от пользователя то через exec как советуют

user укажи пользователя и окружение path

Сергей
03.10.2018
13:44:14
user укажи пользователя и окружение path
user мне заранее не известен. те смысл в том, что бы выполенние скрипта было из-под залогиненного на текущий момент в системе пользователя.

Максималист
03.10.2018
13:44:52
Интерактивный скрипт получается? ))

Через whoami делай. Передавай значение переменной и потом папету

Изврат такой ?

Сергей
03.10.2018
13:45:58
ок, спс

Максималист
03.10.2018
13:46:27
Люди тут тебе скажут что не тот инструмент у тебя

Сергей
03.10.2018
13:47:12
вероятно да, но лучше нет:)

Максималист
03.10.2018
13:47:42
Нет лучших инструментов

Сергей
03.10.2018
14:05:00
А смысл это делать паппетом?
а какие альтернативы централизованного выполнения на N машинах?

Google
Protos
03.10.2018
14:06:58
Суть действий какая?

Сергей
03.10.2018
14:09:13
скопировать директорию с файлами на $HOME пользователя. При этом на клиентах (их много) могут быть разные активные пользователи (те я их список заранее не знаю)

Protos
03.10.2018
14:09:37
А обязательно копировать в активные только?

Сергей
03.10.2018
14:11:45
в целом можно копировать и на всех пользователей. Можно копировать во все подпапки /home/ в цикле , но как то не хочется мусорить

Protos
03.10.2018
14:13:38
Мое предложение

Берешь пуппит

Натравливаешь его на профайл

Кладешь в баш логин что тебе надо

Юзер заходит у него стартует сш скрипт

Готово вы восхитительны

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

Так не катит?

Сергей
03.10.2018
14:23:55
вариант. спасибо.

ptchol
03.10.2018
16:21:01
Так не катит?
странный вариант для использования пуппета )))

ансибл берешься для того или pssh чтобы скрипт скопировать 1 раз

паппет вей в этом кейсе это сделать custom fact который будет возвращать список пользователей. а в классе сделать описание стейта с содержимым папок, итерируясь как раз по этому факту

Protos
03.10.2018
16:23:50
странный вариант для использования пуппета )))
Ну просто первое что в голову пришло

И наиболее простое

Google
ptchol
03.10.2018
16:26:51
а причём тут залогиненый или нет ?

Protos
03.10.2018
16:27:11
а причём тут залогиненый или нет ?
Человек не хочет не логиненым раздавать файло

ptchol
03.10.2018
16:27:41
звучит неплохо. кстати о кастомных фактах: как писать новый и распространить его на ноды?
паппетом ) по факту же кастом факт может представлять собой тупо баш скрипт который просто в результате работы на консоль выдаст значение в опредленном формате.

просто это складывается в некоторый common который везде распространяется и всё

Сергей
03.10.2018
16:28:55
паппетом ) по факту же кастом факт может представлять собой тупо баш скрипт который просто в результате работы на консоль выдаст значение в опредленном формате.
ну что паппетом распространить - это понятно))) можно пример рабочего кастомного факта и пример в манифесте как его распространить

ptchol
03.10.2018
16:31:39
https://puppet.com/docs/facter/3.12/custom_facts.html#executable-facts-----unix https://puppet.com/docs/facter/3.12/custom_facts.html#fact-locations ну а как файлик скопировать объяснять наверно не нужно ?

Сергей
03.10.2018
16:35:42
ну а как файлик скопировать объяснять наверно не нужно ? - нет, не нужно) спасибо

ptchol
03.10.2018
16:38:43
ну а как файлик скопировать объяснять наверно не нужно ? - нет, не нужно) спасибо
только пишите с учётом того что как бы этот shell будет прогоняться агентом при каждом ране, хорошо бы чтобы он долго не бегал

Сергей
03.10.2018
16:41:21
да, я понимаю что пока существующие факты будут не сданы puppet-master манифест на ноде не отработает + нагрузка выполняемая на ноде будет выше

те: используя руби я создаю факт, на puppet-master складирую сюда: <MODULEPATH>/<MODULE>/facts.d/, затем его же распространяю на клиенты по пути ниже и он заработает? Или нужно кастомный факт ещё где то прописывать? путь на клиентах: On Unix/Linux/OS X, there are three directories: /opt/puppetlabs/facter/facts.d/ /etc/puppetlabs/facter/facts.d/ /etc/facter/facts.d/

Сергей
03.10.2018
17:22:30
Заработать должен. Просто там одно дело факты которые складываются в либс, там всякие штуки типа кеширования доступны, другое дело кастом, они примитивные как бы
иными словами кастомные факты ограничены в возможностях по их использованию и чем проще кастомный факт тем лучше?

Сергей
03.10.2018
17:23:38
Да
спасибо! завтра попробую применить на практике

Максималист
04.10.2018
09:06:38
Надо спам бот фильтра написать

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

Телеграммный аддблок

пацане

Google
Максималист
04.10.2018
09:46:09
https://www.jetbrains.com/research/devecosystem-2018/devops/

ansible дает жару )

dk
04.10.2018
09:57:26
Еще бы, он же простой

Максималист
04.10.2018
10:00:33
не думал что докеры так распростронены

почитал в этом чате про докеры как то даже не захотелось пробывтаь

))

ptchol
04.10.2018
11:11:51
ты просто хейтеров почитал которые рассказывают про докер трехлетней давности ) это всё равно что сейчас какой нить паппет 3.4 хейтить

ptchol
04.10.2018
11:19:15
даже не смешно

Максималист
04.10.2018
11:22:57
даже не смешно
а я и не шучу. Мне тут по бонусу на digital ocean 80$ упало и вижу что там можно контейнеры поднимать. призадумался, а может быть ...

ptchol
04.10.2018
11:23:19
DO уже куб как сервис части народу выдало

Andrew
05.10.2018
09:15:59
Добрый день подскажите пожалуйста как можно сделать валидацию входных данных

dk
05.10.2018
09:18:55
Нужны подробности

ptchol
05.10.2018
09:19:29
прописать типы значений у параметров класса \ дефайна

Andrew
05.10.2018
09:30:36
а можно как-то обойти вот такую ошибку? export is a metaparameter; оч хотят именно такое название переменной

ptchol
05.10.2018
09:32:40
нет

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