Opendaylight 基础环境安装

一. 运行环境

  • ubuntu 16.04
  • JAVA虚拟机(版本1.8)
  • Maven (版本3.5)

二. opendaylight预编译版本安装

这里选择硼版本,参考博文:http://blog.csdn.net/tandadivvvvvvvvvvv/article/details/64128590
1.从官网上下载distribution-karaf-0.5.2-Boron-SR2.tar.gz

2.解压文件
tar -zxvf distribution-karaf-0.5.2-Boron-SR2.tar.gz

3.进入解压后的目录:cd ./distribution-karaf-0.5.2-Boron-SR2, 修改参数配置etc/org.apache.karaf.management.cfg

  rmiRegistryHost = 0.0.0.0 改为 rmiRegistryHost = 127.0.0.1
  rmiServerHost = 0.0.0.0  改为  rmiServerHost = 127.0.0.1

4.启动opendaylight容器karaf:./bin/karaf
这里写图片描述

此时安装好的ODL,没有任何feature,包括UI界面,可以通过karaf安装。

5.安装feature

opendaylight-user@root>feature:install odl-restconf
opendaylight-user@root>feature:install odl-l2switch-switch-ui
opendaylight-user@root>feature:install odl-openflowplugin-all-he
opendaylight-user@root>feature:install odl-mdsal-apidocs
opendaylight-user@root>feature:install odl-dlux-core
opendaylight-user@root>feature:install odl-dlux-node
opendaylight-user@root>feature:install odl-dlux-yangui

上诉安装过程需要严格按照顺序来,不然可能会导致无法访问UI界面。
对于不同版本控制器,feature的名字有一定的出入。
可以通过命令feature:list查看所有的feature列表;

当出现如下情况时说明feature不存在,或者feature名字输入错误:
这里写图片描述
可以通过命令feature:list | grep odl-dlux 查看关键字相关的feature列表。
这里写图片描述

6.界面访问
在浏览器中输入http://localhost:8181/index.html, 即可进入用户登录界面,初始用户名密码都是admin。
这里写图片描述

登录后界面如下:
这里写图片描述

三.opendaylight源码编译安装

1.源码编译安装需要maven环境
OpenDaylight在Maven Central之外维护自己的仓库,这意味着maven默认不能解析OpenDaylight工件。 由于OpenDaylight被组织为多个相互依赖的项目,因此构建特定项目通常意味着引入一些工件,Maven需要知道OpenDaylight存储库的位置,通过一下命令,将odlparent中的settings.xml复制到本地maven仓库~/.m2 中。

cp -n ~/.m2/settings.xml{,.orig} ; \
wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml

参考博客:http://blog.csdn.net/neutron129/article/details/51166067

在新安装的maven中,是没有~/.m2 的,在linux中以.开头的文件夹都是隐藏的。当使用maven命令的时候,maven自动会创建.m2文件夹。
之后查看发现在.m2文件夹下只有repository,而没有setting.xml文件,可以手动将maven安装文件夹下的/conf/setting.xml复制过来。

maven setting.xml文件:http://blog.csdn.net/moshenglv/article/details/52027125

2.下载opendaylight源码

git clone https://git.opendaylight.org/gerrit/p/integration/distribution.git

3.切换版本(切换到碳版上了,本来是想要切换到硼上的,无奈编译中出现错误,也懒得解决了,就索性切换到碳上了)

cd distribution
git checkout stable/carton

其中的git checkout中出现了error: Your local changes to the following files would be overwritten by merge
Please, commit your changes or stash them before you can merge.
解决办法参考了:http://blog.csdn.net/iefreer/article/details/7679631

4.源码编译

mvn clean install -DskipTests \\DskipTest表示跳过测试部分,避免因测试导致的错误

这里写图片描述
之前通过mvn clean install来编译文件,总是出现maven插件测试(Test)错误,通过各种方式都没有解决,后来通过上面跳过测试命令,成功编译。

5.编译完成后
进入distribution/distribution-karaf/target/assembly/bin目录,运行如下命令启动ODL:

./karaf

6.同样需要安装feature
因为版本不同,对应的feature名称不太相同。

opendaylight-user@root>feature:install odl-restconf
opendaylight-user@root>feature:install odl-l2switch-switch-ui
opendaylight-user@root>feature:install odl-openflowplugin-flow-services-ui
opendaylight-user@root>feature:install odl-mdsal-apidocs
opendaylight-user@root>feature:install odl-dlux-core
opendaylight-user@root>feature:install odl-dluxapps-nodes
opendaylight-user@root>feature:install odl-dluxapps-yangui

7.登录web界面,如上预编译安装一样。

小结:
(1)原本对opendaylight完全不了解,它的版本又很多,看了不少的安装教程,基本都是前几年的,很多文件和配置都发生了改变,在尝试安装的过程中,一片混乱。经过几天的各种卸载安装,成功安装了预编译版本和源码版本,特此记录下来。但是目前还不知道预编译的和源码的在后续开发中有没有区别。

(2)看到很多教程提到的controller/openflowjava/openflowPlugin都是opendaylight的子程序。controller是没有WebGUI(DLUX)等丰富Feature的核心控制器,openflowjava/openflowPlugin是对openflow的实现。而distribution,我的理解时其包含了所有源码功能,所以源码安装部分下载了distribution。而看到有的教程上既编译了congtroller,又编译了distribution(Integration),目前还不太理解,这样做的目地是什么。
主要是opendaylight整个框架有点复杂,很多东西还不太理解,后续对其进行深入学习后,希望能够解答现在疑惑的问题。
看到官网上关于distribution的部分,其貌似是Integration的一部分,所以没清楚两者到底时什么关系。
官网上关于Integration:https://wiki.opendaylight.org/view/Integration

(3)并且为了对opendaylight进行二次开发,原本一心想要将其导入到eclipse上,参考了各种教程和官网上的,奈何最后还是没有成功,待后续继续研究。

参考:
https://www.cnblogs.com/cciejh/p/opendaylight1.html
http://www.cnblogs.com/FrankZhou2017/p/7238655.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值