ฉันใช้ทับทิมกับ net-scp และ net-ssh gem เพื่อทำงานอัตโนมัติด้วยอุปกรณ์เครือข่ายของเรา มันเป็นสคริปต์สั้น ๆ ในการเรียกใช้คำสั่ง (ข้อความที่ตัดตอนมาไม่ใช่ผลิตภัณฑ์สำเร็จรูป):
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 และสคริปต์สั้น ๆ คุณสามารถจัดระเบียบการกำหนดค่าอุปกรณ์ทั้งหมดของคุณด้วยความแตกต่างของการเปลี่ยนแปลงและผู้ที่ทำการเปลี่ยนแปลง (สมมติว่าวิศวกรของคุณดึงการกำหนดค่าและส่งมอบหลังจากการทำงานเสร็จสิ้น)
นอกจากนี้ควรไปโดยไม่บอก แต่ในกรณีทดสอบสคริปท์สคริปต์เสมอในห้องปฏิบัติการก่อนที่จะทำงานบนอุปกรณ์การผลิต โดยเฉพาะเมื่อรันคำสั่งและเปลี่ยนการกำหนดค่า ทดสอบทดสอบทดสอบ