ODL(OpenDayLight) 기본 튜토리얼 #7_2 – ODL Clustering 소스 배포

이번에는 앞서 구축한 3개의 docker instance에 소스를 배포하고 기동하는 방법이다.

테스트 소스는 coretutorials/clustering 하위에 있는 singletonsimple 으로 하겠다.

먼저 singletonsimple 을 빌드를 해야 하는데 singletonsimple-impl 를 빌드하다 문제가 발생했었다.

  • [ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce

위와 같은 에러였는데 singletonsimple-impl/pom.xml 파일에 parent 버전정보를 불러오는 곳이 있는데 기존에 있던 1.8.0-SNAPSHOT 해당 버전이 존재하지 않아 발생한것 같다. 이부분을 Boron 버전중에 하나로 설정해주면 된다. 필자는 0.5.2-Boron-SR2 버전을 사용하였다.

빌드를 완료했으면 각 instance로 배포를 해야 한다. 문서에 나와 있는 ansible을 이용하여 배포해보도록 하겠다.

ansible을 이용하기전에 한가지 작업해줄게 있다.

  • docker로 띄운 3개의 instance에 /opt/scripts/ 폴더를 생성하고 coretutorials/clustering/node/install_odl.sh, configure-cluster-ipdetect.sh 파일을 복사해주어야 한다.

ansible 설치 방법은 구글을 참조하길 바란다.

  • ansible로 소스 배포하기_ docker-Host $ cd coretutorials/clustering/scripts/ansible docker-Host $ ansible-playbook -i hosts playbook.yaml

playbook.yaml 파일내용을 약간 수정을 해줘야 하는데 파일을 열어보면

  • distro_name: singletonsimple-karaf-0.1.0-SNAPSHOT.zip local_path: /Users/jmedved/Documents/ODL/Git/coretutorials/clustering/singletonsimple/karaf/target

위 두줄이 있는데 distro_name 부분에 자신이 배포하고 싶은 소스명을 적고 local_path 부분에 해당 소스가 있는 경로를 적어주면 된다. 배포되는 소스는 zip 으로 압축된것을 보낸다.

수동으로 배포하는 방법도 알아보자

singletonsimple을 빌드하면 singletonsimple/karaf/target 하위에 컴파일된 파일들이 있는데 .zip 으로 된 파일을 docker instance 들에게 ftp등을 이용하여 전송하면된다.\

전송한뒤에는 앞서 옮긴 install_odl.sh 파일을 이용하여 cluster 셋팅을 해주어야 한다.

1
member 1~3 # /opt/scripts/install_odl.sh -d [컴파일된 소스가 저장될 경로] – i [Zip 파일명] -p [Zip 파일 경로] -c [클러스터를 형성할 3개의 instance들의 IP] EX.) > member 1~3 # /opt/scripts/install_odl.sh -d /opt/odl – i example-karaf-0.1.0-SNAPSHOT.zip -p . -c ‘172.17.0.2 172.17.0.3 172.17.0.4’

configure-cluster-ipdetect.sh 파일을 열어보면 zip/configuration에 initial폴더를 생성하고 akka.conf , module-shards.conf , modules.conf 3개의 파일을 생성하는데 akka.conf 파일에 cluster를 형성할 instance들의 ip 정보가 담겨져 있다.

ODL Cluster구성은 akka framework를 이용해서 구성을 하는듯 하다.

akka 설정을 통해 cluster node를 설정할 수 있고 손쉽게 여러개의 cluster node 구현이 가능하다.

Multiple Node Clustering 공식 문서

공유하기