नेटवर्क स्वचालन के लिए Python
SSH के माध्यम से नेटवर्क उपकरणों से संपर्क करने और कॉन्फ़िगरेशन स्वचालित करने के लिए `paramiko` और `netmiko` जैसी Python लाइब्रेरी का उपयोग करें।
नेटवर्क स्वचालन के लिए Python, CoddyKit पर डेवलपर के लिए Linux नेटवर्किंग और TCP/IP का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह डेवलपर के लिए Linux नेटवर्किंग और TCP/IP सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। डेवलपर के लिए Linux नेटवर्किंग और TCP/IP पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नेटवर्क स्वचालन के लिए Python
Python के साथ नेटवर्क स्वचालन में आपका स्वागत है! Python एक शक्तिशाली और बहुमुखी भाषा है, इसलिए नेटवर्क कार्यों को स्वचालित करने के लिए इसे बहुत पसंद किया जाता है।
यह जटिल कार्यों को सरल बनाती है, उपकरणों को प्रबंधित करने में सहायता करती है और विभिन्न नेटवर्क APIs के साथ एकीकृत होती है। आइए देखें कैसे!
Paramiko का परिचय
हमारा पहला tool Paramiko है। यह एक Python library है जो SSHv2 protocol लागू करती है। इसे सुरक्षित shell (SSH) connections के लिए निम्न-स्तरीय toolkit समझिए।
- SSH Client/Server: client और server दोनों के रूप में काम कर सकता है।
- सुरक्षित: communication के लिए मजबूत encryption का उपयोग करता है।
- बहुमुखी: सामान्य SSH tasks, जैसे commands चलाना या files transfer करना, के लिए उपयोगी है।
Paramiko: बुनियादी SSH Connection
इस प्रकार आप Paramiko का उपयोग करके remote server से connect होकर कोई command चला सकते हैं। Placeholder credentials को बदलना न भूलें!
import paramiko
def connect_and_run(hostname, username, password, command):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
client.connect(hostname=hostname, username=username, password=password, timeout=5)
stdin, stdout, stderr = client.exec_command(command)
print(f"Output:\n{stdout.read().decode().strip()}")
print(f"Errors:\n{stderr.read().decode().strip()}")
except paramiko.AuthenticationException:
print("Authentication failed, please check your credentials.")
except paramiko.SSHException as e:
print(f"SSH connection error: {e}")
except Exception as e:
print(f"An error occurred: {e}")
finally:
client.close()
if __name__ == "__main__":
# Replace with your actual server details and command
HOST = "your_server_ip"
USER = "your_username"
PASS = "your_password"
CMD = "echo Hello from Paramiko!"
print("Attempting to connect with Paramiko...")
connect_and_run(HOST, USER, PASS, CMD)
print("Note: This code won't connect without a live server and valid credentials.")Command Output संभालना
जब आप client.exec_command(command) चलाते हैं, तो यह file जैसे तीन objects लौटाता है: stdin, stdout और stderr।
- stdout: command का standard output।
- stderr: command द्वारा उत्पन्न कोई भी error messages।
- stdin: command को input भेजने के लिए उपयोग किया जाता है (सरल exec के लिए कम सामान्य)।
Output को हमेशा decode करें, जैसे .decode(), क्योंकि यह bytes के रूप में आता है।
File Transfers के लिए Paramiko (SFTP)
कमांड चलाने के अलावा, Paramiko SFTP (SSH File Transfer Protocol) को भी सपोर्ट करता है। इससे आप दूरस्थ सिस्टम पर और वहाँ से फ़ाइलों को सुरक्षित रूप से कॉपी कर सकते हैं।
आप इसका उपयोग कॉन्फ़िगरेशन फ़ाइलें अपलोड करने, लॉग डाउनलोड करने या अपने नेटवर्क उपकरणों पर सॉफ़्टवेयर पैकेज प्रबंधित करने के लिए कर सकते हैं।
Netmiko का परिचय
Paramiko शक्तिशाली है, लेकिन विशिष्ट नेटवर्क उपकरणों के साथ काम करने के लिए अक्सर प्रॉम्प्ट, पेजिनेशन और अलग-अलग कमांड मोड के लिए अतिरिक्त लॉजिक की आवश्यकता होती है। यहीं Netmiko उपयोगी साबित होता है!
- Paramiko पर आधारित: पर्दे के पीछे Paramiko का उपयोग करता है।
- उपकरण-विशिष्ट: कई विक्रेताओं (Cisco, Juniper, Arista आदि) को सपोर्ट करता है।
- सरल API: नेटवर्क उपकरणों के साथ होने वाली सामान्य गतिविधियों को स्वचालित रूप से संभालता है।
Netmiko: नेटवर्क उपकरणों से कनेक्ट करना
Netmiko उपकरण के विवरण निर्धारित करने के लिए एक डिक्शनरी का उपयोग करता है, जिससे कनेक्शन बनाना आसान हो जाता है। यह नेटवर्क स्वचालन के कई कार्यों को सरल बनाता है।
from netmiko import ConnectHandler
def connect_with_netmiko(device_info):
try:
print(f"Attempting to connect to {device_info['host']} with Netmiko...")
net_connect = ConnectHandler(**device_info)
print(f"Successfully connected to {net_connect.base_prompt}")
net_connect.disconnect()
print("Disconnected from device.")
except Exception as e:
print(f"Netmiko connection error: {e}")
if __name__ == "__main__":
# Replace with your actual device details
device = {
"device_type": "cisco_ios", # e.g., cisco_ios, juniper_junos, etc.
"host": "your_device_ip",
"username": "your_username",
"password": "your_password",
"secret": "your_enable_secret" # Optional, for enable mode
}
connect_with_netmiko(device)
print("Note: This code won't connect without a live device and valid credentials.")Netmiko: कॉन्फ़िगरेशन भेजना
Netmiko कॉन्फ़िगरेशन कमांड भेजने में बहुत उपयोगी है। कमांड की सूची के लिए send_config_set() और परिचालन कमांड के लिए send_command() का उपयोग करें।
from netmiko import ConnectHandler
def send_config_to_device(device_info, config_commands):
try:
print(f"Connecting to {device_info['host']} to send config...")
net_connect = ConnectHandler(**device_info)
print("Sending configuration commands...")
output = net_connect.send_config_set(config_commands)
print(f"Configuration Output:\n{output}")
net_connect.disconnect()
print("Disconnected.")
except Exception as e:
print(f"Netmiko config error: {e}")
if __name__ == "__main__":
# Replace with your actual device details
device = {
"device_type": "cisco_ios",
"host": "your_device_ip",
"username": "your_username",
"password": "your_password",
"secret": "your_enable_secret"
}
# Example configuration commands
config_lines = [
"hostname CoddyRouter",
"no ip domain lookup",
"line vty 0 4",
"login local"
]
send_config_to_device(device, config_lines)
print("Note: This code won't apply config without a live device and valid credentials.")सर्वोत्तम अभ्यास और सुरक्षा
स्वचालन करते समय हमेशा सुरक्षा और मजबूती को प्राथमिकता दें:
- क्रेडेंशियल प्रबंधन: पासवर्ड को कभी भी कोड में सीधे न लिखें। पर्यावरण चर, सुरक्षित वॉल्ट या इनपुट प्रॉम्प्ट का उपयोग करें।
- त्रुटि प्रबंधन: कनेक्शन संबंधी समस्याओं या कमांड की विफलताओं को उचित रूप से पकड़ने के लिए
try-exceptब्लॉक का उपयोग करें। - लॉगिंग: ऑडिट और समस्या-निवारण के लिए सभी कार्रवाइयों और आउटपुट का लॉग रखें।
- इडेम्पोटेंसी: स्क्रिप्ट इस तरह डिज़ाइन करें कि वे इडेम्पोटेंट हों (उन्हें कई बार चलाने पर भी वही प्रभाव हो जो एक बार चलाने पर होता है)।
Paramiko बनाम Netmiko
आपने Paramiko और Netmiko दोनों देख लिए हैं। अब यह जाँचते हैं कि नेटवर्क स्वचालन के कार्यों के लिए किस टूल का उपयोग कब करना चाहिए।
पुनरावलोकन: नेटवर्क स्वचालन के लिए Python
बहुत अच्छा! इस पाठ में आपने निम्नलिखित के बारे में सीखा:
- Paramiko: सामान्य SSH क्लाइंट/सर्वर कार्यों और SFTP के लिए निम्न-स्तरीय Python लाइब्रेरी।
- Netmiko: Paramiko पर आधारित उच्च-स्तरीय लाइब्रेरी, जिसे विशेष रूप से विभिन्न नेटवर्क उपकरणों के साथ होने वाली गतिविधियों को स्वचालित करने के लिए बनाया गया है।
ये टूल आपको अपने नेटवर्क ढाँचे को प्रोग्राम के माध्यम से प्रबंधित, कॉन्फ़िगर और मॉनिटर करने के लिए शक्तिशाली Python स्क्रिप्ट लिखने में सक्षम बनाते हैं!
एआई शिक्षक के साथ डेवलपर के लिए Linux नेटवर्किंग और TCP/IP सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “नेटवर्क स्वचालन के लिए Python” पाठ निःशुल्क है?
हाँ—“नेटवर्क स्वचालन के लिए Python” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और डेवलपर के लिए Linux नेटवर्किंग और TCP/IP पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। डेवलपर के लिए Linux नेटवर्किंग और TCP/IP पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“नेटवर्क स्वचालन के लिए Python” में मैं क्या सीखूँगा?
SSH के माध्यम से नेटवर्क उपकरणों से संपर्क करने और कॉन्फ़िगरेशन स्वचालित करने के लिए `paramiko` और `netmiko` जैसी Python लाइब्रेरी का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ डेवलपर के लिए Linux नेटवर्किंग और TCP/IP का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या डेवलपर के लिए Linux नेटवर्किंग और TCP/IP शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर डेवलपर के लिए Linux नेटवर्किंग और TCP/IP शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“नेटवर्क स्वचालन के लिए Python” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस डेवलपर के लिए Linux नेटवर्किंग और TCP/IP पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर डेवलपर के लिए Linux नेटवर्किंग और TCP/IP पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- नेटवर्किंग के लिए Bash स्क्रिप्टिंग
- नेटवर्क स्वचालन के लिए Python
- नेटवर्क उपकरणों के लिए REST API
- Ansible से नेटवर्क कॉन्फ़िगरेशन