第7章 イベントに応じたタスクの自動化
Lenovo XClarity Administrator によって管理されるサーバーに特定のイベントが生じた際に、CloudForms の Lenovo 物理インフラストラクチャープロバイダーを通じて、特定のタスクを自動的に実行することができます。自動化タスクを作成するには、カスタムドメインを作成して設定する必要があります。特定のイベントが生じた際にタスクを自動的に呼び出すには、カスタムポリシーを作成、設定、および割り当てる必要があります。
CloudForms の自動化機能の詳細については、『Scripting Actions in CloudForms』を参照してください。
7.1. 自動化タスクの作成
自動化タスクを作成するには、まずカスタムドメインを作成して設定する必要があります。
ドメイン に、自動的に実行することのできるタスクを収めます。タスクは、ドメインプライオリティーで定義される順に実行されます。優先順位の高いドメインのタスクは、優先順位の低いドメインの同一タスクに優先します。CloudForms にはコアドメインが用意され、さらに専用のカスタムドメインを使用して自動化タスクをオーバーライドすることができます。
それぞれのドメインには、名前空間のセットが含まれます。名前空間 はタスクを整理して分類するコンテナーです。名前空間には、子名前空間およびクラスを含めることができます。
クラス は特定のタスクに対するテンプレートです。クラスはスキーマを使用して、デフォルト値のクラスインスタンスを設定します。クラスインスタンスには、属性、メソッドの呼び出し、およびリレーションシップを含めることができます。
メソッド で実行するタスクを定義します。さまざまな操作を実行するのに、Ruby コードが使用されます。
以下の例で、自動化タスクを作成する方法を説明します。ここでは、Lenovo 物理インフラストラクチャープロバイダーによって最初に検出される物理サーバーに対して、電源操作 (電源オン、オフ、またはサーバーの再起動など) を実施します。
メモ: ドメインを作成する権限が与えられたユーザーとして CloudForms にログインしている必要があります。デフォルトのユーザーは admin で、パスワードは smartvm です。
7.1.1. ステップ 1: カスタムドメインを作成する
- 自動化 > 自動化 > エクスプローラー の順に移動します。
- トップメニューで 構成 > 新規ドメインの追加 の順にクリックします。
- ドメイン名を入力します (例: Lenovo)。
- 有効化 を選択してドメインを有効にします。
- 追加 をクリックします。
7.1.2. ステップ 2: カスタムドメインに LenovoXclarity および Event Handler クラスを追加する
LenovoXclarity クラスをカスタムドメインにコピーします。
- ManageIQ コアドメインを選択します。
- ManageIQ > System > Event > EmsEvent > LenovoXclarity の順に移動します。
- トップメニューで 構成 > このクラスのコピー の順にクリックします。
- コピー先ドメイン ドロップダウンメニューからカスタムドメインを選択します。
- コピー をクリックします。
Event Handler クラスをカスタムドメインにコピーします。
- ManageIQ コアドメインを選択します。
- ManageIQ > System > Event Handlers の順に移動します。
- 希望するインスタンスを選択します (例: event_action_policy)。
- トップメニューで 構成 > このインスタンスのコピー の順にクリックします。
- コピー先ドメイン ドロップダウンメニューからカスタムドメインを選択します。
- コピー をクリックします。
- event_action_policy メソッドを選択します。
- 構成 アイコンをクリックし、続いて このメソッドのコピー アイコンをクリックします。
- コピー をクリックします。
LenovoXclarity クラスの新規インスタンスを作成します。
- ManageIQ コアドメインを選択します。
- カスタムドメインの名前に移動し (例: Lenovo)、System > Event > EmsEvent > LenovoXclarity の順にクリックします。
- トップメニューで 構成 > 新規インスタンスの追加 の順にクリックします。
新規クラスインスタンスの名前を入力します (たとえば FQXHMTS0003G: デバイスからインベントリーデータを取得できない時に生成されるイベント)。
重要: クラスインスタンス名は、呼び出されるタスクのトリガーとなるイベント名と一致している必要があります。CloudForms では、この名前を使ってクラスインスタンスとイベントを照合します。イベント名を知るには、Lenovo XClarity Administrator オンラインドキュメントの「メッセージ」を参照してください。
コピーしたイベントハンドラーへのパスを、rel3 のフィールドに追加します。
以下に示す 3 つのポリシー操作が利用可能です。
- Physical Server Reset
- Physical Server Start
Physical Server Shutdown
以下に示す 3 つのポリシーイベントが利用可能です。
- physical_server_reset
- physical_server_start
physical_server_shutdown
ポリシー操作とポリシーイベントは一致している必要があります。たとえば、ポリシー操作 Physical Server Shutdown には、以下のパスを使用します。
/System/event_handlers/event_action_policy? target=physical_server&policy_event=physical_server_shutdown¶m= policy_event の値は、適用されるポリシー操作と一致します。
- 追加 をクリックします。
7.1.3. ステップ 3: 名前空間を作成する
- カスタムドメインを選択します (Lenovo)。
- トップメニューで 構成 > 新規名前空間の追加 の順にクリックします。
- 名前空間の固有の名前を入力します (例: Functions)。
- 追加 をクリックします。
7.1.4. ステップ 4: クラスを作成する
- 前のステップで作成した名前空間を選択します (例: Functions)。
- トップメニューで 構成 > 新規クラスの追加 の順にクリックします。
- クラスの固有の名前を入力します (例: Power_actions)。
- 追加 をクリックします。
7.1.5. ステップ 5: クラスのメソッドを作成する
メソッドを作成します。
- 作成したクラスを選択します (例: Power_actions)。
- メソッド タブをクリックします。
- トップメニューで 構成 > 新規メソッドの追加 の順にクリックします。
- タイプ に「inline」を選択します。
- メソッドの名前を入力します (例: power_off)。
データ フィールドに以下のスクリプトを入力します。
server = $evm.vmdb('PhysicalServer').first $evm.log(:info, "Powering Server #{server.name} OFF") server.power_off exit MIQ_OK- 検証 をクリックして構文を確認します。
- 追加 をクリックします。
クラスにスキーマを追加します。
- 作成したクラスを選択します (例: Power_actions)。
- スキーマ タブを選択します。
- トップメニューで 構成 > 選択したスキーマの編集 の順にクリックします。
- +アイコンをクリックしてスキーマにフィールドを追加します。
- 名前 に「execute」と入力します。
- タイプ に「Method」を選択します。
- データタイプ に「String」を選択します。
- デフォルト値 に「Power_actions」と入力します。
- チェックマークアイコンをクリックします。
- 保存 をクリックします。
クラスにメソッドを追加します。
- インスタンス タブを選択します。
- 前のステップで作成したメソッドの名前を入力します (例: power_off)。
- 追加 をクリックします。
7.2. イベント発生時の自動化タスク呼び出し
特定のイベントが生じた際にタスクを自動的に呼び出すには、カスタムポリシーを作成、設定、および割り当てる必要があります。
以下の例で、(定義した) 特定のイベントを CloudForms が受け取った時に、特定の自動化タスクを実行する方法を説明します。
メモ: ポリシーを作成する権限が与えられたユーザーとして CloudForms にログインしている必要があります。デフォルトのユーザーは admin で、パスワードは smartvm です。
7.2.1. ステップ 1: ポリシーを作成して設定する
- コントロール > エクスプローラー の順に移動します。
- ポリシー > すべてのポリシー > コントロールポリシー > 物理インフラストラクチャーのコントロールポリシー の順にクリックします。
- トップメニューで 構成 > 新規物理サーバーコントロールポリシーの追加 の順にクリックします。
- 説明を入力します (例: Lenovo_Policy)。
- 追加 をクリックします。
7.2.2. ステップ 2: カスタムアクションを作成する
カスタムアクションを作成します。
- アクション > すべてのアクション の順に移動します。
- トップメニューで 構成 > 新規アクションの追加 の順にクリックします。
- 説明を入力します (例: Power_Off_Server)。
- アクションタイプ に Invoke a custom Automation を選択します。
- メッセージを入力します (例: create)。
- 要求 フィールドに Call_Instance と入力します。
以下に示す順番どおりにそれぞれの属性を指定します。
- Namespace 属性を指定し、値を新しいドメインおよび名前空間に設定します (<domain_name>/<namespace>) (例: Lenovo/Functions)。
- Class 属性を指定し、値をクラスに設定します (例: Power_actions)。
- Instance 属性を指定し、値をインスタンスに設定します (例: Physical_Server_PowerOff)。
- 追加 をクリックします。
作成したポリシーを設定します。
- 新しいポリシーを選択します (例: Lenovo_Policy)。
- トップメニューで 構成 > このポリシーのイベント割り当ての編集 の順にクリックします。
- Physical Server operation を探し、Physical Server Shutdown オプションを選択します。
- 保存 をクリックします。
- 新しいポリシーイベントを選択します。
- トップメニューで 構成 > このポリシーイベントのアクションの編集 の順にクリックします。
- すべての条件が「true」である場合のアクションの順序 フィールドから、前のステップで作成したカスタムアクションを選択します (例: Power_Off_Server)。
- 保存 をクリックします。
7.2.3. ステップ 3: ポリシープロファイルを作成して割り当てる
ポリシープロファイルを作成します。
- ポリシープロファイル > すべてのポリシープロファイル の順にクリックします。
- トップメニューで 構成 > 新規ポリシープロファイルの追加 の順にクリックします。
- ポリシーの説明を入力します (例: Lenovo_Policy_Profile)。
- 作成したポリシーを選択して右側に移動します。
- 追加 をクリックします。
ポリシープロファイルを Lenovo 物理インフラストラクチャープロバイダーに割り当てます。
- コンピュート > 物理インフラストラクチャー > プロバイダー の順に移動します。
- ポリシープロファイルを割り当てる物理インフラストラクチャープロバイダーを選択します。
- トップメニューで ポリシー > ポリシーの管理 の順にクリックします。
- 前の手順で作成したポリシープロファイルを選択します (例: Lenovo_Policy_Profile)。
- 保存 をクリックします。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.