Для управления развертываниями с истекшим сроком действия и их ресурсами можно использовать действие Expire и существующие темы события.

После истечения срока аренды развертывания в среде можно использовать темы события расширяемости для выполнения таких задач, как остановка резервного копирования или мониторинга любых ресурсов развертывания. Для выполнения этих операций по регулярному обслуживанию API-интерфейс vRealize Automation использует действие уровня системы 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 и убедитесь, что виртуальная машина преобразована в шаблон.