プライマリ・コンテンツに移動
Oracle® Enterprise Managerライフサイクル管理ガイド
12cリリース5 (12.1.0.5)
B66837-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

51 デプロイメント・プロシージャのカスタマイズ

Oracle Enterprise Manager Cloud Control (Cloud Control)で提供されているデプロイメント・プロシージャは、業界でのすべてのベスト・プラクティスを考慮して作成されているデフォルトのプロシージャです。デプロイメント・プロシージャに含まれている手順により、プロビジョニングとパッチ適用に関するすべての要件を満たすことができます。デフォルトの設定のままデプロイメント・プロシージャを使用して、環境内のターゲットに対してプロビジョニングまたはパッチ適用を行うことはできますが、デプロイメント・プロシージャをカスタマイズして、カスタム手順を追加する、不要な手順を無効化する、認証ツールを使用して別のユーザーとしての一部の手順を実行するといったことも可能です。

デプロイメント・プロシージャをカスタマイズして、様々なエラー処理方法を実装することもできます。たとえば、複数のホストにパラレルでパッチを適用するパッチ操作では、エラーが発生したホストのスキップが適切な場合があります。ただし、デバイス作成におけるエラーによって、その後のプロビジョニング操作が無効になることがあります。したがって、場合によってはこのようなステップのエラーの際にプロシージャ全体を中止する必要があります。

この章では、ニーズに合うようにデプロイメント・プロシージャをカスタマイズする方法を理解することができます。この章の具体的な内容は次のとおりです。

51.1 デプロイメント・プロシージャのカスタマイズ・タイプについて

次に、デプロイメント・プロシージャに対して行えるカスタマイズのタイプを説明します。

タイプ1 タイプ2
カスタム・デプロイメント・プロシージャの編集

Cloud Controlで提供されている既存のカスタム・デプロイメント・プロシージャを編集して、新しいフェーズとステップを追加できます。ただし、パッチ適用の場合、追加できるステップはディレクティブ・ステップまたはホスト・コマンド・ステップのみです。

次のタスクを実行できます。

  • プロシージャ構造の事前定義済ブロックに独自のフェーズとステップを追加します。

  • フェーズとステップを有効化または無効化します。

  • フェーズとステップを削除します。

  • 権限レベルを変更します。

  • エラー処理モードを変更します。

  • 電子メール通知を有効化します。

注意: Oracle所有のデプロイメント・プロシージャは編集できません。そのためには、類似作成の機能を使用してOracle所有のプロシージャをクローニングし、それを編集して変更を含める必要があります。

ユーザー定義デプロイメント・プロシージャの作成

新しいステップ、フェーズ、権限レベルなどを含む独自のデプロイメント・プロシージャを作成できます。

次のタスクを実行できます。

  • プロシージャ構造の事前定義済デフォルト・フェーズに独自のフェーズとステップを追加します。

  • フェーズとステップを有効化または無効化します。

  • 権限レベルを変更します。

  • エラー処理モードを変更します。

  • 電子メール通知を有効化します。

注意: ユーザー定義デプロイメント・プロシージャを作成するための手順は、第50.6項を参照してください。


次の図では、デプロイメント・プロシージャのカスタマイズ・ページを使用して、Cloud Controlで提供されるデフォルト・デプロイメント・プロシージャのコピーを作成する方法を示します。その後、新しいステップやフェーズを追加するか、コピーに含まれる既存のステップやフェーズを編集して、プロシージャをカスタマイズできます。

ステップとフェーズの追加方法の詳細は、第51.2項を参照してください。

cust_create_wizard.gifについては前後の文で説明しています。

51.2 デプロイメント・プロシージャのカスタマイズ

デプロイメント・プロシージャをカスタマイズするための最初の手順は、Cloud Controlで提供されるデフォルト・デプロイメント・プロシージャのコピーの作成です。独自の変更内容で編集およびカスタマイズできるのはコピーだけです。デフォルト・デプロイメント・プロシージャは絶対に変更しないでください。

デプロイメント・プロシージャにフェーズまたはステップを追加して、追加のカスタム・スクリプト、ホスト・コマンドまたはジョブを実行することができます。フェーズとステップの詳細は、第50.3.3項を参照してください。


注意:

フェーズの外部でステップを追加する場合、追加できるステップのタイプは「ジョブ・ステップ」または「手動ステップ」に限定されます。フェーズの外部で、他のステップは追加できません。一方フェーズの内部では、この項で説明するすべてのステップを追加できます。

ここでは、デプロイメント・プロシージャで様々なタイプのフェーズまたはステップを編集する方法を説明します。特に、次の内容について説明します。

51.2.1 デプロイメント・プロシージャのローリングおよびパラレル・フェーズの編集

フェーズの一般情報を編集するには、次の手順に従います。

  1. 「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。

  2. プロビジョニング・ページの「プロシージャ・ライブラリ」タブで、メニューから「新規作成」を選択し、「実行」をクリックします。

  3. 新規プロシージャの作成ページで、「プロシージャ・ステップ」タブをクリックします。

  4. フェーズを選択し、「ステップの編集」をクリックして、フェーズを編集します。

  5. 作成ウィザードで、次の手順を実行します。

    1. 作成ページに、フェーズの一般情報が表示されます。必要に応じてを変更し、「次へ」をクリックします。

    2. ターゲット・リストの選択ページで、新しいフェーズを実行するターゲットのタイプを指定します。

      プロシージャの作成中に宣言されたターゲット・リストがすべてドロップダウン・メニューにリストされるので、このフェーズで使用するターゲット・リストを選択します。実際のターゲットは、プロシージャの起動時に選択できます。

    3. 確認ページで、新しいフェーズを作成するために指定した情報を確認して、「終了」をクリックします。フェーズの変更が保存されます。

51.2.2 デプロイメント・プロシージャのジョブ・ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. タイプの選択ページでは、ジョブ・タイプの詳細を表示できます。

  3. パラメータのマップ・ページでは、変数値を更新するか、新しい変数値を設定できます。また、ターゲット・リストに使用する資格証明を更新することもできます。

  4. 確認ページで、更新を確認し、「終了」をクリックします。

51.2.3 デプロイメント・プロシージャのディレクティブ・ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. 「ディレクティブの選択」ページで、次のいずれかのオプションを選択できます。

    - 新規ディレクティブの選択: ソフトウェア・ライブラリで使用できるすべてのディレクティブがリストされます。このリストから、ターゲットで実行するディレクティブを選択します。検索結果を絞り込むには、「ディレクティブの選択」セクションで必要な値を指定します。

    - ディレクティブの選択の保持: このオプションでは、このステップの作成時に選択したのと同じディレクティブを使用できます。

  3. プロパティのマップ・ページで、次の詳細を確認します。

    • デフォルトでは、「ディレクティブの実行」および「クリーンアップの実行」オプションが有効になり、スクリプトの実行、およびステップの実行後のファイルの削除が可能です。必要に応じて無効にできます。

    • 「ディレクティブのプロパティ」セクションで、選択したディレクティブに関連付けられているプロパティに値を指定します。この時点では、プロパティ値を指定しても指定しなくてもかまいません。プロパティ値を指定しない場合は、プロシージャの起動時に要求されます。

    • 「資格証明」セクションで、このステップに適用するターゲット・リストを設定します。

    • 「時間制限のプロパティ」セクションで、操作の完了にかけることのできる最大時間(秒)を更新できます。

  4. 確認ページで、更新を確認し、「終了」をクリックします。

51.2.4 デプロイメント・プロシージャのコンポーネント・ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. 「コンポーネントの選択」ページで、次のいずれかのオプションを選択できます。

    - 選択の保持: このオプションでは、このステップの作成時に選択したのと同じコンポーネントを使用できます。

    - 新規コンポーネントの選択: ソフトウェア・ライブラリで使用できるすべてのコンポーネントがリストされます。このリストから、ターゲットで実行するコンポーネントを選択します。検索結果を絞り込むには、「コンポーネントの選択」セクションで必要な値を指定します。

    「プロシージャ変数」タブでソフトウェア・ライブラリ変数を設定した場合は、次の2つのオプションが追加で表示されます。

    - 新しいソフトウェア・ライブラリ・エンティティ変数の選択: 「ソフトウェア・ライブラリ・エンティティ変数」ドロップダウン・メニューから、プロシージャの作成中に宣言したソフトウェア・ライブラリ変数を選択します。この変数はプレースホルダとして機能するので、プロシージャの起動時に動的にコンポーネントにバインドできるという柔軟性があります。基本的には、この変数を使用して、パラメータを必要としない特定のエンティティを選択します。

    たとえば、パラメータを渡す必要のない現在のディレクトリの場所を印刷する、Perlなどのユーザー定義のスクリプトです。

    - コンポーネント・プロパティとともに新しいソフトウェア・ライブラリ・エンティティ変数を選択: ソフトウェア・ライブラリで使用できるコンポーネントに、ソフトウェア・ライブラリ・エンティティ変数をバインドできます。必ず、宣言されたエンティティにプロパティ(シグネチャ)が一致するコンポーネントを選択してください。

  3. 「ディレクティブの選択」ページで、次のいずれかのオプションを選択できます。

    - ソフトウェア・ライブラリ・エンティティ変数の選択の保持: このオプションでは、このステップの作成時に選択したのと同じディレクティブを使用できます。

    - 新規ディレクティブの選択: ソフトウェア・ライブラリで使用できるすべてのディレクティブがリストされます。このリストから、ターゲットで実行するディレクティブを選択します。検索結果を絞り込むには、「ディレクティブの選択」セクションで必要な値を指定します。

    「プロシージャ変数」タブでソフトウェア・ライブラリ変数を設定した場合は、次の2つのオプションが追加で表示されます。

    - 新しいソフトウェア・ライブラリ・エンティティ変数の選択: 「ソフトウェア・ライブラリ・エンティティ変数」ドロップダウン・メニューから、プロシージャの作成中に宣言したソフトウェア・ライブラリ変数を選択します。この変数はプレースホルダとして機能するので、プロシージャの起動時に動的にディレクティブにバインドできるという柔軟性があります。基本的には、この変数を使用して、パラメータを必要としない特定のエンティティを選択します。

    たとえば、パラメータを渡す必要のない現在のディレクトリの場所を印刷する、Perlなどのユーザー定義のスクリプトです。

    - ディレクティブ・プロパティとともに新しいソフトウェア・ライブラリ・エンティティ変数を選択: このオプションでは、ソフトウェア・ライブラリで使用可能なディレクティブで、ソフトウェア・ライブラリ・エンティティ変数をバインドできます。必ず、宣言されたエンティティにプロパティ(シグネチャ)が一致するディレクティブを選択してください。

  4. プロパティのマップ・ページで、次の詳細を確認します。

    • デフォルトでは、「ディレクティブの実行」および「クリーンアップの実行」オプションが有効になり、スクリプトの実行、およびステップの実行後のファイルの削除が可能です。必要に応じて無効にできます。

    • 「ディレクティブのプロパティ」セクションで、選択したディレクティブに関連付けられているプロパティに値を指定します。この時点では、プロパティ値を指定しても指定しなくてもかまいません。プロパティ値を指定しない場合は、プロシージャの起動時に指定するよう求められます。

    • 「資格証明」セクションで、このステップに適用するターゲット・リストを設定します。

    • 「時間制限のプロパティ」セクションで、操作の完了にかけることのできる最大時間(秒)を更新できます。2つのオプションがある場合は、インタビュー時間にラジオ・ボタンが表示されます。3つ以上のオプションがある場合は、表示メニューが表示されます。

  5. 確認ページで、更新を確認し、「終了」をクリックします。

51.2.5 デプロイメント・プロシージャのファイル転送ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. プロパティのマップ・ページで、ファイル転送元の「ソース・ターゲット」とソース・ターゲットのパス、ファイル転送先のコピー先ターゲットとコピー先のパスを選択します。「ソース資格証明」と「接続先資格証明」の「使用状況」、ホスト資格証明と特権ホスト資格証明のどちらかを指定します。「次へ」をクリックします。

    このパスのすべてのファイルを転送オプションを選択した場合は、ソース・パスのすべてのファイルが転送されます。このオプションを選択しない場合、「ソース・ファイル名」フィールドは必須になります。

  3. 確認ページで、更新を確認し、「終了」をクリックします。

51.2.6 デプロイメント・プロシージャのホスト・コマンド・ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. コマンドの入力ページで、ターゲットで実行するコマンドまたはスクリプトと、実行するための権限を指定します。

    ホスト・コマンドをスクリプトとして実行するには、「コマンド・タイプ」リストから「スクリプト」を選択します。スクリプトを解析できるシェルを指定してください。スクリプトは、指定したインタプリタに標準入力として渡されます。

    ホスト・コマンドをコマンドラインとして実行するには、「コマンド・タイプ」リストから「単一操作」を選択します。コマンドラインとして実行するテキストを指定してください。このコマンドラインを解析するシェルは想定されていません。コマンドラインの最初の入力は生成するプロセスとみなされ、コマンドラインの残りはこのプロセスに引数として渡されます。このため、ls -a /tmpのコマンドラインにより、(現在のパスに対して、あるいはOracle Management Agentによって設定されたパスに対して) lsのプロセスが生成され、このプロセスに-aが1番目の引数、/tmpが2番目の引数として渡されます。

    注意: コマンドライン・モードでは、コマンドラインの最初の部分が生成するプロセスとみなされます。このため、解決のためにPATH環境変数に依存するシェルの内部処理とコマンドは認識されません。そのようなコマンドを使用する場合は、そのコマンドラインを解釈するシェルを付加する必要があります。

    たとえば、コマンドcd /tmp && rm -rf xは、"cd"がプロセス、"/tmp, &&, rm, -rf, x"が引数として展開されます。これを修正するには、コマンドラインを/bin/csh -c "cd /tmp && rm -rf x"に変更します。

    別の例では、コマンドexport PATH=/opt:${PATH}; myopt -installは、"export"をプロセス、"PATH=/opt:${PATH};, myopt, -install"を引数として展開されます。これを修正するには、/bin/sh -c "export PATH=/opt:${PATH}; myopt -install"を使用します。

  3. 「時間制限のプロパティ」セクションで、スクリプトにかけることのできる最大時間(秒)を設定できます。たとえば、この値を75秒に設定した場合、スクリプトの実行時に設定時間を超えると、このステップはスキップされます。

  4. 確認ページで、更新を確認し、「終了」をクリックします。

51.2.7 デプロイメント・プロシージャの手動ステップの編集

編集ウィザードで、次の操作を実行します。

  1. 編集ページで、ステップの一般情報を確認します。値を更新する場合は、表51-1で説明されているステップの一般情報に従います。

  2. 方法の入力ページで、手動ステップに関してオペレータに通知するメッセージを指定します。たとえば、システムにログインしてカーネル・パラメータを更新するようにオペレータに指示する場合は、次のように指定します。

    You have been logged out of the system. Log in and update the Kernel parameters. 
    
  3. 確認ページで、更新を確認し、「終了」をクリックします。

表51-1 フィールドの説明 - ステップのカスタマイズ

フィールド名 説明

選択

「ステップ」を選択します。

名前

カスタム・ステップの名前を指定します。

説明

カスタム・ステップの説明を指定します。

条件

このフィールドを空白のままにします。

挿入場所

選択したステップの後にカスタム・ステップを挿入する場合は、「"ステップ名"の後」を選択します。それ以外の場合は、「"ステップ"の前」を選択します。

タイプ

  • ジョブ・ステップの場合は「ジョブ」を選択します。

  • ディレクティブ・ステップの場合は「ライブラリ: ディレクティブ」を選択します。

  • 汎用コンポーネントの場合は「ライブラリ: コンポーネント」を選択します。

  • ファイル転送ステップの場合は「ファイル転送」を選択します。

  • 手動ステップの場合は「手動」を選択します。

  • ホスト・コマンド・ステップの場合は「ホスト・コマンド」を選択します。

エラー処理

カスタム・フェーズに設定するエラー処理モードを選択します。デプロイメント・プロシージャのすべてのステップには、エラー処理モードが事前に構成されています。これにより、フェーズまたはステップでエラーが発生した際にデプロイメント・プロシージャの動作が指示されます。Cloud Controlでは次のエラー処理モードが提供されています。

- 継承 - 包含するフェーズに設定されているエラー処理モードを継承します。(フェーズの外部のステップに設定されると、デプロイメント・プロシージャのエラー処理モードを継承します)。

- エラー時に停止 - エラーが発生した場合に停止します。エラーを修正するか、オーバーライドするまでは、デプロイメント・プロシージャは次のステップに進みません。

- エラー時も続行 - エラーが発生した場合でも続行します。

- ターゲットをスキップ - リストで失敗したターゲットを無視し、他のターゲットで続行します。


51.3 実行時にデプロイメント・プロシージャ変数に値を割り当てるためのワークフロー例

Enterprise Manager 12.1.0.3 (パッチ・セット2)以上では、PAF機能ドメイン内のコマンド・ブロックを使用する新しい機能が導入されています。コマンド・ブロックは、ホストで実行中のスクリプトにより出力ストリームに印刷される必要のある一連の文字列です。次の形式に従います。

$$$--*$$'
<commandBlock>
<executeProc name="MGMT_PAF_UTL.UPDATE_RUNTIME_DATA">
<scalar>%job_execution_id%</scalar>
<scalar>${data.<DP_VARIABLE_NAME>}</scalar>
<scalar><DP_VARIABLE_VALUE></scalar>
</executeProc>
</commandBlock>
$$$*--$$

Where,you need to enter the values for <DP_VARIABLE_NAME> and <DP_VARIABLE_VALUE>

Example:
In the following example, isPingSuccessful is the DP variable, and true is the value.
print '$$$--*$$';
print '<commandBlock>';
print '<executeProc name="MGMT_PAF_UTL.UPDATE_RUNTIME_DATA"> ';
print '<scalar>%job_execution_id%</scalar> ';
print '<scalar>${data.isPingSuccessful}</scalar> ';
print '<scalar>true</scalar> ';
print '</executeProc>';
print '</commandBlock>';
print '$$$*--$$';

任意の言語(シェル、Perlなど)を使用して、ホストで実行するスクリプトを記述できます。前述のコマンド・ブロックを出力ストリームに印刷できるかぎり、プロシージャ変数は更新されます。

この機能を使用すると、ランタイム時にプロシージャで宣言された変数の値を更新できます。また、コマンド・ブロック機能を使用すると、リモート・マシン(エージェント)から生成された出力の自動後処理の実行が可能になり、この出力はOMSにアップロードされてジョブ・システムで処理されます。PAFでは、この機能を使用して、コマンド・ブロック形式の出力を持つプロシージャ内のステップを定義できます。コマンド・ブロック内では、SQLプロシージャを起動して、プロシージャ変数に値を割り当てることができます。


注意:

実行時にコマンド・ブロックを使用してプロシージャで宣言された変数を更新できるのは、ディレクティブ・ステップ、コンポーネント・ステップおよびジョブ・ステップのみです。

次の例に、ターゲットでコマンドを実行して、ランタイム時にプロシージャの変数を更新する方法を示します。この例では、プロシージャのディレクティブ・ステップを使用して、pingコマンドをホストで実行します。pingコマンドが成功すると、ディレクティブはプロシージャの値をtrueに設定します。失敗すると、ディレクティブはプロシージャの値をfalseに設定します。

proc_workflow_example.gifについては前後の文で説明しています。

次に示すのは、高レベルのステップです。

表51-2 ランタイム時の変数値の割当て

ステップ 詳細

手順1

ローカル・ホストで、TestPingAndSetDPVariable.plという名前のPerlファイルを作成します。詳細は、51.3.1項を参照してください。

手順2

Perlスクリプトをソフトウェア・ライブラリにアップロードします。手順の詳細なリストについては、第51.3.2項を参照してください。

手順3

変数isPingSucessfullを追加するプロシージャと、コマンド・ブロックの印刷と前の手順で作成したディレクティブのコールを行ういくつかのプロシージャ・ステップを作成します。詳細は、51.3.3項を参照してください。

手順4

プロシージャを実行します。詳細は、第51.3.4項を参照してください。

手順5

変数の詳細を確認します。詳細は、第51.3.5項を参照してください。


51.3.1 ステップ1: 実行時にデプロイメント・プロシージャ変数に値を割り当てるPerlスクリプトの作成

任意のエディタを開き、次のコード行をコピーして、ファイルをPerlスクリプトとして保存します。

system("ping", "-c", "1", "127.0.0.1");
if ( $? == 0 )
{  
  # below 9 lines of print statements set the DP variable "isPingSuccessful" as "true" string
  print '$$$--*$$';
  print '<commandBlock>';
  print '<executeProc name="MGMT_PAF_UTL.UPDATE_RUNTIME_DATA"> ';
  print '<scalar>%job_execution_id%</scalar> ';
  print '<scalar>${data.isPingSuccessful}</scalar> ';
  print '<scalar>true</scalar> ';
  print '</executeProc>';
  print '</commandBlock>';
  print '$$$*--$$';
} 
else 
{
  # below 9 lines of print statements set the DP variable "isPingSuccessful" as "false" string
  print '$$$--*$$';
  print '<commandBlock> ';
  print '<executeProc name="MGMT_PAF_UTL.UPDATE_RUNTIME_DATA"> ';
  print '<scalar>%job_execution_id%</scalar> ';
  print '<scalar>${data.isPingSuccessful}</scalar> ';
  print '<scalar>false</scalar> ';
  print '</executeProc> ';
  print '</commandBlock>';
  print '$$$*--$$ ';
}

51.3.2 ステップ2: ソフトウェア・ライブラリへのTestPingAndDPvariable.plのアップロード

ソフトウェア・ライブラリでディレクティブ・エンティティを作成するには、次の手順に従います。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「ソフトウェア・ライブラリ」をクリックします。

  2. ソフトウェア・ライブラリ・ホームページで、任意のユーザー所有のディレクティブ・フォルダを右クリックします。コンテキスト・メニューから、「エンティティの作成」を選択し、「ディレクティブ」をクリックします。「ディレクティブの作成」ページが表示されます。

  3. 「説明」ページで、フォルダの一意の名前を入力します。たとえば、TestPingAndSetDPVariableを入力します。「次へ」をクリックします。

  4. 「構成」ページの「プロパティの構成」セクションで、「シェル・タイプ」リストから「Perl」を選択します。「次へ」をクリックします。

  5. 「ファイルの選択」ページの「宛先の指定」セクションで、指定したファイルをアップロードするための任意のソフトウェア・ライブラリのアップロード場所を選択します。

    「ソースの指定」セクションで、「ファイル・ソース」を「ローカル・マシン」として選択します。「加算」をクリックし、ローカル・ホストからPerlスクリプトTestPingAndDPVariable.plを選択します。「次へ」をクリックします。

  6. すべての詳細を確認し、「保存とアップロード」をクリックします。


関連項目:

詳細は、『Oracle Enterprise Manager Cloud Control管理者ガイド』を参照してください。

51.3.3 ステップ3: デプロイメント・プロシージャの作成

プロシージャを作成するには、次の手順に従います。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」をクリックします。

  2. 「プロシージャ・ライブラリ」ページでメニューから、「新規作成」を選択し、「実行」をクリックします。

  3. 「一般情報」ページで、プロシージャの一意の名前を入力します。

  4. 「新規プロシージャの作成」ページで、「プロシージャ変数」をクリックします。「行を追加」をクリックし、次の詳細を入力します。

    proc_var.gifについては前後の文で説明しています。
  5. 「プロシージャ・ステップ」タブをクリックします。「デフォルト・フェーズ」を選択し、「挿入」をクリックして、次のステップをデフォルト・フェーズに追加します。

    1. プロシージャを実行する前に変数の値を印刷するホスト・コマンド・ステップを追加します。次に手順を示します。「作成」ページで、メニューから「ホスト・コマンド」を選択して、ステップの一意の名前を入力し、「次」をクリックします。「コマンドの入力」ページで、値echo Before String is: "${data.isPingSuccessful}"を入力します。

      注意: DPコードのDP変数isPingSuccessfulにアクセスする式は、${data.isPingSuccessful}です。

      「次へ」をクリックします。詳細を確認して、「終了」をクリックします。

    2. ソフトウェア・ライブラリにアップロードされたディレクティブをコールするためのpingと呼ばれるディレクティブ・ステップを追加します。これを行うには、「作成」ページで、ステップに対して一意の名前を入力し、「タイプ」メニューから「ディレクティブ」を選択します。「ディレクティブの選択」ページで、文字列%Ping%を検索します。アップロードしたディレクティブを選択し、をクリックします。「プロパティのマップ」ページで、すべてをデフォルト値のままにすることができます。「確認」ページで、「終了」をクリックします。

    3. プロシージャを実行した後に変数の値を印刷するホスト・コマンド・ステップを追加します。次に手順を示します。「作成」ページで、メニューから「ホスト・コマンド」を選択して、ステップの一意の名前を入力し、「次」をクリックします。「コマンドの入力」ページで、値echo After String is: "${data.isPingSuccessful}"を入力します。「次へ」をクリックします。詳細を確認して、「終了」をクリックします。

  6. 「保存して閉じる」をクリックします。

51.3.4 ステップ4: プロシージャの起動および実行時の変数値の入力

次のようにプロシージャを実行します。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」をクリックします。

  2. 「プロシージャ・ライブラリ」ページで、前の手順で作成したプロシージャを選択し、「起動」をクリックします。「プロシージャ・インタビュー」ページが表示されます。

  3. 「ターゲットの選択」ページで、このプロシージャを実行するターゲットを選択します。「次へ」をクリックします。

  4. 「変数の設定」ページで、isPingSuccessful変数に対して、次の値を入力します。

    This is the Value I Entered.
    

    「次へ」をクリックします。

  5. 「資格証明」ページで、ターゲットの資格証明を設定します。

  6. 「スケジュール」ページで、「即時」を選択し、「発行」をクリックします。

  7. 「発行名」を入力し、「OK」をクリックします。

51.3.5 ステップ5: デプロイメント・プロシージャ変数値の確認

プロシージャ発行の様々な段階で変数値を確認するには、次の手順に従います。

  1. 「プロシージャ・アクティビティ」ページで、発行したプロシージャ・インスタンスを選択します。

  2. プロシージャ・インスタンスの実行ページで、ステップPrint Beforeを選択します。このステップは、発行時に入力した変数値を印刷します。

    Proc_activity_printbefore.gifについては前後の文で説明しています。

    「コマンドの実行」ブロックに次の出力が表示されます。

    Before String is: This is the Value I entered.
    
  3. プロシージャ・インスタンスの実行ページで、ステップPingを選択します。


    注意:

    Pingステップが実行され、pingコマンドが正常に終了します。ただし、Perlスクリプト内でコマンド・ブロック文字列を印刷するprint文は、表示されません。これは、これらの特別なコマンド・ブロック文字列は、ジョブ・ストリームにより解析され、プロシージャ変数の割当てロジックを処理するために使用されるためです。

    proc_activity_ping.gifについては前後の文で説明しています。
  4. プロシージャ・インスタンスの実行ページで、ステップPrint Afterを選択します。このステップは、変数値をtrueとして印刷します。この値は、ホストで実行したディレクティブにより設定されます。

    proc_activity_printafter.gifについては前後の文で説明しています。

    「コマンドの実行」ブロックに次の出力が表示されます。

    After String is: true
    

    このように、ターゲットで実行した他のコマンドにより戻される出力に応じて、ディレクティブ・ステップを使用してプロシージャ変数をランタイム時に操作できます。

51.4 デプロイメント・プロシージャのエラー処理モードの変更

デプロイメント・プロシージャのすべてのステップには、エラー処理モードが事前に構成されています。これにより、フェーズまたはステップでエラーが発生した際にデプロイメント・プロシージャの動作が指示されます。Cloud Controlでは次のエラー処理モードが提供されています。

  • 継承 - 含まれるフェーズに設定されたエラー処理モードを継承します。(フェーズの外部のステップに設定されると、デプロイメント・プロシージャのエラー処理モードを継承します)。

  • エラー時に停止 - エラーが発生すると停止します。エラーを修正するか、オーバーライドするまでは、デプロイメント・プロシージャは次のステップに進みません。

  • エラー時も続行 - エラーが発生しても続行します。

  • ターゲットをスキップ: - リスト上の失敗したターゲットを無視し、他のターゲットに進みます。

ステップの詳細は、第50.3.3項を参照してください。

エラー処理モードを変更するには、次の手順を実行します。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。

  2. プロビジョニング・ページで、カスタマイズするデプロイメント・プロシージャを選択して、「類似作成」をクリックします。

  3. 類似作成プロシージャ・ページで「プロシージャ・ステップ」タブをクリックし、ステップまたはフェーズを選択して、「エラー処理モード」を変更します。

    リストからモードを選択すると、該当のフェーズまたはステップに対して新たに選択されたモードを使用してページが自動的にリフレッシュされます。

次の例は、「Oracleデータベースのプロビジョニング」デプロイメント・プロシージャをカスタマイズして、「宛先ユーザー権限のチェック」フェーズのエラー処理モードを変更する様子です。

cust_eg_errmode.gifについては前後の文で説明しています。

51.5 デプロイメント・プロシージャのステータスに関する電子メール通知の設定

Cloud Controlは、デプロイメント・プロシージャのステータスを報告するために電子メール通知を送信できます。ただし、デフォルトではデプロイメント・プロシージャのこの機能は有効ではありません。電子メール通知を送信するには、スーパー管理者がEnterprise Manager内で送信メール(SMTP)サーバーを構成する必要があります。その後、管理者が、通知を受信するための電子メール・アドレスとパスワードを指定する必要があります。

電子メール通知の有効化は次のような2段階のプロセスです。


重要:

前提条件として、Cloud Controlでメール・サーバーを構成し、電子メール・アドレスを設定しておく必要があります。

51.5.1 Enterprise Managerでの送信メール(SMTP)サーバーの構成

Enterprise Managerが電子メール通知を送信するには、送信メール(SMTP)サーバーを設定しておく必要があります。


注意:

権限を持つユーザーのみがSMTPサーバーを構成できます。

notification.gifについては前後の文で説明しています。

SMTPサーバーを設定するには、次の手順を実行します。

  1. Cloud Controlで、「設定」メニューから「通知」を選択し、「通知メソッド」を選択します。

  2. 設定ページの「メール・サーバー」セクションで、1つ以上の送信メール・サーバーとオプションのポート番号を入力します(ポート番号を空白にしておくとデフォルトでポート25が使用されます)。

  3. 「ユーザー名」「パスワード」など、メール・サーバーの認証資格証明を入力します。「ユーザー名」フィールドと「パスワード」フィールドで、すべてのメール・サーバーに使用される1セットの認証資格証明を指定できます。メール・サーバーの認証が必要ない場合は、「ユーザー名」および「パスワード」(および「パスワードの確認」)フィールドをブランクのままにしておいてください。

  4. 通知メッセージの送信者として表示する名前を「送信者ID」フィールドに入力します。

  5. 電子メール通知の送信に使用する電子メール・アドレスを「送信者の電子メール・アドレス」に入力します。インシデント・ルールを使用する際、電子メールの送信に関する問題はすべて自動的に「送信者の電子メール・アドレス」に送信されます。


    注意:

    このページで指定する電子メール・アドレスは、通知の送信先の電子メール・アドレスではありません。この電子メール・アドレス(通知の送信先)は「プリファレンス」の「一般」ページで指定する必要があります。電子メール通知のために電子メール・アドレスを指定する方法については、第51.5.2項を参照してください。

  6. 「セキュアな接続を使用」では、使用するSMTP暗号化方法を選択できます。次の3つのオプションがあります。

    • いいえ: 電子メールが暗号化されません。

    • SSL: 電子メールは、Secure Sockets Layerプロトコルで暗号化されます。

    • 使用可能な場合はTLS: メール・サーバーがTransport Layer Security (TLS)プロトコルをサポートしている場合、電子メールはTLSを使用して暗号化されます。サーバーがTLSをサポートしない場合、電子メールは自動的にプレーン・テキストで送信されます。

次に例を示します。

次の例では、ポート587のsmtp01.example.comとポート25 (デフォルト・ポート)のsmtp02.example.comという、2つのメール・サーバーが指定されています。1つの管理者アカウント(myadmin)が両方のサーバーで使用されます。

送信メール(SMTP)サーバー: smtp01.example.com:587smtp02.example.com

ユーザー名: myadmin

パスワード: ********

パスワードの確認: ********

送信者の識別: EMD Notifications

送信者の電子メール・アドレス: mgmt_rep@example.com

セキュアな接続を使用: SSL

51.5.2 Enterprise Manager通知用の電子メール・アドレスの追加

通知スケジュールを定義する場合、通知の送信先の電子メール・アドレスを1つ以上指定します。通知用電子メール・アドレスを定義する以外に、各電子メール・アドレスで使用される通知メッセージの書式(長いまたは短い)を関連付けます。

電子メール・アドレスは128文字以内で、必要な数だけ指定できます。

電子メール・アドレスを追加する手順は、次のとおりです。

  1. Cloud Controlで、「設定」メニューから「通知」を選択し、「通知スケジュール」を選択します。

  2. Enterprise Manager管理者を指定し、「スケジュールの定義」をクリックします。

  3. 事前に電子メール・アドレスが管理者に定義されていない場合、管理者の電子メール・アドレスの定義を求めるメッセージが表示されます。「電子メール・アドレスを設定するにはここをクリックします。」をクリックします。「一般」ページが表示されます。

  4. 「行の追加」をクリックすると、新規の電子メール項目が「電子メール・アドレス」表に作成されます。

  5. Enterprise Managerアカウントに関連付けられた電子メール・アドレスを指定します。Enterprise Managerから受信するすべての電子メール通知が、指定した電子メール・アドレスに送信されます。たとえば、user1@example.comuser2@example.comなどです。

  6. 追加の電子メール・アドレスが必要な場合は、「行の追加」をクリックして、電子メール・アドレスを入力し、書式を選択します。

  7. 電子メール・アドレスを選択し、「テスト」をクリックすることで、そのアドレスがEnterprise Managerからの電子メールを受信するように正しく構成されているかどうかを確認できます。

  8. テストの終了後、「適用」をクリックして変更を保存します。

通知用電子メール・アドレスを定義すると、これらのアドレスは通知スケジュールを定義する際に表示されます。たとえば、user1@example.comuser2@example.comuser3@example.comです。これらの電子メール・アドレスの1つ以上を、インシデント・ルールの電子メール通知の送信先として使用するように選択できます。

51.6 カスタマイズしたプロビジョニング・エンティティをEnterprise Managerサイト間でコピー

Enterprise Managerインストール環境で、他のEnterprise Manager環境に適用したいプロビジョニング・バンドルをカスタマイズした場合には、次の手順を実行します。プロビジョニング・エンティティには、プロシージャ定義またはソフトウェア・ライブラリ・エンティティ、あるいはその組合せを含めることができます。

この項の内容は次のとおりです。

51.6.1 カスタマイズしたプロビジョニング・エンティティをEnterprise Managerサイト間でコピーするための前提条件

次の点を確認します。

  • カスタムしたプロビジョニング・エンティティが、ソース・サイトのシステムにあること。

  • ソース管理者が、カスタマイズしたプロビジョニング・エンティティにソース・サイトでアクセスできること。

  • ソース管理者が、プロビジョニング・エンティティのエクスポートに必要な権限を持っていること。

  • コピー先サイトがソース・サイトと同じように設定されており、両方に同じバージョンのEnterprise Managerがインストールされていること。

  • コピー先の管理者は、プロビジョニング・エンティティのインポートに必要な権限を持っています。

51.6.2 カスタマイズしたプロビジョニング・エンティティをEnterprise Managerサイト間でコピー

次の手順に従います。

  1. 次のコマンドでPARファイルをエクスポートします。

    emctl partool export -guid <procedure guid> -file <file> -displayName <name> -description <desc> -metadataOnly(optional)
    
  2. プロビジョニング・エンティティをインポートする場合には、次のようにしてemctl partoolを使用できます。

      emctl partool <deploy|view> -parFile <file> -force(optional)
      emctl partool <deploy|view> -parFile <file> -force(optional) -ssPasswd <password>
      emctl partool <deploy|view> -parDir <dir> -force(optional)
    
  3. あるいは、次の手順で説明するようにCloud ControlからPARファイルをインポートする方法もあります。

    1. 「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。

    2. プロシージャ・ライブラリ・ページのリストで「インポート」を選択し、「実行」をクリックします。

  4. プロシージャ・ファイルのアップロード・ページで、次のいずれかを選択します。

    • ローカル・マシンからアップロード: PARファイルがローカル・マシンに格納されている場合。「参照」をクリックし、アップロードするPARファイルを選択します。「インポート」をクリックします。

    • 管理エージェント・マシンからアップロード: PARファイルを管理エージェント・マシンに格納した場合。「ターゲット」をクリックし、ホストを選択します。「ファイルの選択」をクリックし、PARファイルを選択します。「インポート」をクリックします。

  5. インポートしたエンティティを適用します。

51.7 ディレクティブをカスタマイズするためのワークフロー例

基本的にディレクティブはソフトウェア・ライブラリに格納されるスクリプトです。デプロイメント・プロシージャ内のディレクティブ・ステップという特別なタイプのアクション・ステップで使用されます。ディレクティブ・ステップを追加する手順の詳細は、「ディレクティブ・ステップの追加」を参照してください。

Cloud Controlで提供されるディレクティブをカスタマイズする場合は、まず、そのディレクティブに関連付けられているPerlスクリプトのコピーを作成し、そのコピーから新しいディレクティブを作成します。次に、デプロイメント・プロシージャをカスタマイズして、この新しいディレクティブを使用するステップを変更し、デプロイメントをスケジュールします。この項の内容は次のとおりです。

51.7.1 デフォルト・ディレクティブのコピーの作成とアップロード

デフォルト・ディレクティブを使用してカスタマイズしたディレクティブを新たに作成するには、次の手順を実行します。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「ソフトウェア・ライブラリ」を選択します。

  2. ソフトウェア・ライブラリ・ページの表で、ソフトウェア・ライブラリを展開し、そのカテゴリの下のレベルをさらに展開して、コピーするディレクティブを表示します。

    たとえば、パッチ適用操作の「パッチの適用」ディレクティブをコピーする場合は、「ソフトウェア・ライブラリ」を展開してから「パッチ適用」を展開します。このレベルで、「共通」「すべて」、最後に「汎用」を展開します。「汎用」の下にディレクティブ「パッチの適用」が表示されます。

  3. コピーするディレクティブを選択して「類似作成」をクリックし、このディレクティブのコピーをカスタム・フォルダ「ディレクティブ」に格納します。

  4. このカスタム・ディレクティブを選択し、「編集」をクリックします。

  5. ディレクティブの作成ウィザードで、次の手順を実行します。

    1. 説明ページに、作成するディレクティブの説明を入力します。

    2. 構成ページで、「追加」をクリックして、コマンドライン引数がディレクティブに渡されるように指定します。Perlスクリプトを追加するため、「シェル・タイプ」は「Perl」に設定します。スクリプトがPerlでもBashでもない場合は、「スクリプトで定義」に設定します。

      各エントリは1つのコマンドライン引数を表します。各引数に含まれる変数には、後で設定するもの、接頭辞および接尾辞があります。接頭辞と接尾辞のテキストが、プロパティ値の前や後に付加されて、コマンドライン引数になります。

      このステップを繰り返して、すべてのコマンドライン引数を追加します。

    3. ファイルの選択ページで「ファイルのアップロード」を選択します。ソースの指定セクションで「ローカル・マシン」を選択し、「追加」をクリックして、変更したperlファイルを選択します。

    4. 「保存とアップロード」をクリックします。

51.7.2 新しいディレクティブを使用するデプロイメント・プロシージャのカスタマイズ

新しいディレクティブを使用するようにデプロイメント・プロシージャをカスタマイズするには、次の手順を実行します。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。

  2. プロビジョニング・ページで、この新しいディレクティブを使用するデプロイメント・プロシージャを選択して、「類似作成」をクリックします。

  3. 類似作成プロシージャ・ページで「プロシージャ・ステップ」タブを選択し、次の手順を実行します。

    1. このデプロイメント・プロシージャ内のすべてのステップが含まれる表で、新しいディレクティブを関連付けるディレクティブ・ステップを選択し、「ステップの編集」をクリックします。

    2. ディレクティブ・ステップの編集ウィザードで次の手順を実行します。

      1. 編集ページで「次へ」をクリックします。

      2. ディレクティブの選択ページで「新規ディレクティブの選択」を選択します。次に、作成した新しいディレクティブを検索して選択し、「次へ」をクリックします。

      3. プロパティのマップ・ページで、ディレクティブ・プロパティの値を指定し、「次へ」をクリックします。

      4. 確認ページで「終了」をクリックします。

    3. 「保存」をクリックします。

51.7.3 カスタマイズされたデプロイメント・プロシージャの実行

カスタマイズされたデプロイメント・プロシージャを実行するには、次の手順を実行します。

  1. Cloud Controlで、「エンタープライズ」メニューから「プロビジョニングとパッチ適用」を選択し、「プロシージャ・ライブラリ」を選択します。

  2. プロビジョニング・ページで、カスタマイズされたデプロイメント・プロシージャを選択して、「デプロイメントのスケジュール」をクリックします。