Uso ruby com as gemas net-scp e net-ssh para automatizar tarefas com nossos equipamentos de rede. É um script bastante curto para executar comandos (trecho, não um produto acabado):
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
Lembre-se de que você deve ter uma variável loginPassword em branco. Se estiver em branco, ele usará sua chave pública RSA para efetuar login (suportado nas plataformas HP ProCurve e Cisco 15.X).
Usando algo como git e alguns scripts curtos, você pode organizar todas as configurações de seu equipamento com diferenças de alterações e quem fez as alterações (assumindo que seus engenheiros puxem as configurações e as comprometem após o término do trabalho).
Também não é preciso dizer, mas por precaução, sempre teste o trabalho com script em um laboratório antes de executar no equipamento de produção. Especialmente ao executar comandos e alterar configurações. Teste, teste, teste.