GitLab Omnibus에서 독립형 Mattermost로 마이그레이션
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를 설치합니다. 서버 배포 계획 을 참조하세요.
- GitLab Omnibus 인스턴스에서 기존 구성 및 데이터를 복사 합니다:
- 새 서버에서 권한이 올바르게 설정되어 있는지 확인합니다:
# GitLab 서버에서
sudo cp /var/opt/gitlab/mattermost/config/config.json /tmp/
sudo cp -r /var/opt/gitlab/mattermost/data /tmp/mattermost_data
# 새 Mattermost 서버로 전송
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를 확인합니다.
