Utilizo ruby con las gemas net-scp y net-ssh para automatizar tareas con nuestro equipo de red. Es un script bastante corto para ejecutar comandos (extracto, no un producto terminado):
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
Tenga en cuenta que debe tener una variable en blanco loginPassword. Si está en blanco, usará su clave pública RSA para iniciar sesión (compatible con las plataformas HP ProCurve y Cisco 15.X).
Usando algo como git y algunos scripts cortos, puede organizar todas las configuraciones de su equipo con diferencias de cambios y quién realizó los cambios (suponiendo que sus ingenieros extraigan configuraciones y las confirmen después de que se complete el trabajo).
También debería ser evidente, pero por si acaso, siempre pruebe el trabajo programado en un laboratorio antes de ejecutarlo en el equipo de producción. Especialmente al ejecutar comandos y cambiar configuraciones. Prueba, prueba, prueba.