Я использую ruby с гемами net-scp и net-ssh для автоматизации задач с нашим сетевым оборудованием. Это довольно короткий скрипт для выполнения команд (отрывок, а не готовый продукт):
begin
Net::SSH.start(fqdn, username, :password => loginPassword) do |session|
output = ""
channel = session.open_channel do |ch|
ch.send_channel_request "shell"
ch.on_data do |ch, data|
output += data
end
ch.send_data "conf t\n\r"
#Some tasks here
ch.send_data "exit\n\r" #Exit config mode
ch.send_data "exit\n\r" #Exit device
end
# Wait for everything to complete
channel.wait
end
rescue Exception=>e
errorOutput = fqdn + ": " + e.to_s
puts errorOutput
puts output
return device
end
return output
Имейте в виду, что у вас должна быть пустая переменная loginPassword. Если поле пустое, оно будет использовать ваш открытый ключ RSA для входа в систему (поддерживается на платформах HP ProCurve и Cisco 15.X).
Используя что-то вроде git и несколько коротких сценариев, вы можете организовать все конфигурации вашего оборудования с помощью различий изменений и того, кто их внес (при условии, что ваши инженеры извлекают конфигурации и фиксируют их после завершения работы).
Кроме того, само собой разумеется, но на всякий случай всегда проверяйте работу в сценариях в лаборатории перед запуском на производственном оборудовании. Особенно при выполнении команд и изменении конфигурации. Тест, тест, тест.