パッチングツール

機能説明 

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ツールを初めて使用する際には、初期設定が必要となります。

  1. 次のコマンドを実行(自動化設定が行われます)
    liferay$ ./patching-tool.sh auto-discovery

    ※Patchingツールが<liferay_home>の外にある場合、<liferay_home>のパスを指定する必要があります:
    liferay$ ./patching-tool.sh auto-discovery /opt/liferay/tomcat-7.0.42
  2. default.propertiesという設定ファイルが生成されます。
    (書き込み権限にご注意ください)
  3. 「Configuration has been written into the default.properties」というメッセージで完了 

ご注意:Weblogicではauto-discoveryが利用出来ません。auto-discoveryを使用してしまうと、テンポラリフォルダにデプロイされたLiferayが取得されてしまい、再起動で変更箇所が復元されてしまいます。下記のように手動でdefault.propertiesファイルを作成してください。

 

2) Patchingツールバージョンとパッチレベル情報を取得 

Patchingツールのバージョン、インストール可能なパッチ、インストールされたプラグイン、及び過去にインストールされたパッチなどを表示します。 

  1. 次のコマンドを実行
    liferay$ ./patching-tool.sh info
  2. 上記のサンプル画面では、次の情報が表示されています:
    ・patchingツールのバージョン:20
    ・インストールされたプラグイン:2つ(MarketplaceとResource Importer)
    ・インストールされたパッチやhotfix:portal-45
    ・インストール可能なパッチ:portal-45とportal-63 

3) Help Centerチケット用のPatchingツール情報取得 

カスタマーサポートエンジニアがお客様の抱える問題を素早く再現するために、Patchingツール情報が役立ちます。チケットを作成する際、最新のパッチレベルをチケットに添付していただければ幸いです。 

下記は最新のパッチレベルを取得する方法です。

  1. 次のコマンドを実行
    liferay$ ./patching-tool.sh support-info
  2. patching-toolディレクトリに「patching-tool-support-info-YYYY-MM-DD-hh-mm-ss.txt」というファイルが作成されます。(書き込み権限にご注意ください)
  3. 上記ファイルをHelp Centerチケットに添付 

4) Hotfixをインストールする方法 

Liferayの障害を解決するfixが出来上がると、カスタマーサポートエンジニアはお客様用のhotfixを生成します。そのhotfixはHelp Centerチケット経由で提供されます。 

下記の手順で、そのhotfixを適用します。 

  1. アプリケーションサーバーを停止
  2. データベースの更新・修正する場合もありますのでデータベースをバックアップを推奨いたします。(任意)
  3. 現在インストールされているパッチをアンインストール
    liferay$ ./patching-tool.sh revert
    liferay$ ./patching-tool.sh update-plugins
  4. 新しいhotfixをPatchingツールのpatchesディレクトリにコピー
  5. Patchingツールが新しいhotfixを認識するかどうか確認
    liferay$ ./patching-tool.sh info
  6. パッチをインストール
    liferay$ ./patching-tool.sh install
    liferay$ ./patching-tool.sh update-plugins
  7. アプリケーションサーバーを起動 

ご注意:新しいhotfixが認識されない場合は、最新版のPatchingツールを利用しているかどうかをご確認ください。

5) 以前のhotfixにロールバック

 最新のhotfixがトラブルや不具合が検出された際には、以前のhotfixにロールバックできます。 

  1. アプリケーションサーバーを停止
  2. インストールされているパッチを全部アンインストール

liferay$ ./patching-tool.sh revert

liferay$ ./patching-tool.sh update-plugins

  1. patchesフォルダからインストールの必要がないパッチファイルを削除し、ロールバックしたいhotfixのみを残します。
  2. Patchingツールがロールバックしたhotfixを認識するかどうか確認
    liferay$ ./patching-tool.sh info
  3. パッチをインストール
    liferay$ ./patching-tool.sh install
    liferay$ ./patching-tool.sh update-plugins
  4. アプリケーションサーバーを起動

 

6) 新しいhotfixの修正箇所を調査

 

現在のhotfixより新しいhotfixを適用することで、どの箇所に修正が追加されたかを調査できます。

 

※フィックスパックの場合はソースコード付きのフィックスパックが必要です。

 

  1. 次のコマンドで現在のhotfixのスナップショットを取得
    liferay$ ./patching-tool.sh store add current
  2. 現在のhotfixをpatchesフォルダから削除して(バックアップ)、新しいhotfixをコピー
  3. 新しいhotfixのスナップショットを取得
    liferay$ ./patching-tool.sh store add new
  4. 次のコマンドでスナップショットを比較
    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のリスト

  1. 変更されたファイルを取得
    liferay$ ./patching-tool.sh diff files current new
  1. ソースコードの差分を取得(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をアンインストールしてください。

  1. 新しいhotfixをPatchingツールのpatchesディレクトリにコピー
  2. 現在インストールされているパッチをアンインストール

liferay$ ./patching-tool.sh revert

liferay$ ./patching-tool.sh update-plugins

  1. Patchingツールが新しいhotfixを認識するかどうか確認

liferay$ ./patching-tool.sh info

  1. パッチをインストール
    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正式ポートレット>/ 以下
  • データベース(テーブルの構成・インデックスの追加など)
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています