使用 Python 進行思科自動化

WBOY
發布: 2024-09-07 14:32:17
原創
692 人瀏覽過

Automatización de Cisco con Python

網路設備(例如 Cisco 路由器和交換器)的自動化可以使用 Python 和 Netmiko 庫輕鬆實現,該庫旨在輕鬆處理 SSH 連接。下面,我向您展示兩個基本腳本,用於查看 Cisco 設備的設定以及自動建立和設定 VLAN。

1。查看Cisco設備(路由器)配置的腳本:

from netmiko import ConnectHandler
ssh=ConnectHandler(
    device_type="cisco_ios",
    host="192.168.0.10",
    port=22,
    username="cisco",
    password="cisco"
)
out=ssh.send_command("show run")
print(ssh.find_prompt())
print("show run:\n"+out)
登入後複製

操作:

  • Netmiko 導入:導入 ConnectHandler 類別來處理 SSH 連線。
  • SSH 連線:使用 Cisco 裝置的 IP、連接埠和憑證建立連線。
  • 指令執行:傳送show run指令,取得裝置目前設定
  • 提示列印:列印設備提示,表示連接仍然有效。
  • 設定顯示:列印指令輸出,顯示正在執行的設定。

此腳本對於以自動方式在 Cisco 裝置上執行快速設定查詢非常有用。

2。用於建立、配置 IP 位址並將其指派給 VLAN 的腳本:

from netmiko import ConnectHandler

ssh = ConnectHandler(
    device_type="cisco_ios",
    host="192.168.10.2",
    port=22,
    username="womar1",
    password="womar"
)
ssh.enable()
comandos = [
    "hostname uwu",
    "vlan 10",
    "interface vlan 10",
    "ip address 192.168.2.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/1 - 5',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 10',
    "vlan 20",
    "interface vlan 20",
    "ip address 192.168.3.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/6 - 10',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 20',
    "vlan 10",
    "interface vlan 30",
    "ip address 192.168.4.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/11 - 15',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 30',
    "vlan 10",
    "interface vlan 40",
    "ip address 192.168.5.1 255.255.255.0",
    "no shutdown",
    'interface range fa0/16 - 20',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 40',
    "vlan 50",
    "interface vlan 50",
    "ip address 192.168.200.1 255.255.240.0",
    "no shutdown",
    'interface range fa0/21 - 22',  # Corrección aquí
    "switchport mode access",
    'switchport access vlan 50',



]
ssh.send_config_set(comandos)
configuracion = ssh.send_command("show run")
comands = ssh.find_prompt()

print(comands)
print("show run:\n" + configuracion)
登入後複製

操作:

  • 連線與特權模式:建立 SSH 連線並使用 ssh.enable() 切換到特權模式。
  • 指令清單:建立多個VLAN,將介面和IP位址指派給這些VLAN,並將連接埠配置為交換器連接埠模式存取。
  • 設定應用程式:使用 ssh.send_config_set() 批次發送命令。
  • 設定驗證:show run指令用於取得裝置目前的設定。
  • 列印結果:列印設備提示和結果配置。

此腳本非常適合自動配置 VLAN 並將 IP 分配給接口,從而促進快速有效地管理複雜網路。

所需資源:
在開始使用 Python 自動設定 Cisco 設備之前,請確保您擁有合適的環境非常重要。我在這裡詳細介紹了您需要的資源和工具:

1。安裝 Python 和函式庫

您的系統上必須安裝 Python 3.6 或更高版本。如果您還沒有,您可以根據您的作業系統輕鬆安裝。

為了以自動化方式與 Cisco 設備交互,我們使用 Netmiko,這是一個 Python 庫,可促進與路由器和交換器的 SSH 連接。

  • Netmiko:它是我們用來透過 SSH 連接網路設備(例如路由器或交換器)的主要函式庫。
  • Paramiko:Netmiko 依賴這個函式庫,它是 Python 中的 SSH 用戶端。
  • PIP:它是 Python 套件管理器,您需要它來安裝程式庫。

2。庫的安裝

要安裝 Netmiko 及其相依性(包括 Paramiko),請在終端機中執行以下命令:

pip install netmiko
登入後複製

此命令將下載並安裝 Netmiko 及其必要的依賴項。完成後,您可以使用以下命令檢查所有內容是否已正確安裝:

pip list
登入後複製

這將向您顯示所有已安裝的庫,其中您應該看到 netmiko 和 paramiko。

3。透過 SSH 存取 Cisco 設備

除了已安裝的程式庫之外,您還需要確保 Cisco 設備(路由器或交換器)配置為接受 SSH 連線。以下是啟用存取的一些關鍵點:

a) 在 Cisco 設備上啟用 SSH:

configure terminal
ip domain-name cisco.local
crypto key generate rsa
username cisco privilege 15 secret cisco
line vty 0 4
transport input ssh
login local
exit
登入後複製

b) 驗證憑證和 IP:

  • 確保您擁有正確的憑證(使用者名稱和密碼),並且可以從執行 Python 腳本的電腦存取裝置的 IP 位址。

透過這些配置,您就可以使用 Python 在 Cisco 裝置上執行腳本並自動執行任務。

結論

有了正確的資源(在 Cisco 裝置上啟用了 Python、Netmiko、SSH)和安裝了必要的函式庫,您就可以開始使用 Python 自動設定和管理網路設備了。 Netmiko 可以輕鬆地在這些裝置上連接和執行命令,簡化重複性任務並提高網路管理效率。

以上是使用 Python 進行思科自動化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!