SDN Mininet安装脚本(全自动,解放双手)仅适用于Ubuntu

最近在学习SDN,需要使用网络仿真工具mininet,反反复复折腾了好长时间,尝试了完整安装,也尝试了主要文件安装,不是主机之间无法通信,就是指定的openvswitch安装不上,所以我单独安装了mininet和openvswitch,也不是说安装有多难,但就是安装完成之后总出问题,今天可能安装成功了,过两天说不定又安装不了了,又得折腾老长时间,所以为了解决这个问题,我直接将成功安装mininet的所有步骤写成了一个脚本,没有什么技术含量,目的就是解决安装mininet总是不成功的问题

脚本执行的原理就是使用python执行Linux命令,这里就是执行安装mininet所需的全部命令,再直白点就是不需要你一条一条的去敲命令了,直接运行脚本就可以帮你执行安装命令了


演示一下吧



这里我把脚本中的命令都贴出来了,大家可以在Linux中创建一个python文件然后将脚本中的命令都复制进去,直接运行就可以了

再强调一遍这个脚本只适用于Ubuntu系统,因为脚本中的命令都是Ubuntu中的命令,其他系统无法执行


修改版本

可以修改安装mininet的版本,修改os.system("git checkout 2.3.0")这条命令中的版本

也可以修改安装openvswitch的版本,修改os.system("./install.sh -n3V 2.15.0")os.chdir("./openvswitch/openvswitch-2.15.0")这两条命令中的版本

这里我亲测的是mininet2.3.0和openvswitch2.15.0


脚本命令

import os

# 更新安装源
os.system("apt-get update")
# 安装git
os.system("apt install -y git")
# 下载mininet
os.system("git clone git://github.com/mininet/mininet")
# 进入mininet目录
os.chdir("./mininet")
# 修改安装版本
os.system("git checkout 2.3.0")
# 进入安装目录
os.chdir("./util")
# 安装mininet,这里虽然指定安装openvswitch,但他只会帮我们下载安装文件,并不会帮我们安装,所以还要我们自己安装,可以指定openvswitch的版本
os.system("./install.sh -n3V 2.15.0")
# 切换到原目录
os.chdir("../../")
# 进入openvswitch目录
os.chdir("./openvswitch/openvswitch-2.15.0")
# 编译文件
os.system("./configure")
# 安装编译命令
os.system("apt install -y make")
os.system("make")
os.system("make install")
os.system("/sbin/modprobe openvswitch")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl start")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl --no-ovs-vswitchd start")
# 添加环境变量
os.environ["PATH"] += os.pathsep + "/usr/local/share/openvswitch/scripts"
# 启动
os.system("ovs-ctl --no-ovsdb-server start")
print("APPLICATION INSTALLED SUCCESSED")

如果大家还是觉得麻烦,可以下载这个python文件,然后上传到机器中直接执行就可以了,我把文件的下载地址放到下面了

下载地址:https://pan.baidu.com/s/1gDSvt8G2ilMTerObp5mE9A
提取码:hqjl


可能因为网速等原因有的文件没有下载成功,大家可以尝试多执行几次脚本

脚本是我亲测过的,但因为每个人的机器不同,问题不同,所以也不能保证会绝对安装成功,大家见谅


相关文章

SDN RYU控制器安装脚本(全自动,解放双手)仅适用于Ubuntu

你可能感兴趣的:(SDN,linux,python,SDN)