Mattermost 서버 업그레이드#
모든 플랜 에서 이용 가능
self-hosted 배포
대부분의 경우 Mattermost 서버를 몇 분 내에 업그레이드할 수 있습니다. 하지만 설치의 크기와 복잡성, 업그레이드하는 버전 등 여러 요소에 따라 업그레이드에 더 오래 걸릴 수 있습니다.
시작하기 전에#
이 지침을 처음부터 끝까지 주의 깊게 읽으세요.
Mattermost 업그레이드를 시작하기 전에 업그레이드 준비 방법 을 이해하고, 모든 소프트웨어 및 하드웨어 요구사항 에 익숙해지며, 중요 업그레이드 참고사항 을 읽고 아래에 문서화된 업그레이드 프로세스의 각 단계를 이해했는지 확인하세요. 질문이나 우려사항이 있으면 https://forum.mattermost.com/ 의 Mattermost 포럼에서 문의할 수 있습니다.
업그레이드를 시작하기 전에 다음 정보를 수집하세요:
기존 설치 디렉토리 - {install-path}: Mattermost 서버가 설치된 위치를 모르는 경우,
whereis mattermost명령어를 사용하여 표준 바이너리 위치와 $PATH를 찾으세요./opt/mattermost/bin이 PATH에 추가되지 않은 경우 이 명령어는 아무것도 반환하지 않습니다.또는
find / -executable -type f -iname mattermost 2> /dev/null명령어를 사용하여mattermost바이너리를 찾을 수 있습니다.출력은
/opt/mattermost/bin/mattermost와 유사해야 합니다.설치 디렉토리는 문자열
/mattermost가 처음 나타나기 전의 모든 것입니다. 이 예에서{install-path}는/opt입니다.해당 명령어가 결과를 반환하지 않는다면, 버전이 오래되었기 때문일 수 있습니다. 대신
whereis platform을 시도해보세요.
로컬 스토리지 디렉토리의 위치와 크기: 로컬 스토리지 디렉토리에는 사용자가 메시지에 첨부한 모든 파일이 포함되어 있습니다.
위치를 모르는 경우, 시스템 콘솔을 열고 환경 > 파일 스토리지 로 이동한 다음 로컬 스토리지 디렉토리 의 값을 확인하세요.
경로는
mattermost디렉토리를 기준으로 합니다. 예를 들어, 로컬 스토리지 디렉토리가./data/인 경우 절대 경로는{install-path}/mattermost/data입니다.
데이터베이스 디스크 공간: 데이터베이스와 동일한 서버에서 Mattermost 배포를 업그레이드하는 경우, 압축 해제, 복사 및 정리를 위해 최소 2GB의 여유 디스크 공간과 데이터베이스에 사용 가능한 Mattermost 설치 크기의 최소 2배를 권장합니다.
팁
업그레이드 시 mattermost db migrate –save-plan CLI 명령어를 사용하여 마이그레이션 계획을 생성하는 것을 고려하세요. 이는 데이터베이스에 적용될 변경사항의 상세 기록을 보관하는 데 도움이 됩니다. 나중에 다운그레이드가 필요한 경우 이러한 변경사항을 되돌리는 것이 더 쉬워질 수 있습니다.
Mattermost 서버 업그레이드#
Mattermost를 호스팅하는 서버의 터미널 창에서 홈 디렉토리로 이동하세요. 이전 다운로드에서 아직 존재할 수 있는 모든 파일과 디렉토리를 삭제하세요.
cd /tmp
Mattermost 버전에 따라 Mattermost 서버의 최신 버전 을 다운로드하세요.
다음 명령어에서
X.X.X를 다운로드하려는 버전으로 바꾸세요:wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz다음 명령어에서
X.X.X를 다운로드하려는 버전으로 바꾸세요:wget https://releases.mattermost.com/X.X.X/mattermost-team-X.X.X-linux-amd64.tar.gz
/tmp디렉토리에 다른 Mattermost zip 폴더가 없는지 확인하세요. 다른 버전의 zip 파일이 존재한다면 파일을 삭제하거나 이름을 변경하세요.ls -- mattermost*.gz
위에서 새 릴리스 외의 다른 것이 반환되면 이 파일의 이름을 변경하거나 완전히 삭제하세요.
Mattermost 서버 파일을 추출하세요.
tar -xf mattermost*.gz --transform='s,^[^/]\+,\0-upgrade,'
transform옵션은 일반 설치 디렉토리와 충돌하지 않도록 추출된 최상위 디렉토리에 접미사를 추가합니다.Mattermost 서버를 중지하세요.
sudo systemctl stop mattermost
데이터와 애플리케이션을 백업하세요. 업그레이드를 계속하기 전에 데이터베이스가 제대로 백업되었는지 확인하세요. 예기치 않은 오류가 발생할 경우 이전 데이터베이스 스냅샷을 로드할 수 있어야 합니다.
조직의 표준 데이터베이스 백업 절차를 사용하여 데이터베이스를 백업하세요.
애플리케이션을 아카이브 폴더(예:
mattermost-back-YYYY-MM-DD-HH-mm)에 복사하여 백업하세요.cd {install-path} sudo cp -ra mattermost/ mattermost-back-$(date +'%F-%H-%M')/
현재
mattermost디렉토리 내에서 데이터와 사용자 정의 디렉토리를 제외한 모든 파일을 제거하세요. 다음 명령을 실행하기 전에 아래의 중요 참고사항을 읽는 것을 강력히 권장합니다.sudo find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sort | sudo xargs rm -r
중요
기본적으로 업그레이드 시 다음 하위 디렉토리가 보존됩니다:
config,logs,plugins,client/plugins,data. Mattermost에 추가한 사용자 정의 디렉토리와 기타 모든 디렉토리는 기본적으로 보존되지 않습니다. 일반적으로 이는 TLS 키나 기타 사용자 정의 정보이지만,data이외의 로컬 스토리지용으로 구성된 다른 디렉토리와 첨부 파일 저장에 사용되는 사용자 정의 디렉토리도 포함될 수 있습니다.업그레이드를 계속하기 전에 다음을 강력히 권장합니다:
업그레이드 전에 존재하는 모든 기본 폴더를 식별하기 위해 Mattermost 설치 디렉토리에서
ls를 실행하세요.기본 Mattermost 설치에는 다음과 같은 파일과 디렉토리가 있습니다:
$ ls /opt/mattermost ENTERPRISE-EDITION-LICENSE.txt README.md client data i18n manifest.txt prepackaged_plugins NOTICE.txt bin config fonts logs plugins templates
다음 명령을 실행하여
mattermost폴더의 내용을 삭제하고 지정된 디렉토리와 그 내용만 보존하는 드라이 런을 수행하세요. 위에 나열된 것과 동일한 명령이지만sudo xargs rm -r은 생략됩니다:sudo find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sort
/opt/mattermost폴더 내에 TLSCert/TLSKey 파일이나 기타 정보를 저장하는 경우, 백업에서 새 설치로 TLSCert/TLSKey 파일을 수동으로 복사할 필요를 피하기 위해 위 명령에-o -path mattermost/yourFolderHere를 추가해야 합니다.sudo find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data -o -path mattermost/yourFolderHere \) -prune \) | sort
Bleve search 를 사용 중이고 디렉토리가
mattermost디렉토리 내부에 존재하는 경우, 위 명령을 사용하면 인덱스 디렉토리 경로가 보존되지 않습니다.업그레이드 전에 bleve 인덱스 디렉토리를
mattermost디렉토리 밖으로 이동하거나, 업그레이드 후backup디렉토리에서 bleve 인덱스 디렉토리의 내용을 복사할 수 있습니다.그런 다음 해당 디렉토리를 저장하거나 원하는 대로 재인덱싱할 수 있습니다.
bleve 인덱스는 Mattermost 버전 간에 재인덱싱 없이 마이그레이션할 수 있습니다. bleve 인덱스 디렉토리 구성에 대한 자세한 내용은 Configuration Settings 문서를 참조하세요.
위의 모든 단계를 완료하면(해당되는 경우) 파일을 삭제하기 위해
xargs rm -r을 포함한 전체 명령을 실행할 준비가 된 것입니다. 다음 예제에는-o -path mattermost/yourFolderHere가 포함되어 있습니다:sudo find mattermost/ mattermost/client/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/client -o -path mattermost/client/plugins -o -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data -o -path mattermost/yourFolderHere \) -prune \) | sort | sudo xargs rm -r
새 파일을 설치 디렉토리에 복사하세요.
sudo cp -an /tmp/mattermost-upgrade/. mattermost/
참고
소스의
n(no-clobber) 플래그와 끝에 있는.는 매우 중요합니다.n(no-clobber) 플래그는 설치 경로의 기존 구성과 로그를 보존합니다. 소스 끝에 있는.는 모든 설치 파일이 복사되도록 보장합니다.복사 후 새 파일의 소유권을 변경하세요. 예:
sudo chown -R mattermost:mattermost mattermost
참고
설치 디렉토리의 소유자와 그룹으로
mattermost를 사용하지 않은 경우,sudo chown -hR {owner}:{group} {install-path}/mattermost를 실행하세요.정의된 소유자나 그룹이 확실하지 않은 경우,
ls -l {install-path}/mattermost/bin/mattermost명령을 사용하여 확인하세요.
서버에 포트 80 또는 443을 사용하거나 Mattermost 서버에 TLS가 설정된 경우, 새 Mattermost 바이너리가 1024 미만의 포트에 바인딩할 수 있도록
CAP_NET_BIND_SERVICE기능을 반드시 활성화해야 합니다. 예:sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
Mattermost 서버를 시작하세요.
sudo systemctl start mattermost
임시 파일을 제거하세요.
sudo rm -r /tmp/mattermost-upgrade/ sudo rm -i /tmp/mattermost*.gz
고가용성 배포를 사용하는 경우, 클러스터의 모든 노드에 위 단계를 적용해야 합니다. 완료되면 System Console의 고가용성 섹션에 있는 Config File MD5 열이 녹색이어야 합니다. 노란색인 경우 모든 노드가 동일한 서버 버전과 구성을 가지고 있는지 확인하세요.
계속 노란색으로 표시되는 경우, System Console을 열고 설정을 변경한 후 되돌려 클러스터 전체에 구성 전파를 트리거하세요. 이렇게 하면 해당 페이지의 저장 버튼이 활성화됩니다. 그런 다음 저장 을 선택하세요. 이는 구성을 변경하지 않고 기존 구성을 클러스터의 모든 노드로 전송합니다.
서버가 업그레이드된 후 사용자는 새 기능을 경험하기 위해 브라우저를 새로고침해야 할 수 있습니다.
Team Edition에서 Enterprise Edition으로 업그레이드#
Team Edition에서 Enterprise Edition으로 업그레이드하려면 위에서 제공한 일반 업그레이드 지침을 따르되, 2단계에서 Mattermost Server의 Enterprise Edition을 다운로드해야 합니다.
라이선스 키 업로드#
Enterprise Edition이 실행 중일 때 System Console > About > Editions and License 를 열고 라이선스 키를 업로드하세요.