티스토리 뷰

Software/Tips

ONOS 설치 방법

coart 2016. 1. 15. 23:18

설치 환경

맥북을 개발 환경, 윈도우에 VirtualBOX를 이용해 VM을 생성하고, ONOS  컨트롤러, OVS, 그리고 mininet등을 설치하여 사용 예정

VM의 운영체제는 Ubuntu를 사용할 예정

Mac에서 로컬로 돌린다면 15번까지만 하고, 17번을 이용해서 실행하면된다. 이게 젤 빠르고 편하다.

개발을 한다면 수정된 모듈로 가서 mci하면 전체 빌드를 다시 할 필요 없이 적용된다. 


ONOS 설치 튜토리얼

https://wiki.onosproject.org/display/ONOS/ONOS+from+Scratch#ONOSfromScratch-OntheBuildmachine


1. VirtualBox 설치, VirtualBox에 VM을 만들고 Ubuntu 설치

VirtualBox 환경설정에서, VM에 2개의 Network interface 생성 (NAT, Host Only)


각각의 인터페이스는 eth0, eth1에 해당. 

eth0 - 외부 인터넷을 위해 사용

eth1 - 각 VM의 연결을 위해 사용


2. 네트워크 인터페이스 설정

NAT로 설정된 eth0는 자동으로 설정되지만, eth1은 수동으로 설정해줘야함.

/etc/network/interfaces 파일에 다음 내용 추가.


auto eth1

iface eth1 inet static 

address 192.168.56.101 

gateway 192.168.56.1 

netmask 255.255.255.0 

network 192.168.56.0 

broadcast 192.168.56.255


네트워크 서비스 재시작

sudo /etc/init.d/networking restart


Ifconfig를 통해 eth0과 eth1이 정상적으로 작동하는지 확인


기존 package들 업데이트

sudo apt-update 


2. 생성된 VM 사용자 계정생성

sudo adduser

ID/passwd : sdn/rocks

id와user를 다르게 세팅 시, 나중에 환경변수에서 수정해줘야 한다. 


3. 생성된 사용자에게 sudo 권한 주기 

sudo visudo


sdn 유저 권한 추가를 위해 아래 구문 삽입

sdn ALL=(ALL) NOPASSWD:ALL


4. SSH 로그인시 passwd 필요 없도록 하기 (선택사항)

이 과정은 생략가능, 이후에 ONOS 설치 후 onos-push-keys 명령어를 통해 동일하게 설정가능. (14번 항목 참조)


rsa key 생성

ssh-keygen –t rsa


rsa key 복사

ssh-copy-id sdn@192.168.56.101 


5. Git 설치 (이후 내용 모두 sdn 계정으로 접속하여 진행)

sudo apt-get install git-core


6.  Karaf 3.0.3과 Maven 3.3.9 설치

cd; mkdir Downloads Applications

cd Downloads

wget http://archive.apache.org/dist/karaf/3.0.3/apache-karaf-3.0.3.tar.gz

wget http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar -zxvf apache-karaf-3.0.3.tar.gz -C ../Applications/

tar -zxvf apache-maven-3.3.9-bin.tar.gz -C ../Applications/ 

바이너리 파일이므로 추가적인 설치 과정 불필요.


7. JAVA8 설치

sudo apt-get install software-properties-common -y

sudo add-apt-repository ppa:webupd8team/java -y

sudo apt-get update

sudo apt-get install oracle-java8-installer oracle-java8-set-default -y


8. ONOS  소스 다운 받기

git clone https://gerrit.onosproject.org/onos

 sdn 사용자의 홈폴더에서 진행 할것. 

현재 최신 버전으로 나와있는 1.5.0은 제대로 설치가 안되는것 같아. 1.3.0을 사용하기로 함. 

cd ~/onos

git checkout 1.3.0


9. 환경변수 설정

환경변수는 위의 설치 위치가 다르다면 ~/onos/tools/dev/bash_profile를 수정할것. 

sdn 로그인시 마다, 자동으로 환경변수들을 추가하기 위해 ~/.profile에 아래내용 추가. (.bashrc, .bash_aliases도 가능)

. ~/onos/tools/dev/bash_profile


export 명령 시 다음과 같이 ONOS관련 환경 변수, karaf 위치, JAVA_HOME등이 정상적으로 설정되었는지 확인할 것. 

declare -x MAVEN="/home/sdn/Applications/apache-maven-3.3.9"

declare -x OC1="192.168.56.101"

declare -x OC2="192.168.56.102"

declare -x OCI="192.168.56.101"

declare -x OCN="192.168.56.103"

declare -x OLDPWD

declare -x ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"

declare -x ONOS_CELL="local"

declare -x ONOS_INSTANCES="192.168.56.101

192.168.56.102"

declare -x ONOS_NIC="192.168.56.*"

declare -x ONOS_ROOT="/home/sdn/onos"

declare -x ONOS_SCENARIOS="/home/sdn/onos/tools/test/scenarios"

declare -x ONOS_USER="sdn"

declare -x ONOS_WEB_PASS="rocks"

declare -x ONOS_WEB_USER="onos"

declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/sdn/onos/tools/dev/bin:/home/sdn/onos/tools/test/bin:/home/sdn/onos/tools/test/scenarios/bin:/home/sdn/onos/tools/build:/home/sdn/Applications/apache-maven-3.3.9/bin:/home/sdn/Applications/apache-karaf-3.0.3/bin"


10. Apache Karaf 설정하기

이과정은 onos-karaf 명령을 치면 자동으로 된다. 그냥 넘어가길. 


Karaf에서 ONOS feature들을 인식하게 하기 위해 필요. 

~/Applications/apache-karaf-3.0.3/etc/org.apache.karaf.features.cfg 파일의 featuresRepositories에 아래 내용 추가. 

mvn:org.onosproject/onos-features/1.5.0-SNAPSHOT/xml/features


튜토리얼에는 나와있지 않지만, onos-branding을 karaf에 추가해야 로고가 보인다. 

cp ~/onos/tools/package/branding/target/onos-branding-1.5.0-SNAPSHOT.jar ~/Applications/apache-karaf-3.0.3/lib/


제대로 설정 되었다면 아래와 같은 형태가 될것임.

featuresRepositories=mvn:org.apache.karaf.features/standard/3.0.3/xml/features,mvn:org.apache.karaf.features/enterprise/3.0.3/xml/features,mvn:org.ops4j.pax.web/pax-web-features/3.1.4/xml/features,mvn:org.apache.karaf.features/spring/3.0.3/xml/features,mvn:org.onosproject/onos-features/1.5.0-SNAPSHOT/xml/features


11. ONOS 빌드하기

mvn clean install 대신 mci명령어로 대체 가능.

이 과정은 처음에 수행할 경우, 의존성이 있는 패키지들을 다운받아야 하므로 시간이 오래 걸림. 

cd ~/onos

mvn clean install


빌드 과정 중, java.lang.OutOfMemoryError: Java heap space 발생할 경우. 

~/onos/tools/dev/bash_profile에 아래 변수 추가. 

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"


업데이트된 환경변수는 자동적용되지 않으므로, shell에 다시 접속하거나 아래 명령으로 환경변수 갱신. 

source ~/.profile 


12. ONOS 설정하기

ONOS에서 내부적으로 사용되는 변수들의 집합을 cell으로 표현함.

Cell의 샘플들은   ${ONOS_ROOT}/tools/test/cells/ 에서 확인 할 수 있음.

tutorial이라는 파일을 생성 후, 아래 내용 작성.


# ONOS from Scratch tutorial cell

 

# the address of the VM to install the package onto

export OC1="192.168.56.101"

 

# the default address used by ONOS utilities when none are supplied

export OCI="192.168.56.101"

 

# the ONOS apps to load at startup

export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"

 

# the Mininet VM (if you have one)

export OCN="192.168.56.102"

 

# pattern to specify which address to use for inter-ONOS node communication (not used with single-instance core)

export ONOS_NIC="192.168.56.*"

 

13. Cell 적용하기 

cell은 ONOS에서 제공하는 명령임. 12에서 작성한 tutorial 파일을 읽어서 적용함.

cell tutorial


14. SSH 환경 설정

password 없이 ssh를 통한 VM 접속. 

rsa key 생성.

ssh-keygen –t rsa


비밀번호는 sdn 계정의 비밀번호와 동일.

onos-push-keys 192.168.56.101


15. ONOS package 생성
onos-package
생성된 onos-package는 /tmp에 위치한다.

16. ONOS 배포
싱글 머신에서 사용할 경우 15과정까지만 하면, 된다. 16번 이후는 분산 컨트롤러 또는 원격에서 배포하는 과정임.
이거 해서 삽질했다...ㅡㅜ
12번 항목에서 작성한 OC1  노드에 onos를 설치. 
MAC의 경우 -fn 옵션을 사용할 것. 
onos-install -f $OC1


sudo: start: command not found 에러 발생시,  upstart가 없는 것이므로 설치해준다. 

sudo apt-get install upstart

sudo apt-get install upstart-sysv

sudo dpkg-divert --local --rename --add /sbin/initctl

ln -s /bin/true /sbin/initctl



17. ONOS CLI 환경 접속하기

onos-karaf clean

CLI에서 나가는 방법은 Ctrl+D임. 


web의 경우 아이디와 비밀번호 기본은 karaf/karaf로 되어 있다. 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30