Кто-нибудь пытался выполнить несколько команд на маршрутизаторе JUNOS, используя ruby с гемами net/ssh и net/ssh/telnet, где вам нужно перейти в режим настройки? Он никогда не хочет принимать команды конфигурации, и я не знаю, почему.
Вот мой код:
def exec_router(host_type, commands)
puts "commands: #{commands}"
output = ""
ssh = Net::SSH.start(HOST_MAP[host_type], QA_USER, :password => QA_USER_PASSWORD)
t = Net::SSH::Telnet.new("Session" => ssh, "Prompt" => /.+@.+>/, "Output_log" => "/tmp/test.outputi")
commands.each { |command| output << t.cmd(command) }
puts output
t.close
ssh.close
end
И вот вывод, который он производит:
commands: ["configure", "show policy-options prefix-list greautomation-676872"]
configure
^
unknown command.
{master:member0-re0}
[email protected]> show policy-options
^
syntax error, expecting <command>.
[email protected]> show policy-optionsprefix-list ^ синтаксическая ошибка, ожидается . [email protected]> show policy-optionsprefix-listgreautomation-676872 ^ синтаксическая ошибка, ожидается .
Я знаю, что мой ssh/telnet работает, потому что я могу заменить блок, который перебирает массив команд, на t.cmd('?') и я получаю ожидаемый результат без ошибок.
Моя версия Junos — 15.1F6-S3.8, и я использую ruby 2.3.0.
заранее спасибо
Крейг