Welcome file
環境建置:
windows:安裝新版python,安裝時,選項全選。會把pip都裝好。
在 Windows 11 上使用 Netmiko,您需要確保您的系統滿足以下要求:
-
Python 安裝:在 Windows 11 上安裝 Python。您可以從 Python 官方網站
-
Netmiko 安裝:使用 Python 的包管理工具(如 pip)安裝 Netmiko。在命令提示字元或 PowerShell 中運行以下命令:
pip install netmiko
- 相依庫安裝:Netmiko 依賴於 Paramiko、pyserial 和 textfsm 這些庫,請確保這些相依庫也已經安裝。
安裝 Paramiko:`pip install paramiko`
安裝 pyserial:`pip install pyserial`
安裝 textfsm:`pip install textfsm`
如何將程式建立與執行
您可以將程式碼貼到一個檔案中,並保存為以 .py 為副檔名的 Python 檔案,例如 password_change.py
要執行這個 Python 檔案,您可以按照以下步驟進行:
-
打開命令提示字元或 PowerShell。
-
導航到存放程式檔案的目錄。使用 cd 命令進行目錄切換,例如:cd C:\path\to\your\directory
-
執行 Python 腳本。在命令提示字元或 PowerShell 中,使用 python 命令加上檔案名稱來執行腳本,例如:python password_change.py
-
程式將會執行並輸出相關訊息或結果。
練習-show system
使用 Netmiko 提供的功能來連接到網路交換器、更換密碼等操作。記得在腳本中引入必要的模組和庫,例如:
python
from netmiko import ConnectHandler
自己測試後的調整如下:
from netmiko import ConnectHandler
device = {
'device_type': 'alcatel_aos',
'ip': '192.168.112.12',
'username': 'admin',
'password': 'password',
}
net_connect = ConnectHandler(**device)
command = 'show system'
output = net_connect.send_command(command)
print(output)
net_connect.disconnect()
其中
查詢的指令和設定的指定是不同的,要注意:
在 `output = net_connect.send_config_set(commands)`
使用的是 `send_config_set` 函數,
而非 `send_command` 函數。
這可能導致輸出不符合預期,因為 `send_config_set` 函數主要用於發送配置命令,而不是查詢命令。
查詢:send_command,並且只能用字串
配置命令:send_config_set,可連接。
user admin password Admin@2023
write memory
copy working certified
exit
最後的檔案,主要幾個流程
-
匯入netmiko功能
-
定義變數,帳號密碼,交換器資訊
-
迴圈 去每台
連線
執行命令
輸出執行結果
關閉連線
迴圈
from netmiko import ConnectHandler
old_username = 'admin'
old_password = 'password'
switches = [
{'device_type': 'alcatel_aos', 'ip': '192.168.112.3', 'username': old_username, 'password': old_password},
]
for switch in switches:
net_connect = ConnectHandler(**switch)
commands = [
'user admin password Admin@2023',
'write memory',
'copy working certified',
]
output = net_connect.send_config_set(commands)
print(f"交換器 {switch['ip']} 命令執行結果:")
print(output)
net_connect.disconnect()