ソースから
ソースからビルドしたインストールをアップグレードします
ソースからビルドしたインストールは、新しいリリースをチェックアウトし、再ビルドして、アプリケーションを再起動することで アップグレードします。設定、フォーム、プレイブック、証明書、ログは 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 のとおり再ビルドして再起動します。そのリリースがアップグレード済みのデータベースで起動しない場合は、 設定 → バックアップ で取ったバックアップを復元します。