SDN开发笔记(三):ODL源码编译生成发行版控制器

作者简介:鸿哥,硕士研究生,国内某通信设备公司软件研发工程师,主要从事云计算、SDN技术开发

前言

鉴于网上对于SDN开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在SDN开发过程中的经验,我的SDN项目开发是基于OpenDaylight的release-lithium-sr3版本,该版本相对稳定。分享内容都是经过我精心测试与验证,包括:
1、SDN开发环境的搭建(win7环境)
2、SDN控制器的使用(ubuntu环境搭建、controller使用、mininet的使用)
3、ODL源码编译生成发行版控制器
4、md-sal应用程序开发指南
5、应用程序集成到ODL控制器
6、yang模型详解
7、md-sal的l2switch源码分析

环境搭建

继前两篇文章SDN开发环境的搭建(win7环境)SDN控制器的使用(ubuntu环境搭建、controller使用、mininet的使用)”之后,参照上述两篇文章将开放环境搭建好,开始尝试从源码编译生成发行版二进制文件,顺便也解答下一些网友在此过程中遇到的问题,从源码编译生成odl控制器这一步骤是每个开发人员都要掌握的内容。

在Ubuntu中搭建好环境(参照ubuntu环境搭建这篇文章)之后,需要下载odl源码。

编译前准备

1、下载odl源码
下载odl源码有两种方式,一种是从gerrit上下载,一种是从github上下载。

2、Gerrit方式
gerrit是odl控制器源代码官方存储位置,在浏览器中输入https://git.opendaylight.org,点击Projects按钮

下载odl之后还需要下载odlparent源码

继续下载distribution源码

3、github方式
odl控制器源码同时也会放在github上托管,浏览器输入https://github.com/opendaylight,找到controller

同理,下载controller之后需要下载odlparent源码

继续下载distribution源码

4、源码上传至ubuntu
本例中采用github的方式将odl的controller与odlparent源码下载下来,同时还需要下载的组件有aaa、dlux、l2switch、openflowjava、topoprocessing,使用Xshell工具将上述文件上传至ubuntu,如下:

5、准备仓库
在安装好maven之后,maven会在制定目录创建一个repository本地仓库,以后编译出来的jar包会自动安装到该仓库中,比如我的maven本地仓库为/root/.m2/repository。

6、准备parent
在编译之前,需要将odlparent的settings.xml复制到maven仓库

比如我的maven仓库放在/root/.m2/中,所以讲settings.xml复制到该目录下

编译源码

1、经过上述准备之后,就需要修改feature了,将需要编译的组件加进distribution,这样编译出来的控制器发行版本就在distribution/distributions/karaf/target当中。这就是为什么我们从官网下载下来的odl控制器二进制文件的名字为distribution-karaf-xx-xx,比如distribution-karaf-0.3.3-Lithium-SR3.tar.gz

2、修改feature,在/distribution/features/index/src/main/resources中找到features.xml文件,打开并修改,修改内容为:





3、其实上述的修改就是将需要的组件编译进distribution,比如我想将l2switch组件和openflowplugin组件编译进distribution,则需要添加如下代码。

4、修改好的feature文件保存,这时准备工作基本做完了

5、编译源码
在顶级目录输入 mvn clean install 开始编译,其他编译命令和说明如下:

编译过程中失败,无需从头开始再编译,从失败位置续编。
以工程sal为例,在根目录下运行命令:

注意,命令中的sal与具体工程(sal)目录下pom.xml中的artifactId指定的名称一致。

6、编译成功,整个编译过程需要2-3个小时,所以请耐心等待,出现如下说明编译成功

7、在/distribution/distributions/karaf/target下可以看到以下文件
assembly
distribution-karaf-0.3.3-Lithium-SR3.tar.gz
distribution-karaf-0.3.3-Lithium-SR3.zip

assembly 目录下有karaf文件,可以直接运行启动odl控制器,
distribution-karaf-0.3.3-Lithium-SR3.tar.gz是采用tar方式打包的odl控制器二进制文件
distribution-karaf-0.3.3-Lithium-SR3.zip是采用zip方式打包的odl控制器二进制文件
后两者就是官网发布的两种打包方式的二进制文件,可以复制到其他虚拟机启动了。

测试验证

1、将distribution-karaf-0.3.3-Lithium-SR3.zip复制到安装好jdk环境的虚拟机,解压运行./karaf

2、安装组件,比如我需要安装L2Switch,在控制台输入

3、查看该组件是否安成功

得到

好了,一个发行版odl控制器的编译全过程就已经讲完了

下一篇文章将讲md-sal应用程序开发指南,文章写的仓促,有错误还请大家指点改正,谢谢,同时也非常热于和大家一起交流学习。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17399.html
分享到:
相关文章
条评论

登录后才可以评论

wellbeing 发表于16-07-15
0