2016-12-27 10 views
-1

мой кодкукольный run ruby ​​script с исполнением команды оболочки и переменной не работает.

cmd_result = %x("#{rndc}" "#{cmd_arg}" "#{zone}" in "#{view}") 

puts "#{$?.exitstatus}" 
puts cmd_result 

не возвращает какой-либо выход и статус выхода 1. при запуске с куклой.

но если я запустил его вручную, он работает нормально.

+0

Пробовал ли вы печатать, какие переменные расширяются при вызове изнутри кукольного класса? – codeforester

+0

Как это используется внутри Puppet? –

+0

@codeforester Я добавляю это в свой код. cmd = "# {rndc} # {cmd_arg} # {zone} в # {view}" logger.debug ("cmd: # {cmd}") #run команда cmd_result = eval "% x (# {cmd}) " logger.debug (" Node_Name = # {hostname} View = # {view} Zone = # {zone} api_link = # {api_link} Auth_token = # {auth_token} rndc = [# {cmd_result}] ") – Eman

ответ

0

Вы (я думаю) пытаемся запустить рубиновый код с Puppet.

Кукольный использует DSL , написанный в рубине. Я предлагаю вам приступить к работе here

+0

bu t Я могу исправить внешнюю команду? Я имею в виду, если я хочу запустить bash или даже python, это не проблема с правилом типа exec правильно? – Eman