Использование факта фактора в факте для выполнения команды
Я пытаюсь написать собственный модуль facter, который включает в себя факт в факте для команды через конкатенацию командной строки плюс переменную факта facter:
Facter.add("customfact") do
setcode do
$string_to_parse = Facter::Util::Resolution.exec('somecommand' + $::fact)
end
end
Новичок в ruby и Puppet... 1. Каков будет правильный синтаксис, чтобы что-то с этим сделать?
- Есть ли способ разбить вывод в массив фактов или как правильно искать в $string_to_parse содержимое, которое мне нужно.
Вот пример вывода, сгенерированного командой:
TAG security-group sg-0a7a8a61 aws:cloudformation:stack-name awseb-e-5tzgj9fq5b-stack
Мне нужна группа безопасности и имя стека.
1 ответ
Решение
Вы хотите использовать Facter.value(:sourcefact)
внутри вашего нового факта для доступа к переменной. Что касается получения отдельных ценностей, вы, вероятно, хотите, чтобы они были отдельными фактами, но вы могли бы 'somecommand' + Facter.value(:sourcefact) + ' | awk {"print $3"}'
даст вам группу безопасности (в качестве примера).