ONOS一键安装脚本

简介:

工欲善其事,必先利其器。在部署SDN实践时,通常需要安装OVS和控制器等软件,经历过的同学都知道,很多时候会被一些细节卡住,影响生产效率。有时由于实验需要还需要多次部署同样的内容,重复进行多遍同样的命令,浪费时间。所以很有必要将安装过程转化为一键安装脚本。本文总结的一键安装脚本就是在部署ONOS集群时,为提高安装ONOS效率而整理的,希望能帮助到同样需要多次安装ONOS的其他人。

安装脚本

安装脚本将安装ONOS及其依赖软件的所有命令都写到了shell文件,并加一些必要判断语句,使得安装脚本使用起来更加人性化。需要注意的是,此文件仅完成了ONOS的安装,并没有完成ONOS启动之前的配置,需要启动相关服务,还需手动进行配置。脚本内容如下所示:

 
  1. sh 
  2.  
  3. #!/bin/bash 
  4.  
  5. #make sure only root can run our script. 
  6.  
  7. if [ "$(id -u)" != "0" ]; then 
  8.  
  9. echo "You need to be 'root' dude." 1>&2 
  10.  
  11. exit 1 
  12.  
  13. fi 
  14.  
  15. _version="1.0" 
  16.  
  17. echo "========================INSTALL ONOS=======================" 
  18.  
  19. # Download and unzip apache-karaf 
  20.  
  21. if [ -d /root/Applications ] 
  22.  
  23. then 
  24.  
  25. cd /root/Applications 
  26.  
  27. else 
  28.  
  29. mkdir /root/Applications 
  30.  
  31. cd /root/Applications 
  32.  
  33. fi 
  34.  
  35. if [ -f apache-karaf-3.0.2.tar.gz ] 
  36.  
  37. then 
  38.  
  39. echo "apache-karaf-3.0.2.tar.gz has exist" 
  40.  
  41. else 
  42.  
  43. wget http://apache.fayea.com/karaf/3.0.2/apache-karaf-3.0.2.tar.gz 
  44.  
  45. tar -xzf apache-karaf-3.0.2.tar.gz 
  46.  
  47. fi 
  48.  
  49. # Download and install apache-maven 
  50.  
  51. if [ -f apache-maven-3.2.5-bin.tar.gz ] 
  52.  
  53. then 
  54.  
  55. echo "apache-maven-3.2.5.bin.tar.gz has exist" 
  56.  
  57. else 
  58.  
  59. wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz 
  60.  
  61. tar -xzf apache-maven-3.2.5-bin.tar.gz 
  62.  
  63. mv apache-maven-3.2.5 /usr/local/apache-maven 
  64.  
  65. # set environment 
  66.  
  67. echo "export M2_HOME=/usr/local/apache-maven" >> /etc/profile 
  68.  
  69. source /etc/profile 
  70.  
  71. echo "export PATH=$PATH:$M2_HOME/bin" >> /etc/profile 
  72.  
  73. source /etc/profile 
  74.  
  75. # in case of failure of setting environment 
  76.  
  77. export PATH=$PATH:$M2_HOME/bin 
  78.  
  79. fi 
  80.  
  81. # Install java-8-oracle 
  82.  
  83. if which java 
  84.  
  85. then 
  86.  
  87. echo "java-8 has been installed." 
  88.  
  89. else 
  90.  
  91. apt-get install python-software-properties 
  92.  
  93. sudo add-apt-repository ppa:webupd8team/java -y 
  94.  
  95. sudo apt-get update 
  96.  
  97. sudo apt-get install oracle-java8-installer oracle-java8-set-default -y 
  98.  
  99. # set JAVA_HOME 
  100.  
  101. echo "export JAVA_HOME=/usr/lib/jvm/java-8-oracle" >> /etc/profile 
  102.  
  103. source /etc/profile 
  104.  
  105. fi 
  106.  
  107. # show the info of java and maven to check. 
  108.  
  109. java -version 
  110.  
  111. mvn --version 
  112.  
  113. # Download ONOS 
  114.  
  115. if [ -d /home/onos ] 
  116.  
  117. then 
  118.  
  119. cd /home/onos 
  120.  
  121. else 
  122.  
  123. mkdir /home/onos 
  124.  
  125. cd /home/onos 
  126.  
  127. fi 
  128.  
  129. if which zip 
  130.  
  131. then 
  132.  
  133. echo "zip has been installed" 
  134.  
  135. else 
  136.  
  137. apt-get install zip 
  138.  
  139. fi 
  140.  
  141. if [ -f onos-$_version.zip ] 
  142.  
  143. then 
  144.  
  145. echo "onos-$_version.zip has exist" 
  146.  
  147. else 
  148.  
  149. wget https://github.com/opennetworkinglab/onos/archive/onos-$_version.zip 
  150.  
  151. unzip onos-$_version.zip 
  152.  
  153. # set environment of ONOS 
  154.  
  155. echo "export ONOS_ROOT=/home/onos/onos-onos-$_version" >> /etc/profile 
  156.  
  157. echo "export KARAF_ROOT=/root/Applications/apache-karaf-3.0.2" >> /etc/profile 
  158.  
  159. source /etc/profile 
  160.  
  161. source $ONOS_ROOT/tools/dev/bash_profile 
  162.  
  163. fi 
  164.  
  165. # Build ONOS 
  166.  
  167. cd onos-onos-$_version/ 
  168.  
  169. mvn clean install 

Note: 若需下载其他版本ONOS,直接修改下载源码部分和ONOS_ROOT即可,无需修改Karaf,maven,java8等内容。

初始化配置

在安装完ONOS之后,还需要进行一些必要的配置,才能启动运行了制定服务的ONOS。需要编辑$KARAF_ROOT/etc/org.apache.karaf.features.cfg文件,脚本中即为/root/Applications/apache-karaf-3.0.2/etc/org.apache.karaf.features.cfg。在该文件中的featuresRepositories部分和featuresBoot部分分别添加如下内容:

 
  1. Shell 
  2.  
  3. 12featuresRepositories:mvn:org.onosproject/onos-features/1.0.0/xml/features(逗号隔开,加到最后即可) 
  4.  
  5. featuresBoot:onos-api,onos-core-trivial,onos-cli,onos-openflow,onos-app-fwd,onos-app-mobility,onos-gui 


作者:李呈

来源:51CTO

相关文章
|
网络协议 Docker 容器
Docker容器内不能联网的6种解决方案
Docker容器内不能联网的6种解决方案   注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网(尝试ping 8.
13385 2
|
Web App开发 移动开发 安全
h5页面的优缺点(浅谈)
H5页面优点包括:跨平台性,易于传播,丰富的多媒体支持,开发成本低,更新便捷,良好的交互性。缺点则有:性能受限,功能受限,高度依赖网络,存在安全风险,用户体验一致性差。确保H5页面在不同设备上的兼容性,需遵循HTML5标准,使用响应式设计,并进行多设备测试。优化H5页面性能的方法包括减少HTTP请求,压缩文件大小,利用缓存机制,优化代码执行效率等。
|
缓存 Rust 前端开发
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
2439 0
|
安全 网络协议 网络安全
2023年全国职业院校技能大赛信息安全管理与评估-模块一任务书
GeekSec着重为安全人员提供网络安全精华知识集,并且知识体系中涉及多个网络安全赛项和实战项目,包括但不限于:信息安全管理与评估,网络搭建与应用,各大CTF赛项,HVV,红蓝对抗等。我们将从赛事带领大家进入网络空间安全领域。
|
XML SQL JSON
大数据 ETL 处理工具 Kettle 常用输入输出
相比现在流行大数据技术,你可能觉得 Kettle 的使用场景太少了,或者没有必要使用这么个玩意儿,查看了下 github kettle 发现最近也有一些更新,另外,对于没有编程经验的数据使用人员,使用非常简单的 Kettle,通过图形界面设计实现做什么业务,无需写代码去实现,就可以做一些实验,比如:抓取网站上的股票数据、外汇信息等等。 Kettle 支持很多种输入和输出格式,包括文本文件,数据表,以及数据库引擎。总之,Kettle 强大的输入、输出、转换功能让你非常方便的操作数据。
|
存储
大端模式、小端模式、高字节序、低字节序、MSB、LSB
你知道内存是怎么读取数据的吗?知道数据是怎么一个一个字节发送的吗?是低字节先发还是高字节先发?是bit0先发还是bit7先发?是从低地址开始读还是从高地址开始读?看完本篇比应该就明白了~
3305 0
大端模式、小端模式、高字节序、低字节序、MSB、LSB
|
运维 监控 前端开发
Qcon演讲实录|手机淘宝客户端的攻防演练实践
混沌工程是一个业界比较流行的防范系统性风险的方法论, 其核心思想是通过不断地失败来避免失败,以主动制造故障的方法来宏观地验证业务的容灾和恢复能力。这一概念在服务端存在大量的实践和落地, 在客户端还是属于探索阶段,业界甚少甚至没有类似尝试。手机淘宝等大型应用其实是一个广义概念上的分布式系统, 混沌工程理念是否也可以在这类型广义分布式系统上产生价值呢?答案是肯定的,本次分享将向大家介绍手机淘宝客户端是如何使用攻防演练来降低客户端系统风险、提高快速交付能力的。
|
弹性计算 Ubuntu 网络安全
在阿里云搭建基于SDN的DDoS攻击检测与防御的过程
最近有一个实验作业,是实现《基于SDN的DDoS攻击检测与防御》,便搜索了相关的资料,发现该过程可以在云虚拟机实现,经过考虑,选择了通过阿里云ECS服务器来搭建实验所需的环境。

热门文章

最新文章

下一篇
开通oss服务