Size: a a a

Puppet — русскоговорящее сообщество

2021 July 07

sk

sergey kopachov in Puppet — русскоговорящее сообщество
спасибо за внимане)
источник
2021 July 13

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
HELP! уже весь мозг сломал, мне надо добавить свой факт в ноды, что бы потом "отсортировать" по значению факта. файл sn_release.rb положил на мастер в папку /etc/puppet/modules/sn(это имя модуля такое)/facts.d/sn_release.rb. Содержание файла: Facter.add(:secretnet_release) do
 setcode do
   result = Facter::Core::Execution.exec('/bin/cat /opt/secretnet/etc/secretnet-release|grep Secret|sed "s/[^0-9]//g"')
   if result.try :nonzero?
       answer = result
   else
       answer = "none"
   end
   answer
 end
end
По результатам команд puppet apply -t -debug gjkexf.
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
получаю Debug: Loading facts from /var/lib/puppet/lib/facter/concat_basedir.rb
/var/lib/puppet/facts.d/sn_release.rb:3:in `require': no such file to load -- Facter (LoadError)
       from /var/lib/puppet/facts.d/sn_release.rb:3
Fact file /var/lib/puppet/facts.d/sn_release.rb was parsed but returned an empty data set
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
я содержимое файла менял несколько раз: и #!/bin/ruby добавлял/убирал и require 'facter' добавлял/убирал и if в различных конфигурациях... ничего не помогло: факт так и не появился в выводе facters
источник

FW

Freddie Weaselshit in Puppet — русскоговорящее сообщество
Какая версия паппета? Там апи для фактов поменялось где-то в районе 4.х
источник

FW

Freddie Weaselshit in Puppet — русскоговорящее сообщество
Сходу вроде выглядит правильно (насколько мне память позволяет оценить), но по-старому, как в 2.х
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
puppet --version
3.8.1
источник

FW

Freddie Weaselshit in Puppet — русскоговорящее сообщество
Shebang не нужен точно: файл явно парсится (иначе бы ошибки такой не было)
источник

FW

Freddie Weaselshit in Puppet — русскоговорящее сообщество
require 'facter' вроде тоже более или менее опционально
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
Крайний вывод puppet agent -t --debug
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
Info: Loading facts
Debug: Loading facts from /var/lib/puppet/lib/facter/root_home.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/pe_version.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/puppet_vardir.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/facter_dot_d.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/concat_basedir.rb
/usr/lib/ruby/site_ruby/1.8/facter/util/directory_loader.rb:80: command not found: /var/lib/puppet/facts.d/sn_release.rb
Fact file /var/lib/puppet/facts.d/sn_release.rb was parsed but returned an empty data set
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
Это на ноде. т.е. файлик загружен на ноду в /var/lib/puppet/facts.d/ но при парсинге что-то ему не нравиться т.к. "usr/lib/ruby/site_ruby/1.8/facter/util/directory_loader.rb:80: command not found: /var/lib/puppet/facts.d/sn_release.rb"
источник

V\

Vadim třetí \λ.λ in Puppet — русскоговорящее сообщество
Попробуй для начала более примитивный шел-код врубать, чтобы исключить проблемы вызова собственно шел-кода
источник

V\

Vadim třetí \λ.λ in Puppet — русскоговорящее сообщество
В смысле echo "a=1" какой - нибудь
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
В смысле? просто проще команду написать?
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
т.е. вообще не на ruby?
источник

V\

Vadim třetí \λ.λ in Puppet — русскоговорящее сообщество
Нет, можно и на рубях оставить (кастомные факты, в доках глянуть можно с какой версии пошли, мне кажется что с 4й),просто в .exec() более простую команду засунуть на момент отладки
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
вставил простую команду 'echo 1' результат тот-же /usr/lib/ruby/site_ruby/1.8/facter/util/directory_loader.rb:80: command not found: /etc/puppet/modules/sn/facts.d/sn_release.rb
Fact file /etc/puppet/modules/sn/facts.d/sn_release.rb was parsed but returned an empty data set
источник

VL

Vethopheth Lephanim in Puppet — русскоговорящее сообщество
поможет нет хз, у меня в 3 паппете такая херня самописная есть
$ cat ./lib/mongodb/lib/facter/mongodb_version.rb
require 'facter'
if  FileTest.exists?("/bin/rpm")
 Facter.add("mongodb_version") do
   setcode do
     %x{/bin/rpm -q --qf %{VERSION} mongodb-org-server}
   end
 end
end

вроде норм работает. Автор не я
источник

VM

Vladislav Mastenitsa in Puppet — русскоговорящее сообщество
Попробую. Нашел доки (вроде официальные) на версию 3.8 нам ссылка на custom facts plugin in module https://puppet.com/guides/plugins_in_modules.html битая :-(
источник