技术栈

技术栈

python自动化配置交换机

2个月前 热度:83 ℃

1.首先创建好py文件

touch 123.py

2. 编写123.py

vi 123.py

paramiko
time

ip = username = password = ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ipusername=usernamepassword=password)

print
ip

command = ssh_client.invoke_shell()

command.send()
command.send()
command.send()
command.send()
command.send()
time.sleep()
output = command.recv()
print
output

ssh_client.close

然后进入命令模式,:wq保存退出vi

3. 需要更改123.py的权限,根据需要更改,这里主要用于测试,不放设置777

chmod 777 123.py

4. 这时可以在当前目录中直接运行123.py(类似windows中直接执行exe)

./123.py



代码部分讲解:

  • 除了Paramiko外,我们还import了time这个Python自带的模块,它的作用后面会讲到

  • ip, username, password这三个变量很直接明了,只需注意它们的类型必须是string(字符串)。

  • sshclient = paramiko.SSHClient(), 调用paramiko的SSHClient()方法将其assign给ssh_client这个变量。顾名思义,这里我们的CentOS主机是做SSH client,而SSH server则是我们要登陆的S1交换机(192.168.2.11)。

  • 默认情况下,Paramiko会拒绝任何未知的SSH public keys,这里我们使用ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 来让Paramiko接受来自SSH Server端(也就是S1)提供的public key。

  • ssh_client.connect(hostname=ip,username=username,password=password),很好理解,调用Paramiko的connect()函数,使用我们预设好的ip, username, password来登陆S1。

  • 如果登陆成功,用print "Sucessfully login to ", ip来提示用户登录成功,并显示所登陆的交换机的ip地址,这里为192.168.2.11

  • command = ssh_client.invokeshell(),调用paramiko的invoke_shell()方法,将其assign给command这个变量。

  • 现在可以让command配合send()这个函数来对交换机发号施令了,后面的命令就不讲了,这些对网工来说应该是整个script里面最熟悉的部分了。

  • time.sleep(1),前面提到了我们import了time这个模块。有时候系统运行script时会有延迟,它的作用是让系统稍侯1秒钟,再执行下面的语句。

  • output = command.recv(65535),python截屏本次运行script后的所有输出记录,将其assign给output这个变量。

  • print output, 再将output打印出来,这样你在运行python的过程中就能清楚看到python sciprt对你的交换机做了些什么。

  • ssh_client.close,最后记得养成好习惯,退出SSH。


打赏

相关文章

cacti系统服务器异常关机后不显示图形的解决方案

cacti系统服务器异常关机后不显示图形的解决方案

       由于部门使用的Cacti系统添加交换机到了1900多台,图形数量更是达到了59738个,数据源也到了60644个,各位大神,国内罕见吧! ...

服务器不支持curl_exec的解决办法

服务器不支持curl_exec的解决办法

windows下开启方法:1、拷贝PHP目录中的libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll文件到 system32 目录。2、修改php....

华三交换机常用命令

华三交换机常用命令

1、查看某个端口的光衰:display transceiver diagnosis interface GigabitEthernet 1/0/25...

linux常用命令

linux常用命令

更改IP修改IP:vi /etc/sysconfig/network-scripts/ifcfg-eth0输入i进入编辑模式DNS1="8.8.8.8"GATEWAY="...

linux内存一直占满问题

linux内存一直占满问题

用的阿里云,开始是512的内存,数据量增大后,说卡,后面增加到1G,还是很快用光了,后面一下加到 4G,开始还好,后面没两天又跑满了,查了资料,才明白。[root@iZ9488z4qfcZ ~]# f...

谁动了我的骨干网 IP?

谁动了我的骨干网 IP?

现在的网络工程师行业总是充斥下面这些极端现象:✔ 很多人做网络,可能做了那么久,连OSPF的场景都没遇到过。就算遇到了,也都是OSPF单区域,都没碰到过OSPF多区域。于是他们下了结论:OS...