前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDN开发笔记(三):ODL源码编译生成发行版控制器

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

作者头像
SDNLAB
发布2018-04-02 10:57:45
1.5K0
发布2018-04-02 10:57:45
举报
文章被收录于专栏:SDNLABSDNLAB

前言

鉴于网上对于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 开始编译,其他编译命令和说明如下:

mvn clean install --settings ./settings.xml 完整编译

mvn clean --settings ./settings.xml 清除编译成果。

mvn clean install --settings ./settings.xml>trace-name.log 保留log。

mvn clean install --settings ./settings.xml–errors 详细错误信息。

mvn clean install --settings ./settings.xml -Dcheckstyle.skip 忽略检查,加快编译。

继续编译。

mvn clean install --settings ./ settings.xml-Dcheckstyle.skip–DskipTests -rf :xxx

编译过程中失败,无需从头开始再编译,从失败位置续编。

以工程sal为例,在根目录下运行命令:

mvn clean install --settings ./ settings.xml-Dcheckstyle.skip–DskipTests–rf :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,在控制台输

feature:install odl-l2switch-all

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

feature:list -i|grep l2switch

得到

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SDNLAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档