ユーザー定義のアクション

イメージのインポート、作業用コピーの追加および削除、ソフトウェア・ホームの追加、削除、移動およびアップグレードなど、様々なOracle Fleet Patching and Provisioningの操作に関するアクションを作成できます。

イメージのインポート、ゴールド・イメージの作業用コピーの追加および削除、ソフトウェア・ホームの追加、削除、移動およびアップグレードなど、様々なOracle Fleet Patching and Provisioningの操作に関するアクションを作成できます。操作ごとに異なるアクションを定義して、操作が適用されるイメージのタイプでさらにそれらを区別できます。ユーザー定義のアクションは、特定の操作の前後で実行でき、操作が実行されるデプロイメント(Oracle Fleet Patching and Provisioningサーバー、Oracle Fleet Patching and Provisioningクライアント(12cリリース2 (12.2)以降)、またはOracle Fleet Patching and Provisioningクライアントを実行していないターゲット)で実行されます。

ユーザー定義のアクションは、Oracle Fleet Patching and Provisioningサーバーに格納されるシェル・スクリプトです。スクリプト実行時に、コマンドラインで操作に関連する情報が付与されます。また、スクリプトとファイルを関連付けることができます。Oracle Fleet Patching and Provisioningサーバーにより、スクリプトが実行されるクライアントまたはターゲットの同じ場所にそのファイルがコピーされます。

たとえば、データベースのアップグレード後に実行するユーザー定義のアクションを作成する場合や、Oracle Database 11gと12cで異なるアクションを定義する場合などがあります。この場合、次の手順の例のように、新しいイメージ・タイプを定義する必要があります。

  1. 次のように、ORACLEDBSOFTWAREイメージ・タイプに基づいて、新しいイメージ・タイプ(たとえば、DB11IMAGE)を作成します。

    $ rhpctl add imagetype -imagetype DB11IMAGE -basetype ORACLEDBSOFTWARE

    Oracle Database 11gゴールド・イメージを追加またはインポートするときに、DB11IMAGEイメージ・タイプを指定します。

  2. ユーザー・アクションを定義して、それをDB11IMAGEイメージ・タイプおよびアップグレード操作に関連付けます。アップグレードの前または後で異なるアクションを実行できます。

  3. Oracle Database 12cのアクションを定義するには、前のステップのようにORACLEDBSOFTWAREイメージ・タイプに基づく新しいイメージ・タイプ(たとえば、DB12IMAGE)を作成しますが、DB12IMAGEイメージ・タイプを指定します。

    ノート:

    ユーザー定義のイメージ・タイプのベース・タイプにユーザー・アクションを定義する場合(このケースでは、ベース・タイプはORACLEDBSOFTWARE)、ユーザー定義のイメージ・タイプのアクションの前に、Oracle Fleet Patching and Provisioningによってこれらのアクションが実行されます。

rhpctl modify imageコマンドを使用して、イメージのイメージ・タイプを変更できます。さらに、他のアクションを変更、追加および削除できます。次の2つの表(表7-1および表7-2)はそれぞれ、カスタマイズ可能な操作と、それらの操作の定義に使用できるパラメータを示しています。

表7-1 Oracle Fleet Patching and Provisioningのユーザー定義の操作

操作 パラメータ・リスト
IMPORT_IMAGE

RHP_OPTYPERHP_PHASERHP_PATHRHP_PATHOWNERRHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ADD_WORKINGCOPY

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_PATHRHP_STORAGETYPERHP_USERRHP_NODESRHP_ORACLEBASERHP_DBNAMERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ADD_DATABASE

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_DBNAMERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

DELETE_WORKINGCOPY

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_PATHRHP_PROGRESSLISTENERHOSRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

DELETE_DATABASE

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_DBNAMERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

MOVE_GIHOME

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLRHP_USERACTIONDATA

MOVE_DATABASE

このユーザー・アクションは、パッチ適用操作に関連する各データベースに対して実行します。

実行範囲がALLNODESに設定されている場合は、各クラスタ・ノードの各データベースに対してスクリプトが実行されます。

実行範囲がONENODEに設定されている場合は、パッチがデータベースに適用されたノード上の各データベースに対してスクリプトが実行されます。

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_DATAPATCHRHP_USERACTIONDATA

UPGRADE_GIHOME

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

UPGRADE_DATABASE

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ADDNODE_DATABASE

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_DBNAMERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

DELETENODE_DATABASE

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_DBNAMERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ADDNODE_GIHOME

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_PATHRHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

DELETENODE_GIHOME

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_PATHRHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ADDNODE_WORKINGCOPY

RHP_OPTYPERHP_PHASERHP_WORKINGCOPYRHP_CLIENTRHP_PATHRHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_IMAGERHP_IMAGETYPERHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ZDTUPGRADE_DATABASE

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_SRCGGWCRHP_SRCGGPATHRHP_DSTGGWCRHP_DSTGGPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ZDTUPGRADE_DATABASE_SNAPDB

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_SRCGGWCRHP_SRCGGPATHRHP_DSTGGWCRHP_DSTGGPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ZDTUPGRADE_DATABASE_DBUA

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_SRCGGWCRHP_SRCGGPATHRHP_DSTGGWCRHP_DSTGGPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

ZDTUPGRADE_DATABASE_SWITCHBACK

RHP_OPTYPERHP_PHASERHP_SOURCEWCRHP_SOURCEPATHRHP_DESTINATIONWCRHP_DESTINATIONPATHRHP_SRCGGWCRHP_SRCGGPATHRHP_DSTGGWCRHP_DSTGGPATHRHP_DBNAMERHP_IMAGERHP_IMAGETYPERHP_PROGRESSLISTENERHOSTRHP_PROGRESSLISTENERPORTRHP_VERSIONRHP_CLIRHP_USERACTIONDATA

表7-2 ユーザー定義の操作のパラメータ

パラメータ 説明
RHP_OPTYPE

前の表に示されている、ユーザー・アクションの実行対象の操作のタイプ。

RHP_PHASE

このパラメータは、ユーザー・アクションが操作の前に実行されるか、後に実行されるかを示します(PREまたはPOST)。

RHP_SOURCEWC

アップグレード操作のパッチ用のソースの作業用コピー名。

RHP_SOURCEPATH

ソースの作業用コピーのホームのパス。

RHP_DESTINATIONWC

パッチまたはアップグレード操作用の宛先の作業用コピー名。

RHP_DESTINATIONPATH

宛先の作業用コピーのホームのパス。

RHP_SRCGGWC

アップグレード元のOracle GoldenGate作業用コピーのバージョンの名前。

RHP_SRCGGPATH

アップグレード元のOracle GoldenGateソフトウェア・ホームのバージョンの絶対パス。

RHP_DESTGGWC

アップグレード先のOracle GoldenGate作業用コピーのバージョンの名前。

RHP_DESTGGPATH

アップグレード先のOracle GoldenGateソフトウェア・ホームのバージョンの絶対パス。

RHP_PATH

これは、ソフトウェア・ホームの場所のパスです。このパラメータは、IMPORT_IMAGE操作については、RHPCTLコマンドが実行されているローカル・ノードのパスを表します。その他すべての操作については、このパスは、操作が実行されているサイトに存在します。

RHP_PATHOWNER

インポートされているゴールド・イメージのパスの所有者。

RHP_PROGRESSLISTENERHOST

進捗リスナーがリスニングしているホスト。進捗リスナーのポートとともにこのパラメータを使用してTCP接続を作成し、RHPCTLコマンドが実行されているコンソールに出力を表示できます。

RHP_PROGRESSLISTENERPORT

進捗リスナーがリスニングしているポート。進捗リスナーのホスト名とともにこのパラメータを使用してTCP接続を作成し、RHPCTLコマンドが実行されているコンソールに出力を表示できます。

RHP_IMAGE

操作に関連するイメージ。移動操作の場合は、デスティネーション・イメージの名前が反映されます。

RHP_IMAGETYPE

操作に関連するイメージのイメージ・タイプ。移動操作の場合は、デスティネーション・イメージの名前が反映されます。

RHP_VERSION

Oracle Fleet Patching and Provisioningサーバーで実行されているOracle Grid Infrastructureソフトウェアのバージョン。

RHP_CLI

操作を起動するために実行された正確なコマンド。

RHP_STORAGETYPE

ホームの記憶域のタイプ(LOCALまたはRHP_MANAGED)。

RHP_USER

操作の実行対象となるユーザー。

RHP_NODES

プロファイルが作成されるノード。

RHP_ORACLEBASE

プロビジョニングしたホームのOracleベースの場所。

RHP_DBNAME

作成するデータベースの名前。

RHP_CLIENT

クライアント・クラスタの名前。

RHP_DATAPATCH

このパラメータは、データベースの移動操作の完了後にSQLパッチが実行されるノードで、ユーザー・アクションの最後にTRUEに設定されます。

RHP_USERACTIONDATA

このパラメータはすべての操作に存在し、実行時に引数としてユーザー定義の項目をユーザー・アクションに渡すために使用されます。

ユーザー定義のアクションの例

Apacheデプロイメントのプロビジョニングと管理に使用する、APACHESWというイメージ・タイプがあるとします。また、apacheinstallという名前の、Apacheのゴールド・イメージもあるとします。次の例は、Apacheゴールド・イメージのコピーをプロビジョニングする前に実行されるユーザー・アクションを作成する方法を示しています。

以下は、addapache_useraction.shという名前のサンプル・ユーザー・アクション・スクリプトです。

$ cat /scratch/apacheadmin/addapache_useraction.sh
#!/bin/sh

#refer to arguments using argument names 
touch /tmp/SAMPLEOUT.txt;
for i in "$@"
do
    export $i
done

echo "OPTYPE = $RHP_OPTYPE" >> /tmp/SAMPLEOUT.txt;
echo "PHASE = $RHP_PHASE" >> /tmp/SAMPLEOUT.txt;
echo "WORKINGCOPY = $RHP_WORKINGCOPY" >> /tmp/SAMPLEOUT.txt;
echo "PATH = $RHP_PATH" >> /tmp/SAMPLEOUT.txt;
echo "STORAGETYPE = $RHP_STORAGETYPE" >> /tmp/SAMPLEOUT.txt;
echo "USER = $RHP_USER" >> /tmp/SAMPLEOUT.txt;
echo "NODES = $RHP_NODES" >> /tmp/SAMPLEOUT.txt;
echo "ORACLEBASE = $RHP_ORACLEBASE" >> /tmp/SAMPLEOUT.txt;
echo "DBNAME = $RHP_DBNAME" >> /tmp/SAMPLEOUT.txt;
echo "PROGRESSLISTENERHOST = $RHP_PROGRESSLISTENERHOST" >> /tmp/SAMPLEOUT.txt;
echo "PROGRESSLISTENERPORT = $RHP_PROGRESSLISTENERPORT" >> /tmp/SAMPLEOUT.txt;
echo "IMAGE = $RHP_IMAGE" >> /tmp/SAMPLEOUT.txt;
echo "IMAGETYPE = $RHP_IMAGETYPE" >> /tmp/SAMPLEOUT.txt;
echo "RHPVERSION = $RHP_VERSION" >> /tmp/SAMPLEOUT.txt;
echo "CLI = $RHP_CLI" >> /tmp/SAMPLEOUT.txt;
echo "USERACTIONDATA = $RHP_USERACTIONDATA" >> /tmp/SAMPLEOUT.txt;
$

このスクリプトは、rhpctl add workingcopyコマンドの開始時に実行されるように登録されています。スクリプトが失敗した場合、作業用コピーの追加操作は中止されます。

次のコマンドでは、addapachepreという名前のユーザー・アクションが作成されます。

$ rhpctl add useraction -optype ADD_WORKINGCOPY -pre -onerror ABORT -useraction
  addapachepre -actionscript /scratch/apacheadmin/addapache_useraction.sh
  -runscope ONENODE

次のコマンドでは、APACHESWイメージ・タイプにユーザー・アクションが登録されます。

$ rhpctl modify imagetype -imagetype APACHESW -useractions addapachepre

登録されたユーザー・アクションは、次のように、APACHESWタイプのイメージの作業用コピーをデプロイするコマンドの開始時に自動的に呼び出されます。

$ rhpctl add workingcopy -workingcopy apachecopy001 -image apacheinstall 
  -path /scratch/apacheadmin/apacheinstallloc -sudouser apacheadmin -sudopath
  /usr/local/bin/sudo -node targetnode003 -user apacheadmin -useractiondata "sample"

このサンプル・スクリプトにより、出力ファイル/tmp/SAMPLEOUT.txtが作成されます。例のコマンドに基づいた場合、出力ファイルには次の内容が含まれます。

$ cat /tmp/SAMPLEOUT.txt
OPTYPE = ADD_WORKINGCOPY
PHASE = PRE
WORKINGCOPY = apachecopy001
PATH = /scratch/apacheadmin/apacheinstallloc
STORAGETYPE =
USER = apacheadmin
NODES = targetnode003
ORACLEBASE =
DBNAME =
PROGRESSLISTENERHOST = mds11042003.my.example.com
PROGRESSLISTENERPORT = 58068
IMAGE = apacheinstall
IMAGETYPE = APACHESW
RHPVERSION = 12.2.0.1.0
CLI = rhpctl__add__workingcopy__-image__apacheinstall__-path__/scratch/apacheadmin
 /apacheinstallloc__-node__targetnode003__-useractiondata__sample__
 -sudopath__/usr/local/bin/sudo__-workingcopy__apachecopy__-user__apacheadmin__
 -sudouser__apacheadmin__USERACTIONDATA = sample
$

ノート:

  • 前述の出力の例では、空の値は等号(=)で終了します。

  • RHP_CLIパラメータのコマンドラインの値にあるスペースは、他のパラメータと区別するために、2つのアンダースコア(__)に置き換えられます。