Mattermost Chat 협업 서비스 구축하기

2021. 9. 2. 10:27DevOps

반응형

나만의 Chat 서비스를 네이버 클라우드 플랫폼에 구축하자!!

Mattermost는 Private Cloud 서비스에서 오픈 소스로 구축 후 사용할 수 있는 Chat Service Platform입니다.

 

이번 포스팅에서는 네이버 클라우드 플랫폼에서 제공하는 서버 및 인프라 서비스를 활용하여 나만의 클라우드 메시징 플랫폼을 구축하는 방법을 알아보겠습니다.

 

Mattermost는 Slack과 유사한 기능을 하고 있지만, 아래와 같이 크게 차이점을 나눌 수 있습니다.

 

Slack

- Public Cloud향 Chat Platform

- Slack 서비스를 사용하여 데이터가 Slack 인프라에 저장됨

[figure 1] What is Slack? ( https://slack.com)

Mattermost

- Private Cloud향 Chat Platform

- Private Cloud 인프라 구축 후 사용이 가능하고, 사용자 대화 내용이 Private Data Store에 저장됨

[figure 2] What is Mattermost? ( https://about.mattermost.com/community-applications)

 

Mattermost 라이선스는 크게 아래와 같이 나누어지며, Small Team Edition의 경우 MIT 라이선스로 사용이 가능합니다.

[figure 3] Mattermost 가격 정책
[figure 4] Mattermost 라이선스 별 상세 지원 기능 ( https://about.mattermost.com/features/#featuresCompare)

이번 포스팅에서는 Mattermost Team Edition(Free, MIT Opensource)에 대한 설치 방법을 설명 드립니다.

CentOS 7 버전을 기준으로 설치하는 방법에 대해 알아보겠습니다.

[figure 5] CentOS 버전 및 커널 버전 확인

참고로 아래와 같이 Docker Hub를 통해 Docker 컨테이너에 설치할 수 있는 방법도 제공하고 있습니다.

[figure 6] Docker Hub 이미지 리스트 ( https://hub.docker.com/r/mattermost/platform)

 

네이버 클라우드 플랫폼 서버 생성 및 설정방법은 어떻게 되나요?

 

Mattermost 서비스 구축에 앞서 네이버 클라우드 플랫폼을 활용하여 VM 이미지를 설치하고, 설정하는 방법을 간략하게 설명드리고자 합니다.

 

이미 다른 포스팅에서 단계 별 설치 및 설정 방법을 알려드려서, 상세한 내용은 사용자 가이드와 함께 참고하시면 쉬운 인프라 구성이 가능합니다.

 

- 아래의 VM 이미지 생성 사용자 가이드를 참고하시면 됩니다.

(http://docs.ncloud.com/ko/compute/compute-1-1-v2.html)

[figure 7] 네이버 클라우드 플랫폼 VM 이미지 생성 가이드

 

- Jenkins 연동을 위한 서버 이미지 생성 방법은 아래와 같습니다.

(http://docs.ncloud.com/ko/devtools/devtools-1-1.html)

[figure 8] 네이버 클라우드 플랫폼 Jenkins VM 이미지 생성

 

- MySQL Database 연동을 위한 서버 이미지 생성 방법은 아래와 같습니다.

(http://docs.ncloud.com/ko/database/database-1-1.html)

[figure 9] 네이버 클라우드 플랫폼 MySQL DB VM 이미지 생성

Mattermost 설치 및 설정방법은 어떻게 되나요?

 

위에서 생성된 CentOS 7 서버 이미지를 사용하여 Mattermost 서비스를 설치하고, 활용하는 방법에 대해 간략하게 설명드리고자 합니다.

 

(1) yum clean & update 실행

 

아래와 같이 시스템에서 사용하는 모듈을 최신 버전으로 업데이트 합니다.

 

$ yum clean all
$ yum -y update

[figure 10] yum clean & update

(2) MySQL Database 설치 및 설정

 

위에서 설명드린 MySQL Database VM서버 이미지 생성 방법을 참고하시면 됩니다.

또는 아래와 같은 명령어로 해당 서버에 설치할 수도 있습니다.

 

$ wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

$ yum localinstall mysql57-community-release-el7-9.noarch.rpm

$ sudo yum install mysql-community-server

$ systemctl start mysqld.service

$ chkconfig mysqld on

 

MySQL Secure Configuration을 아래와 같이 진행할 수 있습니다.

 

$ mysql_secure_installation

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

 

(3) Mattermost 연동을 위한 MySQL Database 설정

 

MySQL Database 접속 후 아래와 같은 설정 작업을 진행합니다.

 

(3)-1 MySQL DB “root” 계정 접속

 

$ mysql -u root -p

[figure 11] Mysql Database 접속

(3)-2 Mattermost User 생성 및 설정

 

mysql> CREATE USER 'mmuser'@'localhost' IDENTIFIED BY 'mmuser_strong_password';
mysql> CREATE DATABASE mattermostdb;
mysql> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mmuser'@'localhost';
mysql> FLUSH PRIVILEGES;

mysql> EXIT;

[figure 12] Mysql Database Mattermost User 설정

(4) Mattermost 서버 모듈 다운로드

 

아래의 Download Url을 통해 압축파일을 다운로드 합니다.

$ wget https://releases.mattermost.com/3.6.2/mattermost-3.6.2-linux-amd64.tar.gz

[figure 13] Mattermost 모듈 다운로드

(5) 압축 해제 후 “/opt” 디렉터리로 이동

 

위에서 다운로드 받은 압축파일의 압축을 해제합니다.

 

$ tar xvf mattermost-3.6.2-linux-amd64.tar.gz

 

“/opt/“ 디렉터리로 이동합니다.

 

$ mv mattermost /opt/

 

(6) Mattermost Data Store 디렉터리 생성.

 

$ mkdir /opt/mattermost/data

 

(7) Mattermost 사용자 및 그룹 생성과 디렉터리 권한 설정.

 

“mattermost” 사용자 생성 및 그룹을 생성하고, “/opt/mattermost” 디렉터리 권한을 설정합니다.

 

$ useradd --system --user-group mattermost
$ chown -R mattermost:mattermost /opt/mattermost
$ chmod -R g+w /opt/mattermost

 

(8) Mattermost 데이터 저장을 위한 Configuration 파일 설정

 

“/opt/mattermost/config/config.json” 파일의 내용을 아래와 같이 수정합니다.

[figure 14] Mattermost DB Driver Name, Datasource 변경

(9) Mattermost systemd 파일 생성

 

“/etc/systemd/system/mattermost.service” 파일을 생성하고, 아래와 같이 내용을 작성합니다.

(“vi /etc/systemd/system/mattermost.service” 실행 후 작성)

[figure 15] Mattermost Systemd 파일 생성

(10) 위 파일을 mattermost user가 접근할 수 있도록 권한 수정

 

$ chmod 664 /etc/systemd/system/mattermost.service

 

(11) System Daemon을 Reload

 

$ systemctl daemon-reload

 

(12) Mattermost 서비스 Enable 설정

 

$ chkconfig mattermost on

[figure 16] 10~12 설정 명렁 수행 결과

 

(13) Mattermost 서비스 시작

 

$ systemctl start mattermost

 

(14) Mattermost 디렉터리로 이동 후 데몬 시작

 

$ vi /opt/mattermost/config/config.json (최종 설정 확인)
$ su - mattermost (mattermost 사용자로 변경)
$ cd /opt/mattermost/bin (platform 실행 디렉터리로 이동)
$ ./platform (mattermost platform binary 실행)

[figure 17] Mattermost 서비스 시작 예제

(15) 웹 브라우저를 통해 Mattermost 에 접속

 

기본 포트는 “8065” 포트로 설정되어 있습니다.

네이버 클라우드 플랫폼의 ACG 설정을 통해 기존 ACG에 "8065" 포트를 추가해야 합니다.

[figure 18] Mattermost 서비스 접속 예제

(16) Email, Account 정보 입력

[figure 19] Mattermost 계정 정보 입력

(17) [Create New Team] 선택 후, 아래와 같이 팀 정보 입력

 

“팀이름”을 입력하고, [Next]를 클릭합니다. Tema URL을 확인하고, [Finish]를 클릭합니다.

[figure 20] Mattermost 팀 정보 입력

(18) 아래와 같이 메시지 입력을 할 수 있는 창이 나타나면 기타 옵션을 설정

[figure 21] Mattermost 사이트 접속 후 메시지 입력 예제

 

네이버 클라우드 플랫폼 상품 및 서비스는 어떻게 사용할 수 있나요?

아래와 같이 네이버 클라우드 플랫폼 포털 사이트 및 사용자 가이드를 참고하시면 쉽게 사용하실 수 있습니다.

 

- 네이버 클라우드 플랫폼 포털 : https://www.ncloud.com

- 네이버 클라우드 플랫폼 사용자 가이드 : http://docs.ncloud.com/ko

- MySQS Database 상품 가이드 : http://docs.ncloud.com/ko/database/database-1-1.html

 

 

글을 마무리 하며...

네이버 클라우드 플랫폼의 서버 및 MySQL Database 설치형 상품 및 서비스를 활용하여, Private Cloud에 설치가 가능한 오픈소스 Chat Platform 중 하나인 Mattermost Chat Platform을 구축하는 방법을 알아보았습니다.

 

네이버 클라우드 플랫폼의 인프라 서비스와 플랫폼을 활용하여 쉽게 빠르게 나만의 Chat Platform 서비스를 구축하여, 팀 및 개인 프로젝트에 활용해 볼 수 있지 않을까 기대해 봅니다.

 

끝까지 읽어 주셔서 감사합니다.

 

반응형