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

В Code Stream доступны все задачи, необходимые для работы конвейера: извлечение артефактов из репозитория для развертывания, запуск удаленного сценария, запрос подтверждения пользовательской операции от участника группы и т. д.

Code Stream поддерживает отмену выполнения конвейера для различных типов задач. Если нажать Отмена в ходе выполнения конвейера, задача, этап или весь конвейер перейдут в состояние отмены, и выполнение конвейера будет отменено.

Code Stream позволяет отменить выполнение конвейера для задачи, этапа или всего конвейера при использовании следующих задач.
  • Jenkins
  • SSH
  • PowerShell
  • Пользовательская операция
  • Конвейер
  • Облачный шаблон
  • vRO
  • POLL

Code Stream не распространяет поведение отмены на сторонние системы для следующих задач: непрерывная интеграция, настраиваемая интеграция и Kubernetes. Code Stream помечает задачу как отмененную и сразу же прекращает извлечение состояния, не ожидая завершения задачи. Задача может быть выполнена или завершиться сбоем в сторонней системе, но в Code Stream ее выполнение останавливается сразу после нажатия кнопки Отмена.

Прежде чем использовать задачу в конвейере, убедитесь в доступности соответствующей конечной точки.

Табл. 1. Получите утверждение или настройте точку принятия решения
Тип задачи Функции Примеры и сведения
Пользовательская операция

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

См. раздел Запуск конвейера и просмотр результатов. и Управление пользовательским доступом и утверждениями в службе Code Stream.

Условие

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

См. раздел Использование привязок переменных в задаче «Условие» для запуска или остановки конвейера в Code Stream.

Табл. 2. Автоматизация непрерывной интеграции и развертывания
Тип задачи Функции Примеры и сведения
Облачный шаблон

Развертывает облачный шаблон автоматизации из GitHub и подготавливает приложение, а также автоматизирует непрерывную интеграцию и непрерывную доставку (CICD) этого облачного шаблона для развертывания.

См. раздел Как автоматизировать выпуск приложения, развернутого с использованием облачного шаблона YAML в Code Stream.

Параметры облачного шаблона отображаются, после того как пользователь выбрал элемент Создать или Обновить, а затем Облачный шаблон и Версия. В текстовые области ввода в задаче облачного шаблона можно добавить следующие элементы, которые содержат привязки переменных.

  • Целое число
  • Строка перечисления
  • Логическое значение
  • Переменная массива

Если во входных данных используются привязки переменных, необходимо учитывать следующие исключения. Для перечислений значения выбираются из фиксированного набора. Логические значения вводятся в текстовую область ввода.

Параметр облачного шаблона отображается в задаче облачного шаблона, если облачный шаблон в Cloud Assembly содержит входные переменные. Например, если в облачном шаблоне есть тип входных данных Integer, можно ввести непосредственно целочисленное значение или переменную с помощью привязки переменных.

CI

Задача CI обеспечивает непрерывную интеграцию кода пользователя в конвейер путем извлечения образа сборки Docker из конечной точки реестра и его развертывания в кластере Kubernetes.

Задача CI отображает 100 строк журнала в качестве выходных данных и 500 строк при загрузке журналов.

Для задач непрерывной интеграции требуются временные порты 32768–61000.

См. раздел Планирование собственной сборки по модели непрерывной интеграции и непрерывной доставки в Code Stream перед использованием смарт-шаблона конвейера.

Настраиваемое

Задача «Настраиваемое» обеспечивает интеграцию Code Stream с пользовательскими инструментами сборки, тестирования и развертывания.

См. раздел Интеграция собственных средств сборки, тестирования и развертывания со службой Code Stream.

Kubernetes

Автоматизация развертывания приложений в кластерах Kubernetes.

См. раздел Автоматизация выпуска приложения в кластере Kubernetes с помощью Code Stream.

Конвейер

Создает вложенный конвейер в главном конвейере. Если конвейер является вложенным, он работает как задача в первичном конвейере.

На вкладке «Задача» главного конвейера можно легко перейти к вложенному конвейеру, если щелкнуть ссылку на него. Вложенный конвейер откроется на вкладке «Создать браузер».

Чтобы найти вложенные конвейеры в разделе Выполняемые элементы, введите вложенный в области поиска.

Табл. 3. Интеграция приложений для разработки, тестирования и развертывания
Тип задачи... Функции... Примеры и сведения...
Bamboo

Взаимодействует с сервером непрерывной интеграции Bamboo (CI), который непрерывно создает, тестирует и интегрирует программное обеспечение при подготовке к развертыванию, а также запускает сборки кода, когда разработчики фиксируют изменения. Он предоставляет расположения артефактов, которые создает сборка Bamboo, чтобы задача могла выводить параметры для других задач, которые будут использоваться для сборки и развертывания.

Подключитесь к конечной точке сервера Bamboo и запустите план сборки Bamboo из своего конвейера.

Jenkins

Запускает задания Jenkins, которые создают и проверяют исходный код, запускают сценарии тестирования и могут использовать настраиваемые сценарии.

См. раздел Интеграция Jenkins со службой Code Stream.

TFS

Позволяет подключить конвейер к Team Foundation Server для управления проектами сборки и их вызова, в том числе настроенных заданий, которые обеспечивают сборку и тестирование кода.

Сведения о версиях Team Foundation Server, которые поддерживает Code Stream, см. в Что такое конечные точки в Code Stream.

vRO

Расширяет возможности Code Stream за счет запуска предварительно определенных или настраиваемых рабочих процессов в vRealize Orchestrator.

Code Stream поддерживает базовую проверку подлинности и проверку подлинности на основе маркеров для vRealize Orchestrator. Code Stream использует маркер API-интерфейса для проверки подлинности и проверки кластера vRealize Orchestrator. Благодаря проверке подлинности на основе маркеров Code Stream поддерживает конечные точки vRealize Orchestrator, которые используют облачный прокси-сервер, обеспечивающий расширяемость. В результате в Code Stream можно запускать рабочие процессы с использованием конечной точки vRealize Orchestrator, которая применяет облачный прокси-сервер, обеспечивающий расширяемость.

См. раздел Интеграция службы Code Stream с решением vRealize Orchestrator.

Табл. 4. Интеграция других приложений с помощью API-интерфейса
Тип задачи... Функции... Примеры и сведения...
REST

Интегрирует Code Stream с другими приложениями, использующими интерфейс REST API, чтобы было можно непрерывно разрабатывать и доставлять приложения, которые должны взаимодействовать друг с другом.

См. раздел Как использовать интерфейс REST API для интеграции Code Stream с другими приложениями.

Опрос

Вызывает интерфейс REST API и опрашивает его до тех пор, пока задача конвейера не станет соответствовать критериям выхода и не завершится.

Максимальное количество опросов, которое может указать администратор Code Stream, составляет 10 000. Интервал между опросами должен быть не менее 60 секунд.

Если установить флажок Продолжать при сбое, то в случае превышения указанного значения количества или интервала будет продолжено выполнение задачи опроса.

POLL Iteration Count: возникает в ходе выполнения конвейера и обозначает, сколько раз задача опроса (POLL) запрашивала ответ с URL-адреса. Например, если сходное значение POLL равно 65, а фактическое количество выполнений запроса POLL составляет 4, то в выходных данных выполнения конвейера будет указано 4 итерации (из 65).

См. раздел Как использовать интерфейс REST API для интеграции Code Stream с другими приложениями.

Табл. 5. Запуск удаленных и пользовательских сценариев
Тип задачи Функции Примеры и сведения
PowerShell

Задача PowerShell позволяет Code Stream выполнять команды сценария на удаленном узле. Например, сценарий может автоматизировать тестовые задачи и выполнять административные команды.

Сценарий может быть удаленным или определяемым пользователем. Он может подключаться по протоколу HTTP или HTTPS, а также использовать протокол TLS.

Для узла Windows необходимо настроить службу winrm. Для winrm, в свою очередь, необходимо настроить параметры MaxShellsPerUser и MaxMemoryPerShellMB.

Чтобы запустить оболочку PowerShell, должно быть открыто подключение к удаленному узлу Windows.

Длина командной строки PowerShell

При вводе команды PowerShell в формате base64 сначала следует вычислить ее общую длину.

В конвейере Code Stream команда PowerShell формата base64 кодируется и упаковывается в другую команду, что увеличивает ее общую длину.

Максимально допустимая длина команды winrm PowerShell составляет 8192 байт. С учетом кодирования и упаковки предельно допустимая длина команды оболочки PowerShell уменьшается. Поэтому прежде чем ввести команду PowerShell, необходимо вычислить ее длину.

Ограничение длины команды для оболочки PowerShell Code Stream зависит от длины исходной команды в коде base64. Длина команды вычисляется следующим образом.

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

Длина команды Code Stream должна быть меньше максимального порога в 8192 байт.

При настройке MaxShellsPerUser и MaxMemoryPerShellMB:

  • Допустимое значение для MaxShellsPerUser — 500 для 50 параллельных конвейеров с 5 задачами PowerShell для каждого конвейера. Чтобы задать значение, выполните: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • Допустимое значение памяти для MaxMemoryPerShellMB — 2048. Чтобы задать значение, выполните: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

Сценарий записывает выходные данные в файл ответа, который может использоваться другим конвейером.

SSH

Задача SSH позволяет задаче сценария оболочки Bash выполнять команды сценария на удаленном узле. Например, сценарий может автоматизировать тестовые задачи и выполнять административные команды.

Сценарий может быть удаленным или определяемым пользователем. Он может подключаться по протоколу HTTP или HTTPS и требует наличия закрытого ключа или пароля.

Служба SSH должна быть настроена на узле Linux, а для конфигурации SSHD для MaxSessions должно быть задано значение 50.

При параллельном выполнении множества задач SSH увеличьте значения параметров MaxSessions и MaxOpenSessions для узла SSH. Не используйте экземпляр vRealize Automation в качестве узла SSH, если необходимо изменить параметры MaxSessions и MaxOpenSessions.

Задача SSH не поддерживает закрытые ключи типа OpenSSH. Создайте пару открытого и закрытого ключей одним из следующих методов.
  • На компьютере Windows для создания пары ключей используйте PuTTYgen.
  • На компьютере Mac или Linux используйте команду ssh -V, чтобы убедиться, что версия протокола SSH предшествует 7.8, а затем с помощью команды ssh -keygen создайте пару ключей в окне терминала.
Примечание: Убедитесь, что созданный ключ отображается без сообщения BEGIN OPENSSH PRIVATE KEY.
Если созданный открытый ключ является авторизованным ключом на удаленном компьютере, см. одну из следующих статей о том, как изменить закрытый формат OpenSSH.

При настройке задачи SSH закрытый ключ должен быть введен в виде обычного текста. Если сохранить ключ как переменную или входные данные, формат ключа изменится и задача конвейера не будет выполнена.

Сценарий может быть удаленным или определяемым пользователем. Например, сценарий может выглядеть следующим образом:

message="Hello World" echo $message

Сценарий записывает выходные данные в файл ответа, который может использоваться другим конвейером.