[リソース操作時] ポリシーのアクションの作成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • [リソース操作時] トリガーは、ユーザーが特定のリソースに対して [開始][停止]、または [プロビジョニング解除] ライフサイクル操作を実行すると、オーケストレーションプロセス中に開始されます。[リソース操作時] トリガーによってトリガーされるポリシーは、ユーザーが要求した属性値のオーバーライド、スクリプトの実行、クラウド API の呼び出し、または IP アドレス管理操作の実行を行うことができます。

    始める前に

    手順

    1. クラウドアドミンポータルで、 統制 > ポリシー.
    2. クラウドポリシーを開き、必要に応じてポリシーを [ドラフト] ステータスに設定します。
    3. アクションを実行する必要があるルールを開き、[ポリシールールアクション (Policy Rule Actions)] 関連リストで [新規] をクリックします。
    4. ポップアップで、実行するアクションのタイプとして [作成] をクリックし、一意で分かりやすい [アクション名 (Action Name)] を入力してから、アクションのフォームに入力します。
      アクションの作成ポップアップ
      表 : 1. 「プロパティの上書き」アクションの設定
      フィールド 説明
      プロパティ 上書きするユーザー要求フォームのプロパティ (属性) の名前を指定します。
      [プロパティ] フィールドの値を上書きする値を入力します。テキスト値のみを上書きすることができます。静的な値、式、またはその両方を指定できます。[SetTheCostCenter] という名前のアクション例は、[CostCenter] プロパティに対して値 [Marketing] を指定します。
      図 : 1. プロパティの上書きアクションを設定する
      プロパティの上書きアクションを設定する
      注:

      ポリシールールとフォームルールの両方で値が上書きされる場合、フォームルールの値が使用されます。

      式は次のアクションを実行できます (詳細については、「クラウドプロビジョニングとガバナンス での式の使用」を参照)。
      • 定義式を使用してフォームデータ値を設定します。例:${parameter.formData.CatalogAttributeType}
      • 定義式を使用してユーザーデータ値をアサインします。例:${parameter.userData.userId}

        たとえば、次の値はスタック名を Stack_Bob.Smith@company.com: Stack_${parameter.userData.userId} に設定できます。

      • ランタイム式を使用してスタックまたはテーブルの値を設定します。

        例:$(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}]) は IP プールテーブルからサブネットを取得します。

      • 静的な式を使用してランダムな数をフィールドに関連付けます。${randomNumber} を使用します。
      スクリプトに基づく このチェックボックスをオンにして [スクリプト] テキストボックスを表示し、スクリプトを指定します。

      スタック名を上書きするには、次の例のスクリプトスニペットを使用できます。スクリプトの function( formData) セクションは、フォーム上のフィールドの値を変更します。Mystack は、この例のスタック名です。

      customScript : function( formData){
                     // Manipulation of form parameter is only supported here. 
                     // Change in any other attributes will be ignored
                     // data available for manipulation are
                     // Form Data - Ex. StackName can be accessed 
                     // through formData.StackName
                     // formData.StackName = "MyStack";
                     // User Data - Ex. User Id can be accessed 
                     // through this.parameters.userData
                     // if(this.parameter.userData.userId == 'servicenowuserId')
                        formData.StackName = "MyStack";
                        return formData;
                      },
      
      表 : 2. 「スクリプトを実行」アクションの設定
      フィールド 説明
      アクションスクリプトカテゴリ [カテゴリー] を選択します。
      アクションスクリプト名 スクリプトに対して一意で分かりやすい名前を指定します。
      アクションスクリプト テキストボックスにスクリプトを作成します。

      詳細については、「ポリシーアクションスクリプトの作成」を参照してください。

      [クラウド API を呼び出す] アクションタイプを選択してレコードを保存すると、[ポリシールールアクション属性 (Policy Rule Action Attributes)] 関連リストに、プロバイダに渡す属性が設定されます。Infoblox と統合する場合は、[DNSSuffix] フィールドを設定する必要があります。たとえば、ホストを作成すると [DNSSuffix] フィールドの値が新しく作成された仮想マシンの Infoblox に表示されます。

      表 : 3. 「クラウド API を呼び出す」アクションの設定
      フィールド 説明
      アクション名 アクションの説明的な名前を入力します。同じポリシーに対する後続のポリシーアクションでは、[] フィールドでこの名前を参照することができます。API 呼び出し後にクラウドプロバイダーから受信した JSON ペイロードを参照します。たとえば、RefAction というアクションによって返された割り当て済み IP アドレスを参照するには、別のポリシーアクションの [] フィールドで式 $(parameter.RefAction.Allocated_IP} を使用できます。
      プロバイダー API ライブラリーからクラウドプロバイダーを入力します。
      バージョン API ライブラリーからバージョンを入力します。
      インターフェイス CAPI インターフェイスを選択します。Infoblox の場合、[IPAM インターフェイス (IPAM interface)] を選択します。
      運用 実行する CAPI インターフェイス操作を選択します。Infoblox の場合、[CreateHostRecord] または [DeleteHostRecord] を選択します。
      認証情報 必要な認証情報の sys_ID を入力します。
      次のような式を使用することもできます。
      $(ci.sn_cmp_infoblox_server[$(ci.sn_cmp_ip_pool[subnet=${parameter.formData.SubnetId}].provider_instance)].infoblox_server_credential)
      エンドポイント URL API ライブラリーからコネクターのエンドポイント URL を入力します。Infoblox の場合、Infoblox サーバーの IP アドレスです。
      表 : 4. 「IP アドレス管理」アクションの設定
      フィールド 説明
      IPAM メソッド名 IPAM メソッド名を選択します。Infoblox の場合、次のいずれかのオプションを選択します。
      • [IP アドレスをリリース]:マシンのプロビジョニング解除後に、Infoblox から IP アドレスをリリースします。
      • [IP アドレスを登録]:新しい仮想マシンを Infoblox に登録します。このオプションは、AWS および Azure クラウドで使用されます。
      • [IP アドレスを予約]:新しい IP アドレスを予約します。このオプションは、vSphere クラウドで使用されます。

      Infoblox での AWS および Azure 仮想マシンの IP アドレスの登録」、「VMware vSphere 仮想マシンの IP アドレスの Infoblox への予約」、「IPAM 統合」を参照してください。