期限切れの展開とそのリソースは、Expire アクションを既存のイベント トピックと組み合わせて使用することによって管理できます。

環境内の展開リースの期限切れ後は、拡張性イベント トピックを使用して、任意の展開リソースのバックアップの停止や監視などのタスクを実行できます。これらのインストール後の作業を実行するために、 vRealize Automation API ではシステムレベルの Expire アクションが使用されます。このアクションは、組織内の展開リースが期限切れになると、システムによって自動的にトリガされます。この展開に関連付けられているリソースのパワーオフ イベントの前には、必ず Expire アクションがトリガされます。
注: 今までの製品リリースでは、パワーオフ イベントはリース期限切れ後に展開レベルでトリガされていました。これからは、パワーオフ イベントはパワーオン状態の各展開リソースのリソース レベルでトリガされます。
Expire アクションは、 [展開アクションの申請][展開アクションの完了] などの既存のイベント トピックのペイロードに含まれており、 deploymentid パラメータを使用して、展開リソースに関連付けられた期限切れ前と期限切れ後のタスクを実行します。
注: Expire アクションは、展開アクションの期限切れから約 10 ~ 15 分後にトリガされます。システムは、実際のリース期限切れの前にリース期限切れイベントをトリガしません。 Expire アクションはシステムレベルのアクションであり、ユーザーはアクションに関連付けられたイベントを手動でトリガできません。

現在の使用事例では、[展開アクションの申請] イベント トピックを Expire アクションと組み合わせて使用することで、展開内の仮想マシンをテンプレートとしてバックアップします。この場合、バックアップは vRealize Orchestrator ワークフローを使用して実行されますが、サブスクリプションの実行可能アイテムとして拡張性アクションを使用して同じタスクを実行することもできます。

手順

  1. [拡張性] > [サブスクリプション] の順に移動し、[新しいサブスクリプション] をクリックします。
  2. サブスクリプションの名前を入力します。
  3. [ステータス] で、サブスクリプションが有効になっていることを確認します。
  4. [イベント トピック] で、[展開アクションの申請] イベント トピックを選択します。
  5. [条件] オプションをオンにし、期限切れアクションのフィルタを追加します。
    event.data.actionName == 'Expire'
    注: [展開アクションの申請] イベント トピックは、展開リース期間の変更など、さまざまな展開のインストール後の作業によってトリガされる可能性があります。リース期限切れのアクション フィルタを追加すると、サブスクリプションは期限切れイベントの場合のみトリガされます。
  6. [アクション/ワークフロー] で、vRealize Orchestrator ワークフローを追加します。
    vRealize Orchestratorこのサンプル ワークフローのスキーマには、スクリプト化可能なタスクと、 [仮想マシンのクローン作成、カスタマイズなし] ワークフローを含むワークフロー要素が含まれています。スクリプト化可能なタスク要素には、次のサンプル スクリプトが含まれています。
    System.log("Lease expiry action triggered to clone a VM...")
    
    System.log("Deployment Id is: " + inputProperties.deploymentId);
    inputHeaders = new Properties();
    deploymentId = inputProperties.deploymentId;
    pathUriVariable = "/deployment/api/deployments/" +deploymentId +"/resources"; 
    var restClient = vRAHost.createRestClient();
    var request = restClient.createRequest("GET", pathUriVariable, null);
    var keys = inputHeaders.keys;
    for(var key in keys){
        request.setHeader(keys[key], inputHeaders.get(keys[key]));
    }
    var response = restClient.execute(request);
    System.log("Content as string: " + response.contentAsString);
    var content = response.contentAsString;
    var obj = JSON.parse(content);
    
    var object = new Properties(obj);
    var contentJson = object.content;
    for (var i = 0; i < contentJson.length; i++) {
        var resources = contentJson[i];
        
        var resourceProperties = resources.properties;
        System.log("Resource name is: " + resourceProperties.resourceName)
        resourceName = resourceProperties.resourceName;
    }
    
    var query = "xpath:name='" + resourceName + "'"; 
          var vms=Server.findAllForType("VC:VirtualMachine", query); 
          vcVM=vms[0]; 
         
          System.log("VM input is: " + vcVM);
          dataStoreOutput = datastore
          template= true;
          name="test-vm-name"
    
  7. サブスクリプションをブロックに設定するか非ブロックに設定するかを決定します。
    注: サブスクリプションをブロックに設定すると、展開リソースのパワーオフ イベントは、実行可能なアイテム(この場合はリース期限切れワークフロー)の実行が正常に完了した後にのみトリガされます。サブスクリプションを非ブロックに設定すると、展開リソースのパワーオフ イベントは、ワークフロー実行のステータスに関係なくトリガされます。
  8. サブスクリプションの編集を終了するには、[保存] をクリックします。

次のタスク

リース期限切れイベントによって拡張性サブスクリプションがトリガされ、ワークフローの実行が成功したら、vSphere Web Client に移動し、仮想マシンがテンプレートに変換されていることを確認します。