1.2 새로 설치하기
이 절에서는 제품을 새로 설치하는 작업을 순서대로 제공합니다.
MDRM 관제서버(GAM, Global Availability Manager)는 Docker 이미지로 배포되므로 쉽게 설치할 수 있습니다. Docker를 사용하면 호스트 운영체제에 상관없이 관제서버를 편하게 설치할 수 있습니다. Docker는 일종의 가상화 환경으로, Docker 엔진은 하이퍼바이저에 해당하며 관제서버가 배포하는 이미지는 템플릿, 컨테이너는 가상머신에 해당합니다.
관제서버의 설치 작업은 Docker 엔진을 설치하는 단계와 관제서버 컨테이너를 실행하는 단계, 이렇게 두 가지 절차로 나뉩니다.
<그림 7> Docker로 설치되는 관제서버 구성도
Docker 엔진을 통해서 제품을 새로 설치하려면 다음 순서대로 작업하십시오.
- 1.1 설치하기 전에 확인하기에서 호스트 운영체제를 확인하십시오. 이 매뉴얼에서는 CentOS 기준으�� 설명합니다.
다음과 같이 “uname –r”을 사용해서 커널 버전을 확인합니다. 위에서 설명한 요구사양에 맞는 커널 버전에 설치할 것을 권장합니다.
$ uname -r 3.10.0-229.el7.x86_64
- Docker 엔진을 설치하여 실행시킵니다. 이는 인터넷을 통한 자동 설치입니다. 먼저, CentOS를 최신으로 업데이트하십시오.
보완을 위한 업데이트이며, 선택적인 작업으로 필수 사항은 아닙니다. - Docker의 저장소를 추가하십시오.
Docker 엔진 패키지를 설치하십시오. 그런 다음 Docker 서비스를 활성화하고 구동시키십시오.
#!/bin/bash# run by 'root' # # Update OS # sudo yum update -y # # Add docker repository # sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF # # Install docker engine # sudo yum install -y docker-engine systemctl enable docker.service systemctl start docker.service
Docker 엔진 설치하기와 실행하기에 대하여
더 상세한 정보는 Docker의 공식 문서를 참조하십시오.
Docker의 기본설정을 구성합니다.
Docker의 “storage-driver” 옵션이 "overlay"이며 Docker의 홈 폴더가 위치해 있는 시스템의 파일이 xfs인 경우
이러한 경우에는 MDRM이 제대로 실행되지 않을 수 있습니다. 그러므로 “storage-driver” 옵션을 다음 순서대로 작업하여 변경하셔야 합니다.
- 먼저 “systemd docker config” 폴더를 생성하십시오.
- 그런 다음 “storage-driver” 옵션을 적용한 “docker config” 파일을 생성하십시오.
- 그리고 나서 config를 적용하고, docker를 재시작하십시오.
예시는 다음과 같습니다.
#!/bin/bash # make docker config directory sudo mkdir -p /etc/systemd/system/docker.service.d # make docker config file sudo tee /etc/systemd/system/docker.service.d/docker.conf <<-'EOF' [Service] ExecStart= ExecStart=/usr/bin/dockerd --storage-driver=devicemapper EOF # reload config and restart docker systemctl daemon-reload systemctl restart docker
위 사항을 확인했다면, Docker의 홈 폴더를 변경하십시오. Docker의 config 파일 스크립트에서 "ExecStart=/usr/bin/dockerd --storage-driver=devicemapper" 부분을 다음과 같이 변경하십시오.
ExecStart=/usr/bin/dockerd -g /opt/docker --storage-driver=devicemapper
위 예시에서, "/opt/docker" 부분에 새로 사용하고 싶은 홈 폴더의 경로를 입력하시면 됩니다.
이제 관제서버 컨테이너를 실행하는 작업을 시작합니다. 먼저 관제서버 이미지를 확인하기 위해서 다운로드한 관제서버 Docker 이미지 파일의 압축을 풀고 이미지를 불러옵니다.
$ gunzip gam.4.5.3.tar.gz $ docker load -i gam.4.5.3.tar
관제서버 이미지를 확인합니다.
$ docker images
그러면 다음과 같은 형태로 관제서버 이미지가 나타나는 것을 확인할 수 있습니다.
컨테이너 실행에 앞서서 볼륨을 매핑합니다. 볼륨 매핑할 디렉터리를 생성하기 위해서 다음과 같이 관제서버의 데이터 볼륨(/gampkgs/data) 영역을 매핑할 호스트의 디렉토리를 생성합니다.
$ mkdir /opt/gam
기본적으로 Docker 컨테이너가 사용하는 공간은 10GB로 정해집니다. 따라서 호스트에 할당된 디스크를 최대한으로 사용하기 위해서는 컨테이너의 볼륨을 호스트 볼륨에 매핑해 주어야 합니다.
컨테이너를 실행합니다. 다음은 Docker 실행하는 명령어의 예시입니다.
docker run --privileged -d -h mccs-ent.mantech.co.kr --name gam -e "GAMLANG=ko" -e "TZ=Asia/Seoul" -p 80:80 -p 443:443 -p 8443:8443 -p 5055:5055 -p 5673:5673 -p 162:162/udp -v /opt/gam/:/gampkgs/data --restart=always gam
http 사용자의 경우
위 예시는 https이며, 기본적으로 https로 작업이 이루어집니다. 다만, http로 작업이 필요한 사용자의 경우라면 구매처에 문의하여 별도의 명령어를 제공 받으셔야 합니다.
컨테이너를 시작할 때 초기 환경 설정에 따라 몇 분 정도의 시간이 걸릴 수 있습니다.
참조 사이트
<GAM_HOSTNAME>은 정식 라이선스 발급 시 사용되며, 추후 변경 시 에이전트를 설치한 노드에서도 수정해야 합니다(예: GAM.MANTECH.CO.KR).
컨테이너를 실행하는 명령어
컨테이너를 실행하는 명령어의 옵션에 대한 정보는 다음 표와 같습니다.
옵션
설명
비고
-h
관제서버 호스트명
노드 호스트 파일(/etc/hosts)에 등록되는 이름
-name
컨테이너 이름
컨테이너 시작과 종료 시 사용
-e
관제서버 환경 변수
• GAMLANG: 관제서버 언어
• TZ: 시간대-p
포트 매핑
• 80: 웹
• 443: 관제서버 웹
• 8443: 배포컴포넌트
• 5673: RabbitMQ
• 163: SNMP
• 5055: 볼륨 라이선스-v
볼륨 매핑
컨테이너 안의 볼륨과 호스트의 볼륨을 매핑시킴
--restart=always
컨테이너 자동 시작
호스트 시스템 시작시 관제서버 컨테이너를 자동으로 시작
<표 9> 관제서버 컨테이너의 실행 옵션
목적에 따라 사용하는 관제서버 컨테이너 관련 명령어들은 다음과 같습니다.
관제서버 컨테이너 중지
$ docker stop gam
관제서버 컨테이너 시작
$ docker start gam
관제서버 컨테이너 접속
$ docker exec -it gam /bin/bash
관제서버 로그 확인
$ docker logs -f gam
관제서버 컨테이너 삭제
$ docker stop gam $ docker rm gam
관제서버 알림 수신 기능
관제서버 알림을 수신하려면, 위 기본 설치 작업 이외에도 XMPP 서버와 그 서버의 클라이언트를 설치하셔야 합니다. 이 작업이 필요하다면 필요한 부분 설치하기의 "알림 수신을 위해 XMPP 설치하기"를 참고하십시오.
설치 작업을 마쳤습니다. 별도의 세부 설정이 필요한 사용자라면 필요한 부분 설치하기를 참고하여 서버제어 에이전트나 기타 알람 관련 설치를 진행하시고, 그렇지 않다면 곧바로 2. <대시보드>제품에 접속하고 로그인하기에서 설명하는 작업을 시작하십시오.