Службу Code Stream можно интегрировать с vRealize Orchestrator (vRO), чтобы дополнить ее функции возможностью выполнять рабочие процессы vRO. vRealize Orchestrator содержит множество предварительно определенных рабочих процессов, которые можно интегрировать со сторонними инструментами. Эти рабочие процессы позволяют автоматизировать процессы DevOps и управлять ими, автоматизировать массовые операции и многое другое.

Например, рабочий процесс в задаче vRO конвейера можно использовать для активации или удаления пользователя, перемещения виртуальных машин, интеграции со средствами тестирования для проверки кода в ходе выполнения конвейера и т. д. Примеры кода для рабочих процессов vRealize Orchestrator можно найти на сайте code.vmware.com.

Рабочий процесс vRealize Orchestrator позволяет конвейеру совершать различные действия в ходе выполнения сборки, тестирования и развертывания приложения. В конвейер можно включить предварительно настроенные рабочие процессы. Можно также создать и использовать настраиваемые рабочие процессы. Каждый рабочий процесс состоит из входных данных, задач и выходных данных.

Чтобы рабочий процесс vRO можно было запустить в рамках конвейера, он должен отображаться в списке доступных рабочих процессов в задаче vRO, включенной в конвейер.

Прежде чем рабочий процесс появится в задаче vRO конвейера, администратору нужно выполнить следующие действия в vRealize Orchestrator:

  1. Примените тег CODESTREAM к рабочему процессу vRO.
  2. Пометьте рабочий процесс vRO как глобальный.

Необходимые условия

  • Убедитесь в наличии доступа к локальному экземпляру vRealize Orchestrator с правами администратора. Для получения справки обратитесь к своему администратору либо см. документацию по vRealize Orchestrator.
  • Проверьте, являетесь ли вы участником проекта в Code Stream. Если нет, попросите администратора Code Stream добавить вас в проект в качестве участника. См. раздел Добавление проекта в Code Stream.
  • Создайте конвейер в Code Stream и добавьте в него новый этап.

Процедура

  1. Администратору необходимо подготовить рабочий процесс vRealize Orchestrator для выполнения конвейера.
    1. а. В vRealize Orchestrator найдите рабочий процесс, который требуется использовать в конвейере, например рабочий процесс для активации пользователя.
      Если нужный рабочий процесс отсутствует, его можно создать.
    2. б. В строке поиска введите Рабочий процесс с тегом, чтобы найти рабочий процесс с именем Рабочий процесс с тегом.
    3. в. На карточке Рабочий процесс с тегом выберите Запустить. Отобразится область настройки.
    4. г. В текстовом поле Рабочий процесс с тегом введите имя рабочего процесса, который будет использоваться в конвейере Code Stream, а затем выберите его из списка.
    5. д. В текстовых областях Тег и Значение укажите CODESTREAM заглавными буквами.
    6. е. Установите флажок Глобальный тег.
    7. ё. Щелкните Запустить. Тег CODESTREAM будет присвоен рабочему процессу, который необходимо выбрать в конвейере Code Stream.
    8. ж. В панели навигации выберите Рабочие процессы и убедитесь, что тег с именем CODESTREAM отображается в карточке рабочего процесса, который будет запускать конвейер.
      После входа в Code Stream и добавления в конвейер задачи vRO в списке рабочих процессов появится рабочий процесс с тегом.
  2. Создайте в службе Code Stream конечную точку для экземпляра vRealize Orchestrator.
    1. а. Выберите пункт Конечные точки > Новая конечная точка.
    2. б. Выберите проект.
    3. в. Введите соответствующее имя.
    4. г. Введите URL-адрес конечной точки vRealize Orchestrator.
      Используйте следующий формат: https://vro-appliance.yourdomain.local:8281
      Не используйте следующий формат: https://vro-appliance.yourdomain.local:8281/vco/api
      URL-адрес экземпляра vRealize Orchestrator, встроенного в устройство vRealize Automation, является полным доменным именем для устройства без порта. Например: https://vra-appliance.yourdomain.local/vco
      Для внешних устройств vRealize Orchestrator, начиная с версии vRealize Automation 8.x, полным доменным именем для устройства является https://vro-appliance.yourdomain.local
      Для внешних устройств vRealize Orchestrator, добавленных с версией vRealize Automation 7.x, полным доменным именем для устройства является https://vro-appliance.yourdomain.local:8281/vco
      Если при добавлении конечной точки возникает проблема, возможно, будет нужно импортировать конфигурацию YAML с контрольной суммой сертификата SHA-256, где удалены двоеточия. Например, B0:01:A2:72... становится B001A272.... Пример кода YAML имеет приблизительно следующий вид:
      ```
      ---
      project: Demo
      kind: ENDPOINT
      name: external-vro
      description: ''
      type: vro
      properties:
        url: https://yourVROhost.yourdomain.local
        username: yourusername
        password: yourpassword
        fingerprint: <your_fingerprint>
      ```
    5. д. Щелкните Принять сертификат, если для введенного URL-адреса требуется сертификат.
    6. е. Если используется конечная точка vRealize Orchestrator версии 8.0–8.7, для типа проверки подлинности можно выбрать значение Базовая проверка подлинности или Маркер. Если используется конечная точка vRealize Orchestrator 8.8 или более поздней версии, для типа проверки подлинности необходимо выбрать значение Token.
      Примечание: Если используется конечная точка vRealize Orchestrator 8.8 или более поздней версии, не выбирайте значение Базовая проверка подлинности. Basic Auth не поддерживается, и создание конечной точки будет завершаться сбоем.
      • Если выбрано значение Базовая проверка подлинности, введите имя пользователя и пароль для сервера vRealize Orchestrator.

        Если для проверки подлинности используется нелокальный пользователь, не вводите доменную часть имени пользователя. Например, для проверки подлинности с [email protected] необходимо ввести svc_vro в текстовой области Имя пользователя.

      • Если в качестве типа проверки подлинности выбрано значение Маркер, создайте закрытый маркер.
        Маркер API-интерфейса VMware Cloud Services выполняет проверку аутентификации для внешних соединений API-интерфейса с Code Stream. Чтобы получить маркер API-интерфейса, выполните следующие действия.
        1. Выберите Создать маркер.
        2. Введите адрес электронной почты, связанный с именем пользователя и паролем, а затем нажмите Создать.
          Созданный маркер действителен в течение шести месяцев. Он также называется маркером обновления.
          • Чтобы сохранить маркер в виде переменной для использования в будущем, щелкните Создать переменную, введите имя переменной и нажмите кнопку Сохранить.
          • Чтобы сохранить маркер как текстовое значение для использования в будущем, нажмите кнопку Копировать и вставьте маркер в текстовый файл для сохранения в локальной системе.
          Можно создать переменную и одновременно сохранить маркер в текстовом файле для дальнейшего использования.
        3. Нажмите кнопку Закрыть.
  3. Подготовьте конвейер к выполнению задачи vRO.
    1. а. Добавьте задачу vRO в этап конвейера.
    2. б. Введите соответствующее имя.
    3. в. В области «Свойства рабочего процесса» выберите конечную точку vRealize Orchestrator.
    4. г. Выберите рабочий процесс с тегом CODESTREAM в vRealize Orchestrator.
      При выборе настраиваемого рабочего процесса может понадобиться ввести значения входных параметров.
    5. д. Для параметра Выполнение задачи задайте значение При условии.
      Если необходимо применить условия для задачи vRealize Orchestrator, введите их в области Условие.
    6. е. Введите условия, которые применяются в ходе работы конвейера.
      Когда запускать конвейер... Выберите условия...
      При условии

      Задача конвейера выполняется только в том случае, если заданное условие соблюдено (имеет значение «истина»). Если условие не соблюдено (имеет значение «ложь»), задача пропускается.

      В задачу vRO можно добавлять логические выражения, в которых используются перечисленные ниже операнды и операторы.

      • Переменные конвейера, такие как ${pipeline.variableName}. Фигурные скобки используются только при вводе переменных.
      • Переменные выходных данных задачи, такие как ${Stage1.task1.machines[0].value.hostIp[0]}.
      • Переменные привязки конвейеров по умолчанию, такие как ${releasePipelineName}.
      • Логические значения без учета регистра, такие как true, false, 'true' и 'false'.
      • Целочисленные или десятичные значения без кавычек.
      • Строковые значения с одинарными или двойными кавычками, такие как "test" и 'test'.
      • Строковые и числовые типы значений, такие как == Equals и != Not Equals.
      • Операторы отношения, такие как >, >=, < и <=.
      • Логические операторы, такие как && и ||.
      • Арифметические операторы, такие как +, -, * и /.
      • Вложенные выражения с фигурными скобками.
      • Строки, содержащие буквенное значение ABCD, считаются ложными, и задача пропускается.
      • Унарные операторы не поддерживаются.

      Пример условия: ${Stage1.task1.output} == “Passed” || ${pipeline.variableName} == 39

      Всегда Если выбрать параметр Всегда, конвейер выполняет задачу без учета условий.
    7. ё. Введите приветственное сообщение.
    8. ж. Щелкните Проверить задачу и исправьте возникшие ошибки.
  4. Сохраните, включите и запустите конвейер.
  5. Проверьте результаты работы конвейера.
    1. а. Щелкните Выполняемые элементы.
    2. б. Щелкните нужный конвейер.
    3. в. Щелкните нужную задачу.
    4. г. Проверьте результаты, входное значение и свойства.
      Здесь можно просмотреть идентификатор выполнения рабочего процесса, имя пользователя, отреагировавшего на задачу, время ответа и все оставленные им комментарии.

Результаты

Поздравляем! Вы назначили тег рабочему процессу vRealize Orchestrator, который требовалось использовать в службе Code Stream, и добавили задачу vRO в конвейер Code Stream для выполнения рабочего процесса, автоматизирующего действие в среде DevOps.

Пример: Формат выходных данных задачи vRO

Формат выходных данных задачи vRO аналогичен данному примеру.

[{
                "name": "result",
                "type": "STRING",
                "description": "Result of workflow run.",
                "value": ""
},
{
                "name": "message",
                "type": "STRING",
                "description": "Message",
                "value": ""
}]

Дальнейшие действия

Добавьте в конвейеры дополнительные задачи, включающие рабочие процессы vRO, чтобы автоматизировать выполнение задач в средах разработки, тестирования и производства.