- Prerequisites
- 시작하기
- Mattermost 구성
- HTTPS로 GitLab Mattermost 실행하기
- 외부 PostgreSQL 서비스로 GitLab Mattermost 실행하기
- 별도 서버에서 GitLab Mattermost 실행하기
- GitLab Mattermost를 매뉴얼(재)인증하기
- 숫자 사용자 및 그룹 식별자 지정
- 사용자 지정 환경 변수 설정
- 번들된 PostgreSQL 데이터베이스에 연결
- GitLab Mattermost 백업
- GitLab Mattermost 복원
- Mattermost 명령줄 도구 (CLI)
- GitLab 및 Mattermost 통합 구성
- 이메일 알림
- GitLab Mattermost 업그레이드
- OAuth 2.0 순서도
- 커뮤니티 지원 자료
GitLab Mattermost
당신의 GitLab 서버에서 GitLab Mattermost 서비스를 실행할 수 있습니다. Mattermost는 GitLab의 일부가 아닙니다. Mattermost와 GitLab의 통합이 잘 되어 있으며, Linux 패키지를 통해 설치할 수 있습니다. 그러나 Mattermost는 독립적인 회사의 별도 응용 프로그램입니다. GitLab 지원팀은 GitLab과의 통합을 넘어서는 Mattermost에 관한 질문에 대해 도와드릴 수 없습니다. Mattermost 자체에 도움이 필요한 경우 커뮤니티 지원 리소스를 참조하십시오.
Prerequisites
GitLab Mattermost의 각 릴리스는 Linux용 AMD 64 칩셋에서 컴파일 및 매뉴얼 테스트됩니다. ARM 칩셋 및 Raspberry Pi와 같은 운영 체제는 지원되지 않습니다.
시작하기
GitLab Mattermost는 기본적으로 비활성화되어 있습니다. 활성화하려면 다음 단계를 따르십시오:
-
/etc/gitlab/gitlab.rb
를 편집하고 Mattermost 외부 URL을 추가합니다:mattermost_external_url 'https://mattermost.example.com'
-
GitLab을 다시 구성합니다:
sudo gitlab-ctl reconfigure
-
GitLab Mattermost가
https://mattermost.example.com
에서 접근 가능하고 GitLab에 연결되어 있는지 확인합니다. Mattermost를 GitLab의 SSO 공급자로 사용하도록 인증하는 것을 의미합니다.
Linux 패키지는 두 응용 프로그램이 동일한 서버에서 실행 중인 경우 GitLab Mattermost를 자동으로 GitLab으로 인증하려고 합니다.
자동 인증은 GitLab 데이터베이스에 액세스 권한이 필요합니다. GitLab 데이터베이스에 액세스할 수 없는 경우 GitLab Mattermost를 인증하기 위한 프로세스를 매뉴얼으로 수행해야 합니다.
Mattermost 구성
Mattermost는 Mattermost 시스템 콘솔을 사용하여 구성할 수 있습니다. Mattermost 설정의 상세 디렉터리 및 설정이 가능한 위치는 Mattermost 문서에서 확인할 수 있습니다.
시스템 콘솔을 사용하는 것이 좋지만, Mattermost 설정은 다음 중 하나를 사용하여 구성할 수도 있습니다:
-
/var/opt/gitlab/mattermost/config.json
을 직접 편집합니다. -
gitlab.rb
의mattermost['env']
설정을 변경하여 Mattermost 실행에 사용되는 환경 변수를 지정합니다. 이 방법으로 설정된 모든 설정은 시스템 콘솔에서 비활성화되며 Mattermost를 다시 시작하지 않고는 변경할 수 없습니다.
HTTPS로 GitLab Mattermost 실행하기
SSL 인증서 및 SSL 인증서 키를 /etc/gitlab/ssl
에 위치시킵니다. 해당 디렉터리가 없는 경우 다음을 수행합니다:
sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl
sudo cp mattermost.gitlab.example.key mattermost.gitlab.example.crt /etc/gitlab/ssl/
/etc/gitlab/gitlab.rb
에서 다음 구성을 지정합니다:
mattermost_external_url 'https://mattermost.gitlab.example'
mattermost_nginx['redirect_http_to_https'] = true
인증서 및 키를 mattermost.gitlab.example.crt
및 mattermost.gitlab.example.key
로 명명하지 않은 경우 다음과 같이 전체 경로도 추가해야 합니다.
mattermost_nginx['ssl_certificate'] = "/etc/gitlab/ssl/mattermost-nginx.crt"
mattermost_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/mattermost-nginx.key"
여기서 mattermost-nginx.crt
는 SSL 인증서이고 mattermost-nginx.key
는 SSL 키입니다.
구성이 완료되면 변경 사항을 적용하려면 sudo gitlab-ctl reconfigure
를 실행합니다.
외부 PostgreSQL 서비스로 GitLab Mattermost 실행하기
기본적으로 Mattermost는 Linux 패키지에 번들된 PostgreSQL 서비스를 사용합니다. Mattermost를 외부 PostgreSQL 서비스와 함께 사용하려면 해당 서비스에 대한 별도 구성이 필요합니다. GitLab에서 사용하는 기존 외부 PostgreSQL 연결 구성은 자동으로 Mattermost에 상속되지 않습니다.
-
/etc/gitlab/gitlab.rb
를 편집하고 다음 구성을 지정합니다:mattermost['sql_driver_name'] = 'postgres' mattermost['sql_data_source'] = "user=gitlab_mattermost host=<hostname-of-postgresql-service> port=5432 sslmode=required dbname=<mattermost_production> password=<user-password>"
-
mattermost['sql_data_source']
에서 정의한user
값과password
값을 일치시키는 PostgreSQL 사용자를 생성합니다. - 사용한
dbname
값과 일치하는 PostgreSQL 데이터베이스를 생성합니다. -
user
가dbname
을 사용하여 생성한 데이터베이스에 대한 권한이 있는지 확인합니다.
구성을 완료하려면 변경 사항을 적용하고 Mattermost를 다시 시작하려면 다음을 실행합니다:
sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart mattermost
별도 서버에서 GitLab Mattermost 실행하기
GitLab과 GitLab Mattermost를 두 개의 별도 서버에서 실행하려면 GitLab 서비스는 GitLab Mattermost 서버에 설정되지만 사용자 요청을 수락하거나 시스템 리소스를 사용하지 않습니다. GitLab Mattermost 서버의 다음 설정 및 구성 세부 정보를 사용하여 Linux 패키지에 번들된 GitLab 서비스를 비활성화할 수 있습니다.
mattermost_external_url 'http://mattermost.example.com'
# GitLab 서비스를 Mattermost 서버에서 중지합니다.
gitlab_rails['enable'] = false
redis['enable'] = false
postgres_exporter['enable'] = false
grafana['enable'] = false
그런 다음 GitLab Mattermost를 인증하는 적절한 단계를 따릅니다. 마지막으로 GitLab과의 통합을 가능하게 하려면 GitLab 서버에 다음을 추가합니다:
gitlab_rails['mattermost_host'] = "http://mattermost.example.com"
기본적으로 GitLab Mattermost는 모든 사용자가 GitLab으로 가입하고 이메일로 가입을 비활성화합니다. Mattermost에서 GitLab SSO에 관한 문서를 참조하십시오.
GitLab Mattermost를 매뉴얼(재)인증하기
GitLab Mattermost 다시 인증하기
GitLab Mattermost를 다시 인증하려면 먼저 기존 인증을 취소해야 합니다. 이는 GitLab의 설정 > 응용 프로그램 영역에서 수행할 수 있습니다. 그런 다음 아래 단계를 따라 인증을 완료합니다.
GitLab Mattermost 인증하기
GitLab의 설정 > 응용 프로그램 영역으로 이동합니다. 새 응용 프로그램을 만들고 리디렉션 URI에 다음을 사용합니다(HTTPS를 사용하는 경우 http
를 https
로 대체합니다):
http://mattermost.example.com/signup/gitlab/complete
http://mattermost.example.com/login/gitlab/complete
신뢰할 수 있는 설정과 기밀 설정을 선택합니다. 스코프에서 read_user
를 선택합니다. 그런 다음 응용 프로그램 저장을 선택합니다.
응용 프로그램을 만들면 응용 프로그램 ID 및 시크릿이 제공됩니다. 다른 필요한 정보 하나는 GitLab 인스턴스의 URL입니다.
GitLab Mattermost를 실행하는 서버로 돌아가서 위에서 받은 값을 사용하여 /etc/gitlab/gitlab.rb
구성 파일을 다음과 같이 편집합니다:
mattermost['gitlab_enable'] = true
mattermost['gitlab_id'] = "12345656"
mattermost['gitlab_secret'] = "123456789"
mattermost['gitlab_scope'] = "read_user"
mattermost['gitlab_auth_endpoint'] = "http://gitlab.example.com/oauth/authorize"
mattermost['gitlab_token_endpoint'] = "http://gitlab.example.com/oauth/token"
mattermost['gitlab_user_api_endpoint'] = "http://gitlab.example.com/api/v4/user"
변경 사항을 저장한 후 sudo gitlab-ctl reconfigure
을 실행합니다. 오류가 없다면 GitLab 및 GitLab Mattermost가 올바르게 구성됩니다.
숫자 사용자 및 그룹 식별자 지정
Linux 패키지는 사용자 및 그룹 mattermost
를 생성합니다. 이러한 사용자의 숫자 식별자를 다음과 같이 /etc/gitlab/gitlab.rb
에 지정할 수 있습니다.
mattermost['uid'] = 1234
mattermost['gid'] = 1234
변경 사항을 적용하려면 sudo gitlab-ctl reconfigure
를 실행하세요.
사용자 지정 환경 변수 설정
필요한 경우 Mattermost에서 사용할 사용자 지정 환경 변수를 /etc/gitlab/gitlab.rb
를 통해 설정할 수 있습니다. 이것은 Mattermost 서버가 기업 인터넷 프록시 뒤에서 작동하는 경우 유용할 수 있습니다. /etc/gitlab/gitlab.rb
에 해시 값이 있는 mattermost['env']
를 제공하세요. 예를 들면:
mattermost['env'] = {"HTTP_PROXY" => "my_proxy", "HTTPS_PROXY" => "my_proxy", "NO_PROXY" => "my_no_proxy"}
변경 사항을 적용하려면 sudo gitlab-ctl reconfigure
를 실행하세요.
번들된 PostgreSQL 데이터베이스에 연결
번들된 PostgreSQL 데이터베이스에 연결해야 하는 경우 기본 Linux 패키지 데이터베이스 구성을 사용하는 경우 PostgreSQL 수퍼사용자로 연결할 수 있습니다.
sudo gitlab-psql -d mattermost_production
GitLab Mattermost 백업
GitLab Mattermost는 일반 Linux 패키지 백업 Rake 작업에 포함되어 있지 않습니다.
표준 Mattermost 백업 및 재해 복구 문서는 무엇을 백업해야 하는지에 대한 가이드로 사용할 수 있습니다.
번들된 PostgreSQL 데이터베이스 백업
번들된 PostgreSQL 데이터베이스를 백업해야 하는 경우 기본 Linux 패키지 데이터베이스 구성을 사용하는 경우 다음 명령을 사용하여 백업할 수 있습니다.
sudo -i -u gitlab-psql -- /opt/gitlab/embedded/bin/pg_dump -h /var/opt/gitlab/postgresql mattermost_production | gzip > mattermost_dbdump_$(date --rfc-3339=date).sql.gz
data
디렉터리와 config.json
백업
Mattermost는 또한 백업해야 하는 data
디렉터리와 config.json
파일이 있습니다.
sudo tar -zcvf mattermost_data_$(date --rfc-3339=date).gz -C /var/opt/gitlab/mattermost data config.json
GitLab Mattermost 복원
이전에 GitLab Mattermost를 백업했으면 다음 명령을 실행하여 복원할 수 있습니다.
# 데이터베이스 연결을 끊지 않도록 Mattermost를 중지합니다
sudo gitlab-ctl stop mattermost
# Mattermost 데이터베이스 삭제
sudo -u gitlab-psql /opt/gitlab/embedded/bin/dropdb -U gitlab-psql -h /var/opt/gitlab/postgresql -p 5432 mattermost_production
# Mattermost 데이터베이스 생성
sudo -u gitlab-psql /opt/gitlab/embedded/bin/createdb -U gitlab-psql -h /var/opt/gitlab/postgresql -p 5432 mattermost_production
# 데이터베이스 복원 실행
# /tmp/mattermost_dbdump_2021-08-05.sql.gz를 복원 파일로 대체하세요
sudo -u mattermost sh -c "zcat /tmp/mattermost_dbdump_2021-08-05.sql.gz | /opt/gitlab/embedded/bin/psql -U gitlab_mattermost -h /var/opt/gitlab/postgresql -p 5432 mattermost_production"
# 데이터 디렉터리와 config.json 복원
# /tmp/mattermost_data_2021-08-09.gz를 백업 파일로 대체하세요
sudo tar -xzvf /tmp/mattermost_data_2021-08-09.gz -C /var/opt/gitlab/mattermost
# 권한 수정이 필요한 경우 수정하세요
sudo chown -R mattermost:mattermost /var/opt/gitlab/mattermost/data
sudo chown mattermost:mattermost /var/opt/gitlab/mattermost/config.json
# Mattermost 시작
sudo gitlab-ctl start mattermost
Mattermost 명령줄 도구 (CLI)
mmctl
은 Mattermost 서버를 위한 CLI 도구로 로컬에 설치되어 있으며 Mattermost API를 사용하지만 원격으로도 사용할 수 있습니다. Mattermost를 로컬 연결로 구성하거나 로컬 로그인 자격 증명으로 관리자로 인증해야 합니다 (GitLab SSO를 통한 인증이 아님). 실행 파일은 /opt/gitlab/embedded/bin/mmctl
에 위치해 있습니다.
로컬 연결을 통해 mmctl
사용
로컬 연결에 대해, mmctl
바이너리와 Mattermost는 동일한 서버에서 실행되어야 합니다. 로컬 소켓을 활성화하려면:
-
/var/opt/gitlab/mattermost/config.json
을 편집하고 다음 라인을 추가하세요:{ "ServiceSettings": { ... "EnableLocalMode": true, "LocalModeSocketLocation": "/var/tmp/mattermost_local.socket", ... } }
-
Mattermost를 재시작하세요:
sudo gitlab-ctl restart mattermost
그런 다음, sudo /opt/gitlab/embedded/bin/mmctl --local
를 실행하여 로컬 인스턴스에서 mmctl
명령을 실행할 수 있습니다.
예를 들어, 사용자 디렉터리을 표시하려면:
$ sudo /opt/gitlab/embedded/bin/mmctl --local user list
13dzo5bmg7fu8rdox347hbfxde: appsbot (appsbot@localhost)
tbnkwjdug3dejcoddboo4yuomr: boards (boards@localhost)
wd3g5zpepjgbfjgpdjaas7yj6a: feedbackbot (feedbackbot@localhost)
8d3zzgpurp85zgf1q88pef73eo: playbooks (playbooks@localhost)
로컬 인스턴스에 4명의 사용자가 있습니다
원격 연결을 통해 mmctl
사용
원격 연결이나 소켓을 사용할 수 없는 로컬 연결의 경우, SSO 사용자가 아닌 관리자 권한을 가진 비-SSO 사용자를 만들고 해당 사용자로 mmctl
을 인증할 수 있습니다.
$ /opt/gitlab/embedded/bin/mmctl auth login http://mattermost.example.com
Connection name: test
Username: local-user
Password:
credentials for "test": "local-user@http://mattermost.example.com" 저장됨
GitLab 및 Mattermost 통합 구성
Mattermost를 구독하여 이슈, Merge Request 및 풀 요청에 대한 알림, Merge Request 리뷰, 읽지 않은 메시지 및 작업 할당과 관련된 개인 알림을 받도록 만들 수 있는 플러그인을 사용할 수 있습니다. 슬래시 명령을 사용하여 이슈 생성 및 보기, 또는 배포 트리거와 같은 작업 수행을 원하는 경우 GitLab의 Mattermost 슬래시 명령을 사용하세요.
플러그인 및 슬래시 몤령을 함께 또는 개별적으로 사용할 수 있습니다.
이메일 알림
GitLab Mattermost를 위한 SMTP 설정
이러한 설정은 시스템 관리자에 의해 Mattermost 시스템 콘솔의 Environment > SMTP 탭에서 구성됩니다. 해당하는 설정에 대해 SMTP 제공업체에서 제공하는 SMTP 자격 증명이나 sendmail
을 사용하기 위해 127.0.0.1
및 포트 25
를 입력할 수 있습니다. 필요한 구체적인 설정에 대한 자세한 내용은 Mattermost 문서에서 확인할 수 있습니다.
이러한 설정은 /var/opt/gitlab/mattermost/config.json
에서도 구성할 수 있습니다.
이메일 배치 처리
이 기능을 활성화하면 사용자가 이메일 알림을 얼마나 자주 받을지 제어할 수 있습니다.
이메일 배치 처리를 Mattermost 시스템 콘솔에서 Environment > SMTP 탭으로 이동하여 이메일 배치 처리 활성화 설정을 True로 설정할 수 있습니다.
이러한 설정은 /var/opt/gitlab/mattermost/config.json
에서도 구성할 수 있습니다.
GitLab Mattermost 업그레이드
GitLab Mattermost는 일반적인 Linux 패키지 업데이트 프로세스를 통해 업그레이드할 수 있습니다. 이전 버전의 GitLab을 업그레이드하는 경우, Mattermost 구성 설정이 GitLab 외부에서 변경되지 않았다면 업데이트 프로세스를 사용할 수 있습니다. 즉, Mattermost config.json
파일이 GitLab을 통해 직접 또는 Mattermost 시스템 콘솔을 통해 변경되지 않은 경우입니다.
gitlab.rb
를 사용하여 Mattermost를 구성한 경우 Linux 패키지를 사용하여 GitLab을 업그레이드한 다음 gitlab-ctl reconfigure
를 실행하여 GitLab Mattermost를 최신 버전으로 업그레이드할 수 있습니다.
만약 이러한 경우가 아니라면 두 가지 옵션이 있습니다:
-
config.json
에 대한 변경 사항을gitlab.rb
에 업데이트합니다. 이 작업에는config.json
의 모든 설정이gitlab.rb
에 사용 가능한 것이 아니기 때문에 몇 가지 매개변수를 추가해야 할 수 있습니다. 완료되면 Linux 패키지를 사용하여 GitLab Mattermost를 한 버전에서 다음 버전으로 업그레이드할 수 있어야 합니다. - Linux 패키지가 제어하는 디렉터리 외부에서 Mattermost를 마이그레이션하여 독립적으로 관리하고 업그레이드할 수 있도록 합니다. Mattermost 마이그레이션 가이드를 따라 Mattermost 구성 설정 및 데이터를 Linux 패키지와는 독립된 다른 디렉터리나 서버로 이동하십시오.
더 오래된 버전에 대한 업그레이드 공지 및 특별 고려 사항의 전체 디렉터리은 Mattermost 문서를 참조하십시오.
Linux 패키지로 제공되는 GitLab Mattermost 버전
다음은 GitLab 15.0 이후의 Mattermost 버전 변경 디렉터리입니다:
GitLab 버전 | Mattermost 버전 | 노트 |
---|---|---|
17.0 | 9.7 | |
16.11 | 9.6 | |
16.10 | 9.5 | |
16.9 | 9.4 | |
16.7 | 9.3 | |
16.6 | 9.1 | |
16.5 | 9.0 | |
16.4 | 8.1 | |
16.3 | 8.0 | |
16.0 | 7.10 | |
15.11 | 7.9 | |
15.10 | 7.8 | |
15.9 | 7.7 | |
15.7 | 7.5 | |
15.6 | 7.4 | |
15.5 | 7.3 | |
15.4 | 7.2 | |
15.3 | 7.1 | |
15.2 | 7.0 | |
15.1 | 6.7 | |
15.0 | 6.6 |
OAuth 2.0 순서도
다음 이미지는 GitLab이 Mattermost의 OAuth 2.0 공급자로 작동하는 순서도입니다. 통합 작업에 오류가 있는지 문제 해결하는 데 사용할 수 있습니다:
커뮤니티 지원 자료
GitLab Mattermost 배포에 대한 지원 및 도움을 위해 다음을 참조하십시오: