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

时间: 2024-11-02 10:14:09

ONOS一键安装脚本的相关文章

memcached一键安装脚本V1.0

#!/bin/bash #author itnihao #version 1.0 #date 2012-08-04 #mail itnihao@qq.com # www.bianceng.cn #source http://code.google.com/p/auto-task-pe/ green='\e[0;32m' red='\e[0;31m' blue='\e[0;36m' blue1='\e[5;31m' NC='\e[0m' soft_PATH=$(pwd) libevent_vers

cacti一键安装脚本V1.1

01.#!/bin/bash 02.#function +++++++++++++cacti auto install scripts+++++++++++++++++++ 03.#author itnihao 04.#version 1.1 05.#date 2012-08-17 v1.006.#date 2012-08-18 v1.1更新增加syslog-ng等内容07.#mail itnihao@qq.com 08.#www.bianceng.cn 09.#source http://co

linux中dante socks5 一键安装脚本介绍

Danted Socks5 一键安装脚本 ******功能特点 1. 采用最新稳定版本 1.4.0 编译安装. 2. 自动识别系统IP(默认排除192.168.0.*, 10.0.0.*,127.0.0.*),检测多Ip时,进行交互式选择Ip配置(直接回车则全部配置). 3. 采用Pam用户认证,认证不需要添加系统用户(默认添加进程用户sock),删除.添加用户方便,安全. 4. sock5 运行状态查看. 5. 系统启动后自动加载. 6. 认证方式可选: 无用户名密码,系统用户名密码,Pam用

CentOS下IPSEC/L2TP VPN一键安装脚本(openswan+xl2tpd)

概念性的东西这里不再赘述,网上有太多,一键安装脚本也有很多,但是很多不能用,能用的也仅仅只是在CentOS6下使用,CentOS7基本没看到这些安装脚本.于是花了一些时间来折腾测试,写这个脚本方便以后VPN的一键安装搭建.其中用的开源软件包是openswan和xl2tpd,,中间碰到过很多很多问题,如openswan和xl2tpd之间的兼容性问题. 请容许我这样做,脚本依赖<lnmp一键安装包>,可以在安装完lnmp后,执行这个脚本(vpn_centos.sh)来一键搭建你的个人vpn Cen

Centos7搭建pptp VPN一键安装脚本

Centos7搭建pptp一键安装脚本 废话不多说,先上脚本地址:Centos7一键pptp 使用: wget https://raw.githubusercontent.com/DanylZhang/VPS/master/CentOS7-pptp-host1plus.sh chmod +x ./CentOS7-pptp-host1plus.sh ./CentOS7-pptp-host1plus.sh -u your_username -p your_password 1 2 3 可在-u.-p

Caddy Web服务器一键安装脚本

老左晚上有在浏览海外的资源网站时候有看到一键快速安装Caddy Web服务器的脚本以及简单的应用,所以准备也在博客中整理出来.Caddy这款工具是利用GO语言写的WEB Service服务器,支持HTTP/2静态网页服务器,当然老左也没有深入的研究其功能,因为我在简单的快速安装之后看到是支持HTML等静态文件的,对于PHP等我们常用在Nginx.Apache等动态交互环境有些不同. 在记录这篇文章的时候,老左大概浏览关于Caddy 的相关信息,在国内的信息还是比较少的,也许后面会有所关注或者后面

CentOS下shadowsocks-nodejs一键安装脚本

本脚本适用环境: 系统支持:CentOS/Redhat/Fedora 内存要求:≥128M 日期:2014年05月05日 关于本脚本: 一键安装 Nodejs 版的 shadowsocks 最新版本,同时会安装 Nodejs. 备注:因为需要编译安装 Nodejs 的最新版,如果内存太小的话会安装失败,因此本人只在最低 128MB 的 VPS 上测试过该脚本. 默认配置: 服务器端口:8989 客户端端口:1080 密码:自己设定(如不设定,默认为teddysun.com) 客户端下载: htt

CentOS下shadowsocks一键安装脚本

本脚本适用环境: 系统支持:CentOS/Redhat/Fedora 内存要求:≥64M 日期:2014年2月16日 关于本脚本: 一键安装shadowsocks的Python版本,同时安装了Python包工具pip. 默认配置: 服务器端口:8989 客户端端口:1080 密码:自己设定(如不设定,默认为teddysun.com) 客户端下载: http://sourceforge.net/projects/shadowsocksgui/files/dist/ 使用方法: 使用root用户登录

PHP 7.0.0 一键安装脚本

OSCM (Operation System Configure Management) 是我创建的一个自动化运维脚本的项目,旨在提供敏捷运维.传统自动化运维工具例如  ansible, saltstack,puppet  不够灵活,配置繁琐,很多限制等等.这些工具更适合没有软件开发基础的运维人员.对于从软件工程师转到运维领域的人,这些工具就是鸡肋.  https://github.com/oscm/shell/ 我将常用的运维写成 Shell 片段,根据环境的不同,加以组合使用.由于是shel