Tôi sử dụng ruby với đá quý net-scp và net-ssh để tự động hóa các tác vụ với thiết bị mạng của chúng tôi. Đó là một đoạn script khá ngắn để thực thi các lệnh (trích đoạn, không phải là sản phẩm hoàn chỉnh):
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
Hãy nhớ rằng bạn nên có một biến loginPassword trống. Nếu trống, nó sẽ sử dụng khóa chung RSA của bạn để đăng nhập (được hỗ trợ trên nền tảng HP ProCurve và Cisco 15.X).
Sử dụng một cái gì đó như git và một vài tập lệnh ngắn, bạn có thể sắp xếp tất cả các cấu hình thiết bị của mình với các thay đổi khác nhau và ai đã thực hiện các thay đổi (giả sử các kỹ sư của bạn kéo cấu hình và cam kết chúng sau khi hoàn thành công việc).
Ngoài ra, nó nên đi mà không nói, nhưng chỉ trong trường hợp, luôn luôn kiểm tra công việc theo kịch bản trong phòng thí nghiệm trước khi chạy trên thiết bị sản xuất. Đặc biệt là khi thực hiện các lệnh và thay đổi cấu hình. Kiểm tra, kiểm tra, kiểm tra.