バージョン11へのアップグレード
概要
このガイドは サーバー 管理者。 クラウド ユーザーはリラックスして足を上げ、これらすべての操作を私たちに任せることができます。
バージョン11は、以前のバージョンと比較して大幅な技術的飛躍です。 このバージョンにアップグレードするには、混乱を避けるために、通常のアップグレードよりも少し多くの準備が必要です。 スムーズな移行のためのチェックリストをこのガイドで検討してください。
技術スタックの最も重要な変更は、 リリースノート。 また、重要な機能変更とプラグイン情報も含まれています。 まだ読んでいない場合は、最初に読んでください。
簡単な仮想マシンが救いの手を差し伸べます!
以下のポイントのいくつかはあなたに当てはまるかもしれません、そしてあなたが耐えることをいとわないように思われるかもしれません。 このような場合、完全にインストールされたアプリケーションをインストールする簡単なオプションが常にあります。 ヴイエムウェア/VirtualBox 画像(.ova形式)。 VMを生成し、場合によっては既存のシステムからのデータ移行を手配するサポートにお問い合わせください。 そのような決定に対する報酬として、この記事の残りの部分を読む必要はありません:)
便利なリソース
ほとんどの手順の説明は、ナレッジベースおよび直接インストールパッケージ(doc / INSTALL_DEBIAN)ですでに公開されています。 それらすべてをこのXNUMXつの記事にコピーすることはしません。 ここで必要なコンテキストを追加し、重要な変更に焦点を当てます。
モデルアップグレードストーリー
各コンポーネントを詳細に分析する前に、同じサーバーにとどまりながら、アップグレードのモデル例を示します。
既存のサーバー
- EasyProjectバージョン10.10.1を使用したEasyVM
- ルビー-v = 2.5.3
- mysql --バージョン = 5.7.31
- redis-server --version = 5.0.3
- 宝石リスト| grepバンドラー= 1.16.6
- node -v(存在しない)
- pumaアプリケーションサーバー
- nginxWebサーバー
Easyが提供するVMであるため、大規模な環境(OS、データベース)でも同じサーバーでのアップグレードが可能です。 一部のコンポーネントはそのままで問題ありません(mysql、redis-server、puma、nginx)、一部はアップグレードが必要です(ruby、bundler)、XNUMXつの要件が完全に欠落しています(Node.js)。
ステップ
0)最新のLTSバージョン(10.14.x)をダウンロードしてインストールします-アップグレードはLTSからのみ可能です。
1)ルビーのアップグレードから始めましょう
rvm install ruby 2.6.7 --patch railsexpress
(新しいrubyがインストールされるまで待ちます。sudoパスワードを要求される場合があります)
rvm use ruby-2.6.7 --default
2)衝突の可能性を回避するために、以前のルビーバージョンをアンインストールすることをお勧めします
rvm remove ruby-2.5.3
このコマンドは、すべてのgemおよびその他のファイルとともにrubyをアンインストールします。 使用するよりも良いです rvm uninstall
3)次に、アプリケーションに必要なすべてのgemを再インストールする必要があります。 バンドラーから始めます
gem install bundler
どのバンドラーがインストールされているかを確認しましょう
gem list | grep bundler
次のような行を返す必要があります
bundler (2.1.4, 2.1.2)
2.2.16より古いバージョンがあることを確認してください
4)/home/easy/your.vm.nameにアクセスしてください
cd /home/easy/your.vm.name
5)nodejsをインストールします
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
そしてそれが正しいバージョンを持っていることを確認してください
node -v
それは次のようなものを返すはずです
v14.16.0
バージョンが14.16以降であることを確認してください。
6)クライアントゾーンからパッケージv11パッケージをダウンロードし、VMにコピーします。
7)pumaサーバーを停止します
sudo systemctl stop puma@your.domain.name
この時点から、自動手順または手動アップグレードを続行するかどうかを選択できます。
a)自動アップグレード (推奨)
8a)redmineインストーラーを介してアップグレードを実行します
redmine upgrade name_of_package
9a)ウィザードの手順に従います。
b)手動アップグレード
8b)最近のcurrent /フォルダの名前を変更します
mv current/ current_old/
9b)現在のフォルダを再作成します
mkdir current
10b)現在のフォルダに移動します
cd current/
11b)ここでパッケージを開梱します
unzip /path/to/downloaded/package.zip
12b)gemをインストールする
bundle install
13b)移行を実行する
bundle exec rake easyproject:install RAILS_ENV=production
14b)すべて問題がなければ、プーマを再開します
sudo systemctl start puma@your.domain.name
仕様チェックリスト
オペレーティングシステム
バージョン11以降、サポートされているオペレーティングシステム(アプリケーションが直接実行される)は次のとおりです。 Debianの特に、10(バスター)と11(ブルズアイ)。
提供されているVMでEasyProjectを実行している場合は、この要件がすでにカバーされている可能性があります。 サポートされていないOSを使用している場合は、新しいサーバー(できればVM)に移行する必要があります。 本番アプリケーションの下にあるOSを再インストールまたはアップグレードすることは、間違いなくあなたの最善の利益ではありません。
データベースサーバー
Percona / MySQL5.7以降を使用する必要があります。 大まかにXNUMXつのケースがあります。
- 古いPerconaバージョンがあります->次のような公式の指示によるアップグレード
https://www.percona.com/doc/percona-server/5.7/upgrading_guide_56_57.html - 別のMySQLディストリビューション(MariaDBなど)があります->新しいサーバー(できればVM)に移行することをお勧めします。
- PostgreSQLがあります->新しいサーバー(できればVM)に移行することをお勧めします。 移行自体の前に、データベースを変換する必要があります。 さまざまな変換ツールをテストしました そして、最も適切なもののための指示を提供しました。 また、変換を実行する準備ができています。
ルビー
アプリケーションの背後にある言語は、人々が通信する言語など、最新の状態に保つ必要があります。 Rubyのアップグレードについて説明します ページ をご覧ください 既存のRubyが非常に古い場合を除いて、同じサーバーで続行できます。
バンドラー
RubyGemを管理するためのRubyGem。 Easy Projectはそれらを200以上使用するため、バンドラーは重要なコンポーネントです。
インストールするには
gem install bundler
バージョンを確認するには
gem list | grep bundler
バージョン2.2.xは自動的にインストールされます。 そうでない場合は、以下に従ってください 公式文書。
Redisの
v11の新機能とパフォーマンスの向上の一部を合理化するために、Redis-serverでSidekiqを使用します。 Easy VMには、すでにこれらのコンポーネントが含まれています。 バージョンに注意してください。ER11にはredis-server5 +が必要です。
これはあなたのにあるメインのインストールガイドからの抜粋です v11パッケージ 下 doc / INSTALL_DEBIAN
- redisとsidekiqをセットアップする
簡単にユーザーに切り替えられます。
vim /home/easy/current/config/Additional_environment.rb
Rails.env.productionの場合? config.active_job.queue_adapter =:sidekiq
redis_namespace = Rails.root.join( "..")。basename.to_s redis_url = "redis://#{ENV ["REDIS_HOST"] || "127.0.0.1"}:#{ENV ["REDIS_PORT"] || 6379} / 1 "Sidekiq.configure_server do | config | config.redis = {url:redis_url、namespace:redis_namespace}
end
Sidekiq.configure_client do | config | config.redis = {url:redis_url、namespace:redis_namespace}
終末
vim /home/easy/current/config/sidekiq.rb
:verbose:false:pidfile:../ sidekiq.pid:logfile:./log/sidekiq.log:concurrency:<%= ENV ["SIDEKIQ_WORKERS"] || 2%>:queues:
- 重大な
- デフォルト
- 再計算_カスタムフィールド
- easy_git
- easy_actions
- easy_mail_campaigns
- easy_integrations
- メーラー
- easy_rake_tasks
- 低いです
Node.js
最後に、最後の主要な要件。 インストールはかなり簡単です
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
バージョン14.16があることを確認してください。 利用可能なドキュメント ページ をご覧ください
WebSocketを
アプリケーションの実行をブロックする厳密な要件ではありませんが、XNUMXつの機能がこのテクノロジーを使用します(ユーザーのアバターにライブのオンライン/オフライン状態を表示し、エクスポートの完了に関するアプリ内通知)。 将来的に拡張されます。
アクションケーブルを有効にする必要があります。 Redisに依存しています。 これらの機能を使用したいが、Redis / ActionCable構成に精通していない場合は、これらが事前構成されている新しいVMに移行することをお勧めします。
強制されたHTTPSプロトコル
バージョン11は、アプリケーションURLのHTTPSプロトコルを適用します。 Webサーバー(nginx)の構成をチェックして、アプリケーションがhttp経由でアクセスできることを確認してくださいs:// [easyproject_url] Webブラウザーから、またはEasyProjectに接続する統合から。 URL http:// [easyproject_url]はv11では機能しません!
サブウリの終わり
フロントエンドが高度な拡張機能を受け取ると、サポートを継続することはできなくなります サブウリ構成。 この種の構成はJavascriptコンポーネントの影響を受けやすく、機能不全を引き起こすことがよくあります。 サーバーを通常のドメインに再構成してください。
アップグレード後
テキスタイル/マークダウンテキストの移行
で書かれているように リリースノート さまざまなテキストエディタのサポートを終了しました。 以前にテキスタイルまたはマークダウンテキスト編集を使用したことがある場合は、これらの関連コマンドを使用して、フォーマットされたテキストのHTMLへの移行を実行する必要があります。
まず、最近のテキストの書式を次のように確認してください。
bundle exec rails r -e production "puts Setting.text_formatting"
テキスタイルの場合は、次のコマンドを使用してください。
bundle exec rake easyproject:textile:migrate_all source_formatting=textile RAILS_ENV=production
または、テキストの書式設定がMarkdownの場合は、次のようになります。
bundle exec rake easyproject:textile:migrate_all source_formatting=markdown RAILS_ENV=production
移行が成功した場合は、最後に次のコマンドを使用してテキストの書式をHTMLに切り替えます。
bundle exec rails r -e production "puts Setting.text_formatting = 'HTML'"
Webサーバーを再起動して、変更を完全に適用します。