機能説明
PatchingツールはHelp Centerから提供されるhotfix、またはHelp Centerからダウンロードしたフィックスパックを適用するアプリケーションです。
Patchingツールの主な用途:
- パッチ情報の確認
- 新規パッチのインストール
- 過去のパッチへのロールバック
- パッチによる修正箇所の確認
PatchingツールはLiferayが提供する各バンドルに含まれています。Liferayのバンドルを利用しない場合や、Liferayがwarファイルでデプロイされた場合は、Patchingツールを別途ダウンロードする必要があります。
下記URLからダウンロードできます:
https://www.liferay.com/ja/group/customer/products/patching-tool
詳しくはユーザガイドをご参照ください(英語)
https://dev.liferay.com/discover/deployment/-/knowledge_base/6-2/patching-liferay
詳細
利用前に、最新版を使用されていることを確認してください。最新版は上記URLでダウンロードできます。
Patchingツールはシェルスクリプト、及びバッチファイルですので、UNIX系OS・WindowsOSに対応しています。
使用するOSによって、実行方法がわずかに異なるのでご注意ください。ただし、<parameter>部分は共通です。
ターミナル又はコマンドプロンプトからpatching-toolディレクトリに移動して、patching-toolを実行します。
UNIX系OS:liferay$ ./patching-tool.sh <parameter>
WindowsOS:liferay> patching-tool.bat <parameter>
1) 初期設定
Patchingツールを初めて使用する際には、初期設定が必要となります。
- 次のコマンドを実行(自動化設定が行われます)
liferay$ ./patching-tool.sh auto-discovery
※Patchingツールが<liferay_home>の外にある場合、<liferay_home>のパスを指定する必要があります:
liferay$ ./patching-tool.sh auto-discovery /opt/liferay/tomcat-7.0.42 - default.propertiesという設定ファイルが生成されます。
(書き込み権限にご注意ください) - 「Configuration has been written into the default.properties」というメッセージで完了
ご注意:Weblogicではauto-discoveryが利用出来ません。auto-discoveryを使用してしまうと、テンポラリフォルダにデプロイされたLiferayが取得されてしまい、再起動で変更箇所が復元されてしまいます。下記のように手動でdefault.propertiesファイルを作成してください。
2) Patchingツールバージョンとパッチレベル情報を取得
Patchingツールのバージョン、インストール可能なパッチ、インストールされたプラグイン、及び過去にインストールされたパッチなどを表示します。
- 次のコマンドを実行
liferay$ ./patching-tool.sh info - 上記のサンプル画面では、次の情報が表示されています:
・patchingツールのバージョン:20
・インストールされたプラグイン:2つ(MarketplaceとResource Importer)
・インストールされたパッチやhotfix:portal-45
・インストール可能なパッチ:portal-45とportal-63
3) Help Centerチケット用のPatchingツール情報取得
カスタマーサポートエンジニアがお客様の抱える問題を素早く再現するために、Patchingツール情報が役立ちます。チケットを作成する際、最新のパッチレベルをチケットに添付していただければ幸いです。
下記は最新のパッチレベルを取得する方法です。
- 次のコマンドを実行
liferay$ ./patching-tool.sh support-info - patching-toolディレクトリに「patching-tool-support-info-YYYY-MM-DD-hh-mm-ss.txt」というファイルが作成されます。(書き込み権限にご注意ください)
- 上記ファイルをHelp Centerチケットに添付
4) Hotfixをインストールする方法
Liferayの障害を解決するfixが出来上がると、カスタマーサポートエンジニアはお客様用のhotfixを生成します。そのhotfixはHelp Centerチケット経由で提供されます。
下記の手順で、そのhotfixを適用します。
- アプリケーションサーバーを停止
- データベースの更新・修正する場合もありますのでデータベースをバックアップを推奨いたします。(任意)
- 現在インストールされているパッチをアンインストール
liferay$ ./patching-tool.sh revert
liferay$ ./patching-tool.sh update-plugins - 新しいhotfixをPatchingツールのpatchesディレクトリにコピー
- Patchingツールが新しいhotfixを認識するかどうか確認
liferay$ ./patching-tool.sh info - パッチをインストール
liferay$ ./patching-tool.sh install
liferay$ ./patching-tool.sh update-plugins - アプリケーションサーバーを起動
ご注意:新しいhotfixが認識されない場合は、最新版のPatchingツールを利用しているかどうかをご確認ください。
5) 以前のhotfixにロールバック
最新のhotfixがトラブルや不具合が検出された際には、以前のhotfixにロールバックできます。
- アプリケーションサーバーを停止
- インストールされているパッチを全部アンインストール
liferay$ ./patching-tool.sh revert
liferay$ ./patching-tool.sh update-plugins
- patchesフォルダからインストールの必要がないパッチファイルを削除し、ロールバックしたいhotfixのみを残します。
- Patchingツールがロールバックしたhotfixを認識するかどうか確認
liferay$ ./patching-tool.sh info - パッチをインストール
liferay$ ./patching-tool.sh install
liferay$ ./patching-tool.sh update-plugins - アプリケーションサーバーを起動
6) 新しいhotfixの修正箇所を調査
現在のhotfixより新しいhotfixを適用することで、どの箇所に修正が追加されたかを調査できます。
※フィックスパックの場合はソースコード付きのフィックスパックが必要です。
- 次のコマンドで現在のhotfixのスナップショットを取得
liferay$ ./patching-tool.sh store add current - 現在のhotfixをpatchesフォルダから削除して(バックアップ)、新しいhotfixをコピー
- 新しいhotfixのスナップショットを取得
liferay$ ./patching-tool.sh store add new - 次のコマンドでスナップショットを比較
liferay$ ./patching-tool.sh diff fixed-issues current new
上記サンプルでは、共通fixのほか、新しいhotfixにはいくつかの修正が追加されていることがわかります。
LPEの内容については、カスタマーサポートまでお問合せください。
【LPEs included in ‘current’ and not in ‘new’】→利用中のfixの中から削除されてしまうfixのリスト
【LPEs included in ‘new’ and not in ‘current’】→新たに追加されるfixのリスト
【LPEs included in both ‘current’ and ‘new’】→新旧両方にすでに含まれているfixのリスト
- 変更されたファイルを取得
liferay$ ./patching-tool.sh diff files current new
- ソースコードの差分を取得(diff形式)
liferay$ ./patching-tool.sh diff current new >changes.diff
追加情報
1) ./patching-tool.sh: Permission denied
patchingツールの実行権限が無いようです。下記のコマンドで実行権限を付与できます:
liferay$ chmod +x patching-tool.sh
2) ./patching-tool.bat: line 1: @echo: command not found
Linux用のpatchingツールをWindows上で実行されているようです。Windows用のpatchingツールをご利用ください。
UNIX系OS:liferay$ ./patching-tool.sh <parameter>
WindowsOS:liferay> patching-tool.bat <parameter>
3) Cache cannot be updated:Host is down
Patchingツールは、コマンドの実行時にサービスパック情報をLiferay.comから取得します。インターネットに接続されていない場合は、Liferay.comにアクセスできないため、上記警告が表示されます。
この場合、Patchingツール自体は正常にご利用いただけますが、サービスパック情報だけは表示されません。
4) Patchingツールが新しいパッチやhotfixを認識しません。
Patchingツールの最新版を使用していることをご確認ください。最新版はHelp Centerからダウンロードできます。
5) Source code is not available for the following installable patches
修正箇所を調査するため、ソースコードが必要となります。Help Centerからソースコード付きパッチをダウンロードできます。
カスタマーサポートエンジニアから提供されるhotfixは、常にソースコードを含みます。
6) WARNING: some of the current installed fixes are not available
WARNING: some of the currently installed fixes are not available:
* LPE-13961
適用しようとしているhotfixには、現在適用中のhotfixに含まれている修正の一部が含まれていません。上記サンプルの場合、LPE-13961という修正箇所が含まれていないため、警告が表示されます。
念のため、Liferayサポートにご連絡ください。
Liferayサポートに問い合わせた結果、意図的な修正であるので問題ないと確認できた場合は、適用する前に、現在のhotfixをアンインストールしてください。
- 新しいhotfixをPatchingツールのpatchesディレクトリにコピー
- 現在インストールされているパッチをアンインストール
liferay$ ./patching-tool.sh revert
liferay$ ./patching-tool.sh update-plugins
- Patchingツールが新しいhotfixを認識するかどうか確認
liferay$ ./patching-tool.sh info
- パッチをインストール
liferay$ ./patching-tool.sh install
liferay$ ./patching-tool.sh update-plugins
6) パッチを適用後、web.xmlが上書きされてしまいます。
Patchingツールを利用してhotfixやサービスパックを適用すると、web.xmlファイルなどがデフォルトの内容に戻る可能性があります。
それらのファイルに手を加えている場合は、hotfix及びサービスパックの適用後に、施していた変更を、都度反映させる必要がありますので、本番環境に適用する際には十分にご注意ください。
上記の動作を考慮し、パッチ適用時にはweb.xmlなどの変更を加えたファイルのバックアップを取ることを推奨します。
ロールバック影響を受ける可能性のある範囲は次の通りです:
- <tomcat_home>/webapps/ROOT/ 以下
- <tomcat_home>/lib/ext/ 以下
- <tomcat_home>/webapps/<liferay正式ポートレット>/ 以下
- データベース(テーブルの構成・インデックスの追加など)