#VyOS#Ex01

#VyOS#Ex01_第1张图片


因为临考好久都没空更新自己的blog了,在SAE上的因为wordpress的模板有点难用加上钱钱钱的问题,于是自己停用了那个blog,さようなら,SAE。

这个实验将会是一个critical的action,确保了后续行动的可行性。


VyOS实在是一个有点令人无语的系统,基于debian squeeze,现在都出到debian 8了,为何不能选择一个比较新的系统为基础系统?虽然VyOS目前最新版的1.1.7 (Helium)的内核是3.11,比较新的了,但是现在基本上没有squeeze的源,通过官方wiki上的指引也没法进行apt-get update。像VyOS,Cisco IOS这类路由器上的系统,如果官方不提供API,自动化管理是非常困难的,现在都2016年了,网络管理的自动化、集中化已成趋势,所以必须采取合适的行动了。

关键的库:exscript,关于该库的具体指导可以看这里:https://github.com/knipknap/exscript/wiki/Python-API-Tutorial

要求python2.6或2.7,不支持python3,依赖:Python-crypto,Paramiko


demo:

目标是设置vyos的eth1接口:

vyos@vyos:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             172.16.77.189/24                  u/u  hello 
eth1             -                                 u/u  
lo               127.0.0.1/8                       u/u  
                 ::1/128


在安装exscript库的debian8上进行测试:

from Exscript.protocols import SSH2
from Exscript import Account

username = raw_input("Enter the router username: ")
password = raw_input("Enter the user password: ")
address = raw_input("Enter the router address: ")

account = Account(username,password)

conn = SSH2()
conn.connect(address)
conn.login(account)

def setInterfaces(NAME,TYPE,ADDR):
#configure mode
    conn.execute("configure")
#interfaces setting
    conn.execute("set interfaces %s %s address %s" % (NAME,TYPE,ADDR))
    conn.execute("commit")
    conn.execute("save")
    conn.execute("exit")

#exit
    conn.close()

Name = raw_input("Enter the interfaces name: ")
Type = raw_input("Enter the interfaces type: ")
Addr = raw_input("Enter the interfaces address(don't forget the netmask): ")

print("Start to deal with your input......")
setInterfaces(Name,Type,Addr)

print("Enjoy VyOS")


这段代码执行时会卡住,但是配置的确生效了,不知道为什么没有返回。我修改了该库SSH2.py的一行代码,问题大概出在设置ip地址后没有数据返回,嘛,设置接口还是让用户自己弄好了


经过我的实验,的确可以通过Exscript实现对VyOS的管理,可以进一步折腾了,不过必须得留到5月后再开始


reference:

https://github.com/knipknap/exscript

http://futilefiles.com/blog/?p=615

http://forum.vyos.net/showthread.php?tid=7974

https://github.com/knipknap/exscript/wiki/Python-API-Tutorial


你可能感兴趣的:(#VyOS#Ex01)