使用python配置Juniper交换机(paramiko)

时间:2017-12-08 13:56:27

标签: python paramiko juniper

我正在尝试将配置推送到多个juniper设备。但作为测试,我进入配置模式并更改配置。

client1 = paramiko.SSHClient()

client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client1.connect(IP, username=username, password=password)

configure = client1.invoke_shell()

configure.send('configure')

configure.send('set interfaces ge-0/0/10 description "test"')

configure.send('show | compare')

print configure.recv(1000)

client1.close()

我期待输出如下:

[edit interfaces ge-0/0/10]
-   description "Internet Simulation Interface connect to QFX ge-0/0/21";
+   description test;

但实际输出是这样的:

JUNOS 12.3X50-D35 built 2013-10-22 07:02:18 UTC

4 个答案:

答案 0 :(得分:0)

您正在获取Juniper CLI的第一行,尝试编写更高的接收字节:

print configure.recv(1000)

尝试:

print configure.recv(4096)

让我知道。

答案 1 :(得分:0)

我建议您使用Juniper的Junos Eznc库来安装junos设备。 Junos-Eznc GitHub

答案 2 :(得分:0)

您可以尝试以下提到的代码段吗?有时,您需要等待几秒钟才能在stdin上接收一些字节。

configure.send('show | compare')

time.sleep(2)

print configure.recv(1000)

答案 3 :(得分:0)

您可以在发送命令之前放置'cli'吗?

configure = client1.invoke_shell ()
configure.send ('cli') <--- Add
configure.send ('configure')

通过SSH连接到JUNOS时,您首先处于外壳模式。因此,您可以使用cli进入操作模式。

(lab-network) bash-3.2$ ssh root@localhost -p 2201 
Password:
--- JUNOS 12.1X47-D15.4 built 2014-11-12 02:13:59 UTC
root@vsrx1% cli
root@vsrx1> configure 
Entering configuration mode

[edit]
root@vsrx1#