통합설치 및 환경설정하기

SEUNGHWANLEE·2021년 2월 14일
0

Mobius Guideline

목록 보기
3/11

통합설치를 위해서 두가지 경로를 준비했습니다.
1. docker image
2. github repository


1. 도커 이미지(docker image) 이용

  • 도커(docker)란 무엇일까?

    도커(docker) 란?

    https://lh5.googleusercontent.com/h9jS5awZ2FsIyi6H_bzrBG8K3kYc5sTTJBmS82No6093-PCyYFhPrHh5lbMbyQRhsWd9onq28fgPA2RUBxw24dkSboSp2q7Z61-nrXUxdE3AyIDxP-vLy5NmUYDxPh-hy_UOYLoB

    도커(docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 도커를 이용하는 이유는 하나의 이미지(image)를 통해서 실행 했을 때, 컨테이너를 자유롭게 사용할 수 있기 때문이다.

    사용할 도커(docker)의 구조는 다음과 같다.

    https://lh5.googleusercontent.com/fmiehcvOs7jtu4WO8w3p9ZWUStfBIZXb1v_ANuHPWf20NQ6zK_rzgOws8fuyvvOI3isHnGVA7mDbhE4wanawvmxzCAcah4zH1D7BQyQtK9gdC5_NG9gdcuaY0NIXfEjsG68vZWi2

    한 이미지(image)안에 ubuntu부터 Mobius와 nCube까지 한번에 실행하도록 설정해둔 image가 있다. 배포된 image를 통해서 기존에 했던 thyme와 Mobius의 통신을 확인할 수 있다.

IoTKETI/Mobius_docker

도커 이미지를 IoTKETI에서도 제공하고 있으니 참고해도 좋을 것 같습니다.

Github repository : seunghwanly/mobius-docker

제 개인적인 git repository에 Dockerfile 과 '개별설치 및 환경설정'에서 설정한 파일들을 업로드 해두었습니다.

Dockerfilemobius-docker/mobius/ 안에 있으며, 해당 내용은 다음과 같습니다.

# 1. ubuntu 설치
FROM       ubuntu:16.04
MAINTAINER seunghwanly@gmail.com

# MySQL
# 2. mysql 설치
ENV DEBIAN_FRONTEND noninteractive
ENV MYSQL_PWD Password789!

RUN apt-get update
RUN echo "mysql-server mysql-server/root_password password $MYSQL_PWD" | debconf-set-selections
RUN echo "mysql-server mysql-server/root_password_again password ${MYSQL_PWD}" | debconf-set-selections
RUN apt-get -y install mysql-server

# 3. mysql import
COPY . /usr/app
RUN /etc/init.d/mysql start && sleep 5 && \
    mysql -u root -e "CREATE DATABASE mobiusdb" && \
    mysql -u root mobiusdb < /usr/app/mobius-2.4.36/mobius/mobiusdb.sql

# 4. mosquitto 설치
RUN apt-get install -y software-properties-common && \
    rm -rf /var/lib/apt/lists/*
RUN apt-add-repository ppa:mosquitto-dev/mosquitto-ppa && \
    apt-get update && \
    apt-get install --yes mosquitto && \
    apt-get install --yes libmosquitto-dev && \
    apt-get install --yes mosquitto-clients && \
    apt clean

# 5. node js 설치
RUN apt-get install --yes curl
RUN curl --silent --location https://deb.nodesource.com/setup_15.x | bash -
RUN apt-get install --yes nodejs
RUN apt-get install --yes build-essential

# 6. Mobius 설치
WORKDIR /usr/app/mobius-2.4.36
RUN npm install

# 7. nCube 설치
WORKDIR /usr/app/nCube-Thyme-Nodejs-2.3.2
RUN npm install

# 8. 서버
EXPOSE 3306
WORKDIR /usr/app
CMD /etc/init.d/mysql start && npm run dev

가상환경은 Linux:Ubuntu 16.04를 사용하였으며, MySQL부터 DB import, mosquitto, node js 그리고 Mobius, nCube를 순차적으로 설치하여 끝에 MySQL을 실행하고 Mobius와 nCube를 한번에 실행합니다.

git repository 안에, mobius-docker/mobius/package.json 파일을 보시면

"scripts": {
    "start": "npm run dev",
    "mobius": "cd mobius-2.4.36 && node mobius.js",
    "thyme": "cd nCube-Thyme-Nodejs-2.3.2 && node thyme.js",
    "mosquitto": "brew services start mosquitto",
    "dev": "concurrently  \"npm run mosquitto\" \"npm run mobius\"  \"npm run thyme\""
  }

이렇게 "scripts" 를 설정하여 동시에 한 터미널(콘솔)에서 총 3가지를 실행시키도록 하였습니다. 원하는 환경대로 임의로 수정하실 수 있습니다.

Docker Hub 이용

이 단계를 진행하기 전 PC에 도커(docker)가 설치되어있는지 확인해주세요!

  • 도커(docker) 버전확인

    docker --version
  • 설치가 안되어있는 경우 !

    설치하러가기

  1. 도커 이미지(docker image) 다운로드

    docker pull seunghwanly/mobius:1.1
  2. 도커 이미지(docker image) 생성 확인

    docker images
  3. 포트 지정 후, 도커(docker) 실행

    docker run -p 8080:7579 seunghwanly/mobius:1.1

도커 이미지(docker image) 실행화면

https://lh5.googleusercontent.com/FKlCCzdxKX39G95RiELabBGo-ymLAptM8ndfnf9nTPWsv56P6s5mp9kCNSmKFFfWs_Yco5IyJXHUSBfB2KiU6DkldQ0VEF0xdKUE5CeEDytU0uHUxUYzKGVELEGV2RzVzu3z-QzH

  • 주황 상자 : mobius와 mosquitto가 연결된 모습, 8080으로 7579를 포워딩한 상태
  • 초록 상자 : POST 방식으로 m2m:ae 생성
  • 분홍 상자 : thyme에서 ae가 생성된 모습, 2001 응답코드(성공)
  • 파랑 상자 : tas init 성공

https://lh6.googleusercontent.com/T9VNGiWW7wfPohgG1f5r4qSSQ8ep2PhrhHQF8hHASCzdmR9p20B9U_yWqLWRIWWlU41KqtOy0-VBZyD2eURkHJw6-x_QeC87lV0KRECeEfrWuVFb-m4u-CRnv8iPcD19vkUm7jCl

  • 파랑 상자 : tas init 성공 후 “hello” 출력하는 모습

Github repository 이용

seunghwanly/mobius-docker

해당 링크로 들어가신 후에 Usage에서 💡 Running the app locally 를 따라서 진행해주시면 됩니다.

  • 미리보기

    💡 Running the app locally

    1. Clone this repository

      git clone https://github.com/seunghwanly/mobius-docker.git
    2. Change directory to mobius

      cd mobius
    3. Get dependencies

      npm install
    4. create conf.json file in mobius-2.4.36

      {
          "csebase": "onem2m",
          "cseid": "/onem2m",
          "csebaseport": "7579",
          "csetype": "in",
          "dbhost": "localhost",
          "dbuser": "root",
          "dbpass": !MySQL PASSWORD!, 
          "dbname": "mobiusdb", 
          "superadm_usr": "superadmin",
          "superadm_pwd": "f7c6c12d",
          "pxymqttport": 7580,
          "pxycoapport": 5683,
          "pxywsport": 7577,
          "tsagentport": 7582,
          "mqttbroker": "localhost",
          "secure": "disable",
          "authorization": true,
          "logDir": "./log"  
       }
    5. import database mysqldb.sql

      mysql -u root -p

      🙋‍♂️ 위에 코드 참고하기

      CREATE DATABASE mobiusdb;
      USE mobiusdb;
      SOURCE "path";  
      SHOW DATABASES; 

      simple import, if database already exist

      mysql -u root -p mobiusdb < ~/mobius-2.4.36/mobius/mobiusdb.sql
    6. Check MySQL running

      mysql.server start
    7. Run concurrently : mobius, nCube, mosquitto

      $ npm run dev

설치를 완료했다면 테스트를 진행해볼까요? 😀

Mobius & Thyme 실행

profile
잡동사니 😁

2개의 댓글

comment-user-thumbnail
2022년 10월 18일

안녕하세요. 혹시 5번에 mysql -u root -p 는 어디서 쳐야하는건가요 docker image 통해서 컨테이너 안에서는 sql 접속이 가능한데 mobius 디렉토리 내에서는 내외부 명령으로 실행할 수 있는 프로그램이 아니라고 하네요..

1개의 답글