Netmiko - 进入配置终端模式
Netmiko - Enter configuration terminal mode
我正在尝试使用 Netmiko 并在 'configuration terminal' 模式下工作。
为什么只有'enable'模式功能而没有'configuration terminal'模式?(即:net_connect.enable())
我的程序应该执行这些步骤:
- 登录
- 更改为启用模式
- 更改以配置终端
- 插入受限许可证(在配置终端模式下)
- 运行 '_shell' 从 CLI 更改为常规 Linux bash.
正在编辑
我尝试了以下命令输入 config_mode 并得到了 'ValueError'.
net_connect.find_prompt()
net_connect.enable()
net_connect.find_prompt()
net_connect.config_mode()
net_connect.find_prompt()
日志:
>>> from netmiko import ConnectHandler
>>> net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] >'
>>> net_connect.enable()
'enable\r\r\n\rr-hpc-sw19 [standalone: master] # '
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] #'
>>> net_connect.config_mode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/cisco_base_connection.py", line 48, in config_mode
return super().config_mode(
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1766, in config_mode
raise ValueError("Failed to enter configuration mode.")
ValueError: Failed to enter configuration mode.
第二次尝试:
from netmiko import ConnectHandler
net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
net_connect.find_prompt()
net_connect.enable()
net_connect.find_prompt()
cfg = net_connect.send_config_set(["show version | json-print"])
net_connect.find_prompt()
>>> from netmiko import ConnectHandler
>>> net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] >'
>>> net_connect.enable()
'enable\r\r\n\rr-hpc-sw19 [standalone: master] # '
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] #'
>>> cfg = net_connect.send_config_set(["show version | json-print"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1876, in send_config_set
output += self.config_mode(*cfg_mode_args)
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/cisco_base_connection.py", line 48, in config_mode
return super().config_mode(
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1766, in config_mode
raise ValueError("Failed to enter configuration mode.")
ValueError: Failed to enter configuration mode.
>>> net_connect.find_prompt()
谢谢,
爱丽儿.
Why there only 'enable' mode function and not 'configuration terminal' mode.?
netmiko
中有一个configure terminal
模式,使用conn.config_mode()
发送configure terminal
到远程设备。
但是,您可以使用send_config_set()
,它默认进入配置模式并在最后一个命令发送后退出。使用 send_config_set()
的示例
from netmiko import ConnectHandler
device = {
"device_type": "cisco_ios",
"ip": "192.168.1.1",
"username": "cisco",
"password": "cisco",
"secret": "cisco",
"fast_cli": False,
}
with ConnectHandler(**device) as conn:
if not conn.check_enable_mode():
conn.enable()
cfg = conn.send_config_set(["interface Loopback 212", "shutdown"])
print(cfg)
RTR1(config)#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
RTR1(config)#interface Loopback 212
RTR1(config-if)#shutdown
RTR1(config-if)#end
RTR1#
编辑
由于send_config_set()
和config_mode()
都不行,你可以使用send_command_timing()
并自己编写命令,而不是使用netmiko中的方法。
send_command_timing()
是 基于延迟的 而不是像 send_command()
那样的 基于模式的 。计时方法等待一段时间并在之后发送命令,它不搜索任何模式。您还可以阅读本 documentation link 的第一部分以了解更多有关 send_command_timing()
的信息
net_conn.send_command_timing("enable")
net_conn.send_command_timing("configure terminal")
您必须确定用户的权限级别或使用秘密密码从 ssh 进入配置模式。
没有那个,
Conn.enable() & conn.send_config_set()
不会工作
我正在尝试使用 Netmiko 并在 'configuration terminal' 模式下工作。 为什么只有'enable'模式功能而没有'configuration terminal'模式?(即:net_connect.enable())
我的程序应该执行这些步骤:
- 登录
- 更改为启用模式
- 更改以配置终端
- 插入受限许可证(在配置终端模式下)
- 运行 '_shell' 从 CLI 更改为常规 Linux bash.
正在编辑 我尝试了以下命令输入 config_mode 并得到了 'ValueError'.
net_connect.find_prompt()
net_connect.enable()
net_connect.find_prompt()
net_connect.config_mode()
net_connect.find_prompt()
日志:
>>> from netmiko import ConnectHandler
>>> net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] >'
>>> net_connect.enable()
'enable\r\r\n\rr-hpc-sw19 [standalone: master] # '
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] #'
>>> net_connect.config_mode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/cisco_base_connection.py", line 48, in config_mode
return super().config_mode(
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1766, in config_mode
raise ValueError("Failed to enter configuration mode.")
ValueError: Failed to enter configuration mode.
第二次尝试:
from netmiko import ConnectHandler
net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
net_connect.find_prompt()
net_connect.enable()
net_connect.find_prompt()
cfg = net_connect.send_config_set(["show version | json-print"])
net_connect.find_prompt()
>>> from netmiko import ConnectHandler
>>> net_connect = ConnectHandler(device_type='cisco_ios', host='r-hpc-sw19', username='admin', password='admin')
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] >'
>>> net_connect.enable()
'enable\r\r\n\rr-hpc-sw19 [standalone: master] # '
>>> net_connect.find_prompt()
'r-hpc-sw19 [standalone: master] #'
>>> cfg = net_connect.send_config_set(["show version | json-print"])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1876, in send_config_set
output += self.config_mode(*cfg_mode_args)
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/cisco_base_connection.py", line 48, in config_mode
return super().config_mode(
File "/labhome/arielwe/.local/lib/python3.9/site-packages/netmiko/base_connection.py", line 1766, in config_mode
raise ValueError("Failed to enter configuration mode.")
ValueError: Failed to enter configuration mode.
>>> net_connect.find_prompt()
谢谢, 爱丽儿.
Why there only 'enable' mode function and not 'configuration terminal' mode.?
netmiko
中有一个configure terminal
模式,使用conn.config_mode()
发送configure terminal
到远程设备。
但是,您可以使用send_config_set()
,它默认进入配置模式并在最后一个命令发送后退出。使用 send_config_set()
from netmiko import ConnectHandler
device = {
"device_type": "cisco_ios",
"ip": "192.168.1.1",
"username": "cisco",
"password": "cisco",
"secret": "cisco",
"fast_cli": False,
}
with ConnectHandler(**device) as conn:
if not conn.check_enable_mode():
conn.enable()
cfg = conn.send_config_set(["interface Loopback 212", "shutdown"])
print(cfg)
RTR1(config)#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
RTR1(config)#interface Loopback 212
RTR1(config-if)#shutdown
RTR1(config-if)#end
RTR1#
编辑
由于send_config_set()
和config_mode()
都不行,你可以使用send_command_timing()
并自己编写命令,而不是使用netmiko中的方法。
send_command_timing()
是 基于延迟的 而不是像 send_command()
那样的 基于模式的 。计时方法等待一段时间并在之后发送命令,它不搜索任何模式。您还可以阅读本 documentation link 的第一部分以了解更多有关 send_command_timing()
net_conn.send_command_timing("enable")
net_conn.send_command_timing("configure terminal")
您必须确定用户的权限级别或使用秘密密码从 ssh 进入配置模式。
没有那个,
Conn.enable() & conn.send_config_set()
不会工作