ユーザー定義のアクション
イメージのインポート、作業用コピーの追加および削除、ソフトウェア・ホームの追加、削除、移動およびアップグレードなど、様々な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で異なるアクションを定義する場合などがあります。この場合、次の手順の例のように、新しいイメージ・タイプを定義する必要があります。
-
次のように、ORACLEDBSOFTWAREイメージ・タイプに基づいて、新しいイメージ・タイプ(たとえば、
DB11IMAGE
)を作成します。$ rhpctl add imagetype -imagetype DB11IMAGE -basetype ORACLEDBSOFTWARE
Oracle Database 11gゴールド・イメージを追加またはインポートするときに、
DB11IMAGE
イメージ・タイプを指定します。 -
ユーザー・アクションを定義して、それを
DB11IMAGE
イメージ・タイプおよびアップグレード操作に関連付けます。アップグレードの前または後で異なるアクションを実行できます。 -
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 |
|
ADD_WORKINGCOPY |
|
ADD_DATABASE |
|
DELETE_WORKINGCOPY |
|
DELETE_DATABASE |
|
MOVE_GIHOME |
|
MOVE_DATABASE このユーザー・アクションは、パッチ適用操作に関連する各データベースに対して実行します。 実行範囲が 実行範囲が |
|
UPGRADE_GIHOME |
|
UPGRADE_DATABASE |
|
ADDNODE_DATABASE |
|
DELETENODE_DATABASE |
|
ADDNODE_GIHOME |
|
DELETENODE_GIHOME |
|
ADDNODE_WORKINGCOPY |
|
ZDTUPGRADE_DATABASE |
|
ZDTUPGRADE_DATABASE_SNAPDB |
|
ZDTUPGRADE_DATABASE_DBUA |
|
ZDTUPGRADE_DATABASE_SWITCHBACK |
|
表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 |
これは、ソフトウェア・ホームの場所のパスです。このパラメータは、 |
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 |
ホームの記憶域のタイプ( |
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つのアンダースコア(__
)に置き換えられます。