GitLab Omnibus에서 독립형 Mattermost로 마이그레이션
Mattermost v12.0요약
GitLab은 GitLab 19.0에서 GitLab Omnibus 패키지에서 Mattermost 폐기를 발표했습니다. 지속성과 장기 지원을 보장하기 위해 GitLab Omnibus 내에서 Mattermost를 사용하는 조직은 독립형 Mattermost 설치로 마이그레이션을 계획해야 합니다.
개요#
GitLab은 GitLab 19.0에서 GitLab Omnibus 패키지에서 Mattermost 폐기를 발표했습니다. 이 전환의 일환으로 GitLab은 최종 제거 날짜까지 Omnibus 설치 내에서 Mattermost v10.11 ESR까지 계속 지원합니다.
지속성과 장기 지원을 보장하기 위해 GitLab Omnibus 내에서 Mattermost를 사용하는 조직은 독립형 Mattermost 설치로 마이그레이션을 계획해야 합니다. 이 방식은 GitLab의 릴리즈 주기와 독립적으로 최신 Mattermost 릴리즈, 보안 업데이트 및 엔터프라이즈 기능에 지속적으로 접근할 수 있게 합니다.
독립형 배포로 마이그레이션하면 인프라 관리, PostgreSQL 업그레이드 및 성능과 컴플라이언스 요구 사항을 충족하기 위한 Mattermost 독립적 확장에 있어 더 큰 유연성도 제공됩니다.
사전 요구 사항#
시작하기 전에:
- GitLab Omnibus 서버에 대한 관리자(root 또는 sudo) 접근 권한.
- 준비되고 접근 가능한 새 독립형 PostgreSQL 서버.
- Mattermost 데이터베이스 덤프를 위한 충분한 디스크 공간.
- Mattermost 다운타임이 필요하므로 계획된 유지 관리 창.
- 데이터베이스 및 파일 스토리지를 포함한 Mattermost 인스턴스의 최신 전체 백업.
마이그레이션 단계#
GitLab Omnibus에서 독립형 Mattermost 설치로 안전하게 마이그레이션하려면 아래 단계를 따르세요.
다음 절차는 Mattermost 데이터베이스 이름이 mattermost_production 이고 PostgreSQL 사용자가 mmuser 임을 가정합니다. 환경에 맞게 조정하세요.
1단계: GitLab Omnibus에서 데이터베이스 덤프 생성#
GitLab Omnibus PostgreSQL 도구를 사용하여 Mattermost 데이터베이스의 덤프를 생성합니다. GitLab 서버에서 이 명령을 실행합니다:
sudo gitlab-psql -- /opt/gitlab/embedded/bin/pg_dump -h /var/opt/gitlab/postgresql --no-owner mattermost_production | gzip > mattermost_dbdump_$(date --rfc-3339=date).sql.gz
이렇게 하면 Mattermost 데이터베이스의 압축된 SQL 덤프 파일이 생성됩니다.
2단계: 새 PostgreSQL 서버 준비#
공식 Mattermost 데이터베이스 준비 가이드라인에 따라 새 PostgreSQL 서버를 설정합니다. 여기에는 다음이 포함됩니다:
- Mattermost 서버에서 지원하는 올바른 PostgreSQL 버전 설치.
- 적절한 권한을 가진 새 Mattermost 데이터베이스 및 사용자 생성.
3단계: 데이터베이스 덤프 전송 및 복원#
데이터베이스 덤프 파일을 새 PostgreSQL 서버로 전송한 후 복원합니다:
zcat /tmp/mattermost_dbdump.sql.gz | psql -U mmuser -d mattermost
데이터베이스 복원이 오류 없이 성공적으로 완료되는지 확인합니다.
4단계: Mattermost 구성 업데이트#
독립형 Mattermost 서버에서 새 PostgreSQL 서버를 가리키도록 config.json 파일을 업데이트합니다. SqlSettings.DataSource 매개변수를 찾아 다음과 같이 업데이트합니다:
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mmuser:password@new-postgres-server:5432/mattermost?sslmode=disable&connect_timeout=10"
}
자격 증명, 호스트 이름 및 연결 설정이 새 PostgreSQL 구성과 일치하는지 확인합니다.
5단계: Mattermost 애플리케이션 및 데이터 마이그레이션#
GitLab 서버에서 새 독립형 서버로 Mattermost 애플리케이션 파일을 이전하려면:
-
새 서버에 동일하거나 최신 버전의 Mattermost를 설치합니다. Mattermost 서버 배포를 참조하세요.
-
GitLab Omnibus 인스턴스에서 기존 구성 및 데이터를 복사합니다:
# On the GitLab server sudo cp /var/opt/gitlab/mattermost/config/config.json /tmp/ sudo cp -r /var/opt/gitlab/mattermost/data /tmp/mattermost_data # Transfer to new Mattermost server scp /tmp/config.json mattermost@new-server:/opt/mattermost/config/ scp -r /tmp/mattermost_data mattermost@new-server:/opt/mattermost/data/ -
새 서버에서 권한이 올바르게 설정되어 있는지 확인합니다:
sudo chown -R mattermost:mattermost /opt/mattermost
6단계: Mattermost 시작#
새 독립형 설치에서 Mattermost 서비스를 시작합니다:
sudo systemctl start mattermost
이제 Mattermost가 독립형 PostgreSQL 데이터베이스에 연결됩니다.
7단계: 마이그레이션 확인#
Mattermost를 시작한 후 다음 확인 작업을 수행합니다:
- 데이터베이스 연결 오류 없이 Mattermost가 성공적으로 시작되는지 확인합니다.
- 시작 또는 연결 문제에 대해 서버 로그를 검토합니다.
- Mattermost에 로그인하여 모든 팀, 채널 및 사용자가 있는지 확인합니다.
- 테스트 메시지를 게시하고 파일을 업로드하여 기능을 확인합니다.
- 사용자 인증 및 권한을 검증합니다.
- 데이터베이스 쿼리가 새 PostgreSQL 서버로 전달되는지 확인합니다.
중요 고려 사항#
- 마이그레이션 전에 항상 Mattermost 데이터베이스의 전체 백업을 유지합니다.
- 사용자 중단을 최소화하기 위해 유지 관리 창을 예약합니다.
- 마이그레이션 후 성능 및 모니터링 구성을 검증합니다.
- 새 PostgreSQL 서버가 Mattermost의 보안 및 튜닝 모범 사례를 따르는지 확인합니다.
문제 해결#
마이그레이션 중에 오류가 발생하면:
- 권한 또는 연결 문제에 대해 PostgreSQL 로그를 검토합니다.
- Mattermost PostgreSQL 사용자가 복원된 데이터베이스에 대한 전체 접근 권한을 가지고 있는지 확인합니다.
config.json파일에 올바른 데이터베이스 연결 문자열이 포함되어 있는지 확인합니다.- Mattermost 서비스를 재시작하고 자세한 오류 내용을 위해
mattermost.log를 확인합니다.