ソースから

ソースからビルドしたインストールをアップグレードします

  1. アップグレードの前に
  2. 1. 新しいリリースを取得する
  3. 2. 再ビルドする
  4. 3. 再起動する
  5. 4. アップグレードを確認する
  6. ロールバック

ソースからビルドしたインストールは、新しいリリースをチェックアウトし、再ビルドして、アプリケーションを再起動することで アップグレードします。設定、フォーム、プレイブック、証明書、ログは server/persistent に保存されており、Git や ビルドによって変更されることはありません。


アップグレードの前に

問題が起きたときに元に戻せるよう、アップグレードの準備をします。

  • 設定 → バックアップ で バックアップを取ります 。新しいリリースは初回起動時にデータベースのスキーマをアップグレードします。
  • 現在のバージョンと新しいバージョンの間のリリースについて 変更履歴 を読みます 。
  • 新しいメジャーバージョンに移行しますか? 先に v7 へのアップグレード に従ってください。
  • 新しいリリースが必要とする Node.js のバージョンを変更履歴で確認します 。

1. 新しいリリースを取得する

リリースタグを取得し、目的のリリースをチェックアウトします。リリースタグにはバージョン番号が付いており、 git tag で一覧表示できます。 main ブランチには、まだリリースされていない変更が含まれていることがあります。

cd /srv/apps/ansibleforms
git fetch --tags
git checkout <version>

2. 再ビルドする

インストール時と同じ 3 つのステップで再ビルドします。まずクライアントを再ビルドします。

cd client
npm ci
npm run build

次にサーバーの依存関係を更新します。

cd ../server
npm ci --omit=dev

最後に、再ビルドしたクライアントをもう一度サーバーの views フォルダーにコピーします。

rm -rf views
mkdir views
cp -r ../client/dist/. views/

リポジトリのルートにある .env.example と自分の persistent/.env を比較し、リリースで追加された設定を取り込みます。


3. 再起動する

新しいコードを読み込むため、アプリケーションとその RTE を再起動します。データベースのスキーマは初回起動時にアップグレードされます。

pm2 restart ansibleforms ansibleforms-rte

7.2 から移行する場合、RTE はデータベースの設定と RTE_URL を使うデータベースモードで動いていました。このモードは 7.3.0 で非推奨になり、8.0.0 で削除されます。 インストール にあるとおり、RTE をインバウンドモードで起動し直し、そのランナーをシードまたは 接続 → ランナー で RTE の認証情報とともに宣言します。 手順は pm2 delete ansibleforms-rte の後に、その pm2 start コマンドです。

PM2 を使わずにアプリケーションを実行している場合は、 npm run start を停止してもう一度起動します。


4. アップグレードを確認する

起動中のアプリケーションのログを追います。

pm2 logs ansibleforms

AnsibleForms では、 ヘルプ → バージョン情報 で実行中のバージョンを確認でき、 設定 → ステータス でデータベース、スキーマ、 AnsibleForms が依存するその他のシステムの状態を確認できます。


ロールバック

以前に実行していたリリース(アップグレード前に ヘルプ → バージョン情報 に表示されていたバージョン)に戻すには、 git checkout <version> でそのタグをチェックアウトし、ステップ 2 と 3 のとおり再ビルドして再起動します。そのリリースがアップグレード済みのデータベースで起動しない場合は、 設定 → バックアップ で取ったバックアップを復元します。