मैं अपने नेटवर्क उपकरण के साथ कार्यों को स्वचालित करने के लिए शुद्ध-एसपीपी और नेट-एसएच जवाहरात के साथ माणिक का उपयोग करता हूं। यह कमांड निष्पादित करने के लिए एक बहुत छोटी स्क्रिप्ट है (अंश, एक तैयार उत्पाद नहीं):
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
ध्यान रखें कि आपके पास एक खाली लॉगिनपासवर्ड चर होना चाहिए। यदि रिक्त है, तो यह लॉगिन के लिए आपकी RSA सार्वजनिक कुंजी का उपयोग करेगा (HP ProCurve और सिस्को 15.X प्लेटफार्मों पर समर्थित)।
Git और कुछ लघु लिपियों जैसी किसी चीज़ का उपयोग करके, आप अपने सभी उपकरण कॉन्फ़िगरेशन को परिवर्तनों के अंतर के साथ व्यवस्थित कर सकते हैं और जिन्होंने बदलाव किए हैं (यह मानते हुए कि आपके इंजीनियर काम को पूरा करने के बाद कॉन्फ़िगर करते हैं और उन्हें प्रतिबद्ध करते हैं)।
इसके अलावा, यह बिना कहे जाना चाहिए, लेकिन उत्पादन के उपकरणों पर चलने से पहले सिर्फ एक मामले में, हमेशा एक प्रयोगशाला में स्क्रिप्टेड काम का परीक्षण करें। विशेष रूप से जब कमांड निष्पादित करते हैं और कॉन्फ़िगरेशन बदलते हैं। परीक्षण, परीक्षण, परीक्षण