1.2 새로 설치하기
이 절에서는 제품을 새로 설치하는 작업을 순서대로 제공합니다.
MCCS Enterprise 관제서버(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> 관제서버 컨테이너의 실행 옵션3.2.3 관제서버 컨테이너 제어 명령어
목적에 따라 사용하는 관제서버 컨테이너 관련 명령어들은 다음과 같습니다.
관제서버 컨테이너 중지
$ docker stop gam
관제서버 컨테이너 시작
$ docker start gam
관제서버 컨테이너 접속
$ docker exec -it gam /bin/bash
관제서버 로그 확인
$ docker logs -f gam
관제서버 컨테이너 삭제
$ docker stop gam $ docker rm gam
- 이제 관제서버 알림을 수신하기 위해 XMPP 서버와 그 서버의 클라이언트를 설치하는 작업을 시작합니다. Openfire를 사용하려면 관리콘솔(9090) 포트와 클라이언트 통신(5222) 포트를 오픈해야 합니다. Openfire는 Docker 이미지로 제공합니다.
다음 명령어를 사용하여 Openfire 컨테이너를 실행하십시오.
gunzip openfire.tar.gz docker load -i openfire.tar docker run --privileged -d -h openfire --name openfire -p 9090:9090 -p 5222:5222 --volume /srv/docker/openfire:/var/lib/openfire --restart=always openfire:latest
- Openfire 기본설정을 진행합니다. http://<Openfire Host>:9090으로 접속하면 설정화면이 나타납니다.
- 언어를 고르는 화면에서 "English"를 선택하십시오.
- 그런 다음 기본 설정 값을 유지하도록 합니다.
- 다음에 나타난 화면에서 "Embedded Database"를 선택하십시오.
- 이어서 나타난 설정에서 "Default"를 선택하십시오.
- 비밀번호를 설정하십시오.
관리자 비밀번호를 입력한 후에 [Continue] 버튼을 클릭하십시오.
주의!
비밀번호를 입력하고 있는 과정에서 키보드의 [Enter] 키를 누르면, 관리자 콘솔 화면에 로그인할 수 없는 경우가 발생합니다.
관리자 콘솔에 접속하고, 설정한 관리자 아이디와 비밀번호를 사용하여 로그인하십시오.
http://<Openfire Host>:9090
관리자 계정으로 로그인이 안 된다면 Openfire 컨테이너를 삭제하고 재설치하셔야 합니다.- 다음으로는 XMPP 클라이언트인 Spark를 설치합니다. 먼저 계정을 생성해야 하는데, 계정을 생성하는 방법은 Spark를 사용하는 방법과 Openfire 콘솔을 사용하는 방법 두 가지입니다. 이 매뉴얼에서는 Spark를 사용하는 방법부터 설명하고 Openfire 콘솔을 사용하는 방법을 설명합니다. Spark로 생성하려면 순서23과 24를 참고하시고, Openfire로 생성하려면 순서 25부터 참고하십시오.
- Spark를 통해 계정을 생성하려면, Spark의 "계정 생성"을 클릭하십시오.
- 계정을 생성하기 위해 필요한 사항들을 입력하십시오.
"사용자명(U):" 항목에는 관제 서버에서 사용하는 아이디를 입력하고, "서버(S):" 항목에는 Openfire 호스트를 입력합니다. - Openfire 콘솔을 통해 계정을 생성하려면, “http://<Openfire Host>:9090”으로 접속한 다음 "Users/Groups"를 클릭하십시오.
- 좌측에 서브 메뉴가 나타나면 "Create New User"를 클릭하십시오.
- 관련사항들을 입력한 후에 [Create User] 버튼을 클릭하여 계정을 생성하십시오.
이때 "Username:" 항목에는 관제 서버에서 사용하는 아이디를 입력하십시오. 이제 계정 생성을 완료하였습니다. - 생성한 계정으로 로그인하십시오.
- "서버(S)" 항목에는 Openfire 서버 주소를 입력하십시오.이제 로그인을 완료하였습니다.
- 관제 서버에서 알림을 수신하는 경우, 메시지 팝업창이 화면 가장 상단에 나타나도록 설정합니다. "File"을 선택하여 환경 설정을 클릭하십시오.
- 나타난 화면에서, "알림" 탭을 선택한 후 "팝업으로 보기"와 "윈도우를 앞으로 보내기" 항목을 활성화하십시오. 그런 다음에 [적용] 버튼을 클릭하십시오.
설치 작업을 마쳤습니다. 별도의 세부 설정이 필요한 사용자라면 필요한 부분 설치하기를 참고하여 서버제어 에이전트나 기타 알람 관련 설치를 진행하시고, 그렇지 않다면 곧바로 2. <대시보드>제품에 접속하고 로그인하기에서 설명하는 작업을 시작하십시오.