Upgrade Mattermost Server

提供:FirstWiki
ナビゲーションに移動 検索に移動

Upgrade Mattermost Server

Upgrade Mattermost Server

  1. Mattermostをホストしているサーバーのターミナルウィンドウで、あなたのホームディレクトリに移動してください。以前のダウンロードで存在した可能性のあるファイルやディレクトリはすべて削除してください。
    cd /tmp
  2. Mattermost Server の最新バージョンをダウンロードします。以下のコマンドで、X.X.X をダウンロードしたいバージョンに置き換えてください。
    wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
  3. /tmpディレクトリに他のMattermostのzipフォルダが存在しないことを確認します。他のバージョンの zip ファイルが存在する場合、そのファイルを削除するか名前を変更します。
    ls -- mattermost*.gz
  4. Mattermost Serverファイルを解凍します。
    tar -xf mattermost*.gz --transform='s,^[^/]\+,\0-upgrade,'
    transform オプションは、通常のインストールディレクトリと衝突しないように、解凍された一番上のディレクトリに接尾辞を追加します。
  5. Mattermost サーバを停止します。
    udo systemctl stop mattermost
  6. データとアプリケーションをバックアップしてください。アップグレードを続行する前に、データベースを適切にバックアップしていることを確認してください。予期しない障害が発生した場合に備えて、以前のデータベーススナップショットをロードできる状態にしておく必要があります。
    1. MySQL または PostgreSQL をバックアップするための組織の標準的な手順を使用して、データベースをバックアップしてください。
    2. アーカイブ・フォルダー (例: mattermost-back-YYYY-MM-DD-HH-mm) にコピーして、アプリケーションをバックアップしてください。
      cd {install-path}
      sudo cp -ra mattermost/ mattermost-back-$(date +'%F-%H-%M')/
  7. Remove all files except data and custom directories from within the current mattermost directory.
    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, and data (ローカルストレージに別のディレクトリが設定されていない限り)。カスタムディレクトリは、あなたが Mattermost に追加したディレクトリで、デフォルトでは保存されません。一般的に、これらは TLS キーやその他のカスタム情報です。

    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フォルダーをクリアする

    以下のコマンドを実行すると、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

    TLSCert/TLSKeyファイルやその他の情報を /opt/mattermost フォルダー内に保存する場合は、上記のコマンドに -o -path mattermost/yourFolderHere を追加して、バックアップから新規インストールにTLSCert/TLSKeyファイルを手動でコピーする必要がないようにする必要があります。

    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

    コマンドを実行する準備ができたら、上記のコマンドに 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

    Bleveサーチの使用

    Bleve Searchを使用していて、そのディレクトリがmattermostディレクトリ内に存在する場合、上記のコマンドを使用してもインデックスディレクトリのパスは保持されません。

    • アップグレード前にbleveインデックスディレクトリをmattermostディレクトリから移動するか、アップグレード後にbleveインデックスディレクトリの内容をバックアップディレクトリからコピーすることができます。
    • その後、そのディレクトリを保存するか、または好みに応じてインデックスを再作成することができます。
    • bleveインデックスは、Mattermostのバージョン間で再インデックス化せずに移行することができます。
      bleveインデックスディレクトリの構成の詳細については、構成設定のドキュメントを参照してください。
  8. 新しいファイルをインストールディレクトリにコピーします。

    sudo cp -an /tmp/mattermost-upgrade/. mattermost/

    n (no-clobber) フラグと source の末尾の . は、とても重要です。n (no-clobber) フラグは、インストールパスの既存の設定とログを保持します。sourceの最後の.は、すべてのインストールファイルがコピーされることを保証します。

  9. 新しいファイルをコピーした後、そのファイルの所有権を変更します。例えば:

    sudo chown -R mattermost:mattermost mattermost
    • インストールディレクトリのオーナーとグループにmattermostを使用していない場合は、sudo chown -hR {owner}:{group} {install-path}/mattermost を実行します。

    • 所有者やグループが定義されているか不明な場合は、ls -l {install-path}/mattermost/bin/mattermost コマンドを使用して取得します。

  10. ポート 80 または 443 を使ってサービスを提供したい場合、および/または、Mattermost サーバで TLS を設定している場合、CAP_NET_BIND_SERVICE 機能を有効にして、新しい Mattermost バイナリが 1024 より低いポートにバインドできるようにする必要があります。例えば:

    sudo setcap cap_net_bind_service=+ep ./mattermost/bin/mattermost
  11. Mattermost サーバを起動します。

    sudo systemctl start mattermost
  12. 一時ファイルを削除します。

    sudo rm -r /tmp/mattermost-upgrade/
    sudo rm -i /tmp/mattermost*.gz
  13. 高可用性配備を使用している場合は、クラスタの各ノードで上記の手順を適用する必要があります。完了すると、システムコンソールの[High Availability]セクションの[Config File MD5]列が緑色になるはずです。黄色で表示されている場合は、すべてのノードでサーバーのバージョンと構成が同じであることを確認してください。

    黄色で表示され続ける場合は、システムコンソールを開いて設定を変更し、元に戻すことで、クラスタ全体に設定が伝搬されるようにします。これにより、そのページの保存ボタンが有効になります。次に、[保存]を選択します。これにより、構成は変更されませんが、既存の構成がクラスタのすべてのノードに送信されます。

サーバーのアップグレード後、新機能を利用するためにブラウザの更新が必要になる場合があります。

Team EditionからEnterprise Editionへのアップグレード

Team Edition から Enterprise Edition へのアップグレードは、上記の通常のアップグレード手順に従い、ステップ 2 で Mattermost Server の Enterprise Edition をダウンロードしたことを確認します。

ライセンスキーをアップロードする

Enterprise Editionが起動している状態で、System Console > About > Editions and Licenseを開き、ライセンスキーをアップロードしてください。