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

При связывании задач конвейера можно использовать выражения по умолчанию и сложные выражения, чтобы конвейер мог выполнять простые или сложные решения для предоставления ПО. Чтобы создать параметры в конвейере, перейдите на вкладку Входные данные или Выходные данные и добавьте переменную, введя знак доллара $ и выражение. Например, следующий параметр используется в качестве входных данных задачи, вызывающей URL-адрес: ${Stage0.Task3.input.URL}.

В формате привязки переменной используются компоненты синтаксиса, которые называются областями и ключами. SCOPE определяет контекст как входные или выходные данные, а KEY определяет сведения. В примере параметра ${Stage0.Task3.input.URL} input — SCOPE, а URL-адрес — KEY.

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

Дополнительные сведения об использовании привязок переменных в конвейерах см. в разделе Как использовать привязки переменных в конвейерах vRealize Automation Code Stream.

Использование выражений со значком доллара с областями и ключами для связывания задач конвейера

Задачи конвейера можно связать с помощью выражений с переменными со значком доллара. Выражения вводятся в формате ${SCOPE.KEY.<PATH>}.

В каждом выражении SCOPE — это контекст, который используется службой vRealize Automation Code Stream для определения особенностей задачи конвейера. Области нужен ключ KEY, определяющий параметры действия, выполняемого задачей. Если значение KEY является вложенным объектом, можно указать дополнительный путь PATH.

В этих примерах содержится описание SCOPE и KEY и показано, как их использовать в конвейере.

Табл. 1. Использование ОБЛАСТИ (SCOPE) и КЛЮЧА (KEY)
SCOPE Назначение выражения и примера KEY Способ применения SCOPE и KEY в конвейере
input

Входные свойства конвейера:

${input.input1}

Имя входного свойства

Для создания ссылки на входное свойство конвейера в задаче используйте следующий формат:

tasks:
  mytask:
    type: REST
    input:
      url: ${input.url}
      action: get
input:
  url: https://www.vmware.com
output

Выходные свойства конвейера:

${output.output1}

Имя выходного свойства

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

notifications:
 email:
 - endpoint: MyEmailEndpoint
   subject: "Deployment Successful"
   event: COMPLETED
   to:
   - user@example.org
   body: |
     Pipeline deployed the service successfully. Refer ${output.serviceURL}
task input

Входные данные для задачи:

${MY_STAGE.MY_TASK.input.SOMETHING}

Показывает входные данные задачи в уведомлении

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

notifications:
  email:
  - endpoint: MyEmailEndpoint
    stage: MY_STAGE
    task: MY_TASK
    subject: "Build Started"
    event: STARTED
    to:
    - user@example.org
    body: |
      Jenkins job ${MY_STAGE.MY_TASK.input.job} started for commit id ${input.COMMITID}.
task output

Результат выполнения задачи:

${MY_STAGE.MY_TASK.output.SOMETHING}

Показывает результат выполнения задачи в следующей задаче

Для создания ссылки на результат выполнения задачи 1 конвейера в задаче 2 используйте следующий формат:

taskOrder:
  - task1
  - task2
tasks:
 task1:
   type: REST
   input:
     action: get
     url: https://www.example.org/api/status
 task2:
   type: REST
   input:
     action: post
     url: https://status.internal.example.org/api/activity
     payload: ${MY_STAGE.task1.output.responseBody}
var

Переменная:

${var.myVariable}

Ссылка на переменную в конечной точке

Чтобы создать ссылку на секретную переменную в конечной точке для пароля, используйте следующий формат:

---
project: MyProject
kind: ENDPOINT
name: MyJenkinsServer
type: jenkins
properties:
 url: https://jenkins.example.com
 username: jenkinsUser
 password: ${var.jenkinsPassword}
var

Переменная:

${var.myVariable}

Ссылка на переменную в конвейере

Для создания ссылки на переменную в URL-адресе конвейера используйте следующий формат:

tasks:
 task1:
  type: REST
  input:
   action: get
   url: ${var.MY_SERVER_URL}
task status

Состояние выполнения задачи:

${MY_STAGE.MY_TASK.status}

${MY_STAGE.MY_TASK.statusMessage}

stage status

Состояние выполнения этапа:

${MY_STAGE.status}

${MY_STAGE.statusMessage}

Выражения по умолчанию

В конвейере можно использовать переменные с выражениями. Эта сводка содержит доступные для использования выражения по умолчанию.

Выражение Описание
${comments} Комментарии, предоставленные при запросе цикла выполнения.
${duration} Продолжительность выполнения конвейера.
${endTime} Время окончания выполнения конвейера в формате UTC (если закончено).
${executedOn} Время запуска конвейера, аналогичное времени начала, в формате UTC.
${executionId} Идентификатор выполнения конвейера.
${executionUrl} URL-адрес для перехода к выполнению конвейера в пользовательском интерфейсе.
${name} Имя конвейера.
${requestBy} Имя пользователя, запросившего выполнение.
${stageName} Имя текущего этапа, используется в области этапа.
${startTime} Время начала выполнения конвейера в формате UTC.
${status} Состояние выполнения.
${statusMessage} Сообщение о состоянии выполнения конвейера.
${taskName} Имя текущей задачи, используется при вводе задачи или создании уведомления.

Использование SCOPE и KEY в типах задач конвейера

Можно использовать выражения с любыми поддерживаемыми типами задач конвейера. Используйте эти примеры как образец, показывающий, как определить SCOPE и KEY и подтвердить синтаксис. В следующих примерах кода в качестве имен этапа и задачи используются MY_STAGE и MY_TASK.

Дополнительные сведения о доступных типах задач см. в разделе Какие типы задач доступны в vRealize Automation Code Stream.

Табл. 2. Задачи перехода к следующему этапу
Тип задач Scope Key Использование SCOPE и KEY в задаче
Пользовательская операция
Input

summary: сводка по запросу пользовательской операции

description: описание запроса пользовательской операции

approvers: список адресов электронной почты утверждающих, каждая запись в котором может быть переменной, отделяемой запятой; также можно использовать точку с запятой для отдельных адресов электронной почты.

approverGroups: список адресов групп утверждающих для платформы и удостоверения

sendemail: если задано значение «истина», отправляется дополнительное уведомление по электронной почте при создании запроса или ответе

expirationInDays: количество дней, соответствующее сроку действия запроса

${MY_STAGE.MY_TASK.input.summary}

${MY_STAGE.MY_TASK.input.description}

${MY_STAGE.MY_TASK.input.approvers}

${MY_STAGE.MY_TASK.input.approverGroups}

${MY_STAGE.MY_TASK.input.sendemail}

${MY_STAGE.MY_TASK.input.expirationInDays}

Output

index: шестизначная шестнадцатеричная строка, представляющая запрос

respondedBy: имя учетной записи пользователя, утвердившего или отклонившего пользовательскую операцию

respondedByEmail: адрес электронной почты ответившего пользователя

comments: комментарии, предоставленные во время ответа

${MY_STAGE.MY_TASK.output.index}

${MY_STAGE.MY_TASK.output.respondedBy}

${MY_STAGE.MY_TASK.output.respondedByEmail}

${MY_STAGE.MY_TASK.output.comments}

Условие
Input

condition: оцениваемое условие. Если условие принимает значение «истина», задача отмечается как завершенная; другие ответы приводят к сбою выполнения задачи.

${MY_STAGE.MY_TASK.input.condition}

Output

result: результат оценки

${MY_STAGE.MY_TASK.output.response}

Табл. 3. Задачи конвейера
Тип задач Scope Key Использование SCOPE и KEY в задаче
Конвейер
Input

name: имя конвейера для запуска

inputProperties: входные свойства, которые нужно передать в цикл выполнения вложенного конвейера

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.inputProperties} # Ссылка на все свойства

${MY_STAGE.MY_TASK.input.inputProperties.input1} # Ссылка на значение input1

Output

executionStatus: состояние выполнения конвейера

executionIndex: индекс выполнения конвейера

outputProperties: выходные свойства цикла выполнения конвейера

${MY_STAGE.MY_TASK.output.executionStatus}

${MY_STAGE.MY_TASK.output.executionIndex}

${MY_STAGE.MY_TASK.output.outputProperties} # Ссылка на все свойства

${MY_STAGE.MY_TASK.output.outputProperties.output1} # Ссылка на значение output1

Табл. 4. Автоматизация задач непрерывной интеграции
Тип задач Scope Key Использование SCOPE и KEY в задаче
CI
Input

steps: набор строк, представляющих собой команды, которые требуется выполнить

export: переменные среды, которые требуется сохранить после выполнения шагов

artifacts: пути артефактов, которые требуется сохранить в общем пути

process: набор элементов конфигурации для обработки JUnit, JaCoCo, Checkstyle, FindBugs

${MY_STAGE.MY_TASK.input.steps}

${MY_STAGE.MY_TASK.input.export}

${MY_STAGE.MY_TASK.input.artifacts}

${MY_STAGE.MY_TASK.input.process}

${MY_STAGE.MY_TASK.input.process[0].path} # Ссылка на путь первой конфигурации

Output

exports: пара «ключ-значение», которая представляет собой экспортированные переменные среды из входного параметра export

artifacts: путь успешно сохраненных артефактов

processResponse: набор обработанных результатов для входного параметра process

${MY_STAGE.MY_TASK.output.exports} # Ссылка на все операции экспорта

${MY_STAGE.MY_TASK.output.exports.myvar} # Ссылка на значение myvar

${MY_STAGE.MY_TASK.output.artifacts}

${MY_STAGE.MY_TASK.output.processResponse}

${MY_STAGE.MY_TASK.output.processResponse[0].result} # Результат выполнения первой конфигурации процесса

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

name: имя настраиваемой интеграции

version: версия настраиваемой интеграции, опубликованная или устаревшая

properties: свойства для отправки в настраиваемую интеграцию

${MY_STAGE.MY_TASK.input.name}

${MY_STAGE.MY_TASK.input.version}

${MY_STAGE.MY_TASK.input.properties} # Ссылка на все свойства

${MY_STAGE.MY_TASK.input.properties.property1} # Ссылка на значение property1

Output

properties: выходные свойства из ответа настраиваемой интеграции

${MY_STAGE.MY_TASK.output.properties} # Ссылка на все свойства

${MY_STAGE.MY_TASK.output.properties.property1} # Ссылка на значение property1

Табл. 5. Автоматизация задач непрерывного развертывания: облачный шаблон
Тип задач Scope Key Использование SCOPE и KEY в задаче
Облачный шаблон
Input

action: одно из следующих значений: createDeployment, updateDeployment, deleteDeployment, rollbackDeployment.

blueprintInputParams: используется для действий создания и обновления развертывания.

allowDestroy: позволяет уничтожать компьютеры в процессе обновления развертывания.

CREATE_DEPLOYMENT

  • blueprintName: имя облачного шаблона
  • blueprintVersion: версия облачного шаблона

ИЛИ

  • fileUrl: URL-адрес файла YAML удаленного облачного шаблона после выбора сервера GIT.

UPDATE_DEPLOYMENT

Любые из следующих комбинаций:

  • blueprintName: имя облачного шаблона
  • blueprintVersion: версия облачного шаблона

ИЛИ

  • fileUrl: URL-адрес файла YAML удаленного облачного шаблона после выбора сервера GIT.

------

  • deploymentId: идентификатор развертывания.

ИЛИ

  • deploymentName: имя развертывания.

------

DELETE_DEPLOYMENT

  • deploymentId: идентификатор развертывания.

ИЛИ

  • deploymentName: имя развертывания.

ROLLBACK_DEPLOYMENT

Любые из следующих комбинаций:

  • deploymentId: идентификатор развертывания.

ИЛИ

  • deploymentName: имя развертывания.

------

  • blueprintName: имя облачного шаблона
  • rollbackVersion: версия, до которой необходимо выполнить откат
Output

Параметры, которые можно привязать к другим задачам или выходным данным конвейера:

  • Для доступа к имени развертывания используйте ${Stage0.Task0.output.deploymentName}
  • Для доступа к идентификатору развертывания используйте: ${Stage0.Task0.output.deploymentId}
  • Сведения о развертывании — это сложный объект. Доступ к внутренним сведениям можно получить с помощью результатов JSON.

Для доступа к любому свойству используйте оператор точки в соответствии с иерархией JSON. Например, для доступа к адресу ресурса Cloud_Machine_1[0] привязка $ будет следующей:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].address}

Аналогично, для конфигурации ресурсов привязка $ будет выглядеть следующим образом:

${Stage0.Task0.output.deploymentDetails.resources['Cloud_Machine_1[0]'].flavor}

В пользовательском интерфейсе vRealize Automation Code Stream можно получить привязки $ для любого свойства.

  1. В области выходных свойств задачи щелкните ПРОСМОТР ВЫХОДНЫХ ДАННЫХ JSON.
  2. Чтобы найти привязку $, введите любое свойство.
  3. Нажмите значок поиска с соответствующей привязкой $.

Пример выходных данных JSON:

Образец объекта сведений о развертывании:

{
	"id": "6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"name": "deployment_6a031f92-d0fa-42c8-bc9e-3b260ee2f65b",
	"description": "Pipeline Service triggered operation",
	"orgId": "434f6917-4e34-4537-b6c0-3bf3638a71bc",
	"blueprintId": "8d1dd801-3a32-4f3b-adde-27f8163dfe6f",
	"blueprintVersion": "1",
	"createdAt": "2020-08-27T13:50:24.546215Z",
	"createdBy": "user@vmware.com",
	"lastUpdatedAt": "2020-08-27T13:52:50.674957Z",
	"lastUpdatedBy": "user@vmware.com",
	"inputs": {},
	"simulated": false,
	"projectId": "267f8448-d26f-4b65-b310-9212adb3c455",
	"resources": {
		"Cloud_Machine_1[0]": {
			"id": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"name": "Cloud_Machine_1[0]",
			"powerState": "ON",
			"address": "10.108.79.33",
			"resourceLink": "/resources/compute/1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"componentTypeId": "Cloud.vSphere.Machine",
			"endpointType": "vsphere",
			"resourceName": "Cloud_Machine_1-mcm110615-146929827053",
			"resourceId": "1606fbcd-40e5-4edc-ab85-7b559aa986ad",
			"resourceDescLink": "/resources/compute-descriptions/1952d1d3-15f0-4574-ae42-4fbf8a87d4cc",
			"zone": "Automation / Vms",
			"countIndex": "0",
			"image": "ubuntu",
			"count": "1",
			"flavor": "small",
			"region": "MYBU",
			"_clusterAllocationSize": "1",
			"osType": "LINUX",
			"componentType": "Cloud.vSphere.Machine",
			"account": "bha"
		}
	},
	"status": "CREATE_SUCCESSFUL",
	"deploymentURI": "https://api.yourenv.com/automation-ui/#/deployment-ui;ash=/deployment/6a031f92-d0fa-42c8-bc9e-3b260ee2f65b"
}
Табл. 6. Автоматизация задач непрерывного развертывания: Kubernetes
Тип задач Scope Key Использование SCOPE и KEY в задаче
Kubernetes
Input

action: одно из следующих значений — GET, CREATE, APPLY, DELETE, ROLLBACK.

  • timeout: общее время ожидания для любого действия.
  • filterByLabel: дополнительная метка для фильтрации по действию GET с помощью K8S labelSelector

GET, CREATE, DELETE, APPLY

  • yaml: встроенный код YAML для обработки и отправки в Kubernetes.
  • parameters: пара KEY, VALUE — замените $$KEY на VALUE в области ввода YAML.
  • filePath: относительный путь от конечной точки SCM Git (если указано), из которой нужно извлечь YAML.
  • scmConstants: пара KEY, VALUE — замените $$ {KEY} на VALUE в YAML, который извлечен по SCM.
  • continueOnConflict: если задано значение true и ресурс уже существует, выполнение задачи будет продолжено.

ROLLBACK

  • resourceType: тип ресурса для отката
  • resourceName: имя ресурса для отката
  • namespace: пространство имен, в котором необходимо выполнить откат
  • revision: версия, до которой необходимо выполнить откат

${MY_STAGE.MY_TASK.input.action} # Определяет выполняемое действие.

${MY_STAGE.MY_TASK.input.timeout}

${MY_STAGE.MY_TASK.input.filterByLabel}

${MY_STAGE.MY_TASK.input.yaml}

${MY_STAGE.MY_TASK.input.parameters}

${MY_STAGE.MY_TASK.input.filePath}

${MY_STAGE.MY_TASK.input.scmConstants}

${MY_STAGE.MY_TASK.input.continueOnConflict}

${MY_STAGE.MY_TASK.input.resourceType}

${MY_STAGE.MY_TASK.input.resourceName}

${MY_STAGE.MY_TASK.input.namespace}

${MY_STAGE.MY_TASK.input.revision}

Output

response: получение полного ответа

response.<RESOURCE>: ресурс соответствует следующим значениям: configMaps, deployments, endpoints, ingresses, jobs, namespaces, pods, replicaSets, replicationControllers, secrets, services, statefulSets, nodes, loadBalancers.

response.<RESOURCE>.<KEY> — ключ соответствует одному из следующих значений: apiVersion, kind, metadata, spec.

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.response.}

Табл. 7. Интеграция приложений для разработки, тестирования и развертывания
Тип задач Scope Key Использование SCOPE и KEY в задаче
Bamboo
Input

plan: имя плана

planKey: ключ плана

variables: переменные, которые будут переданы в план

parameters: параметры, которые будут переданы в план

${MY_STAGE.MY_TASK.input.plan}

${MY_STAGE.MY_TASK.input.planKey}

${MY_STAGE.MY_TASK.input.variables}

${MY_STAGE.MY_TASK.input.parameters} # Ссылка на все параметры

${MY_STAGE.MY_TASK.input.parameters.param1} # ссылка на значение param1

Output

resultUrl: URL-адрес результирующей сборки

buildResultKey: ключ результирующей сборки

buildNumber: номер сборки

buildTestSummary: сводка выполненных тестов.

successfulTestCount: тест пройден

failedTestCount: тест не пройден

skippedTestCount: тест пропущен

artifacts: артефакты из сборки

${MY_STAGE.MY_TASK.output.resultUrl}

${MY_STAGE.MY_TASK.output.buildResultKey}

${MY_STAGE.MY_TASK.output.buildNumber}

${MY_STAGE.MY_TASK.output.buildTestSummary} # Ссылка на все результаты

${MY_STAGE.MY_TASK.output.successfulTestCount} # Ссылка на определенный тестовый результат

${MY_STAGE.MY_TASK.output.buildNumber}

Jenkins
Input

job: имя задания Jenkins

parameters: параметры, которые будут переданы в задание

${MY_STAGE.MY_TASK.input.job}

${MY_STAGE.MY_TASK.input.parameters} # Ссылка на все параметры

${MY_STAGE.MY_TASK.input.parameters.param1} # Ссылка на значение параметра

Output

job: имя задания Jenkins

jobId: идентификатор результирующего задания, например 1234

jobStatus: состояние в Jenkins

jobResults: результаты по объему протестированного/проверенного кода

jobUrl: URL-адрес результирующего цикла выполнения задания

${MY_STAGE.MY_TASK.output.job}

${MY_STAGE.MY_TASK.output.jobId}

${MY_STAGE.MY_TASK.output.jobStatus}

${MY_STAGE.MY_TASK.output.jobResults} # Ссылка на все результаты

${MY_STAGE.MY_TASK.output.jobResults.junitResponse} # Ссылка на результаты JUnit

${MY_STAGE.MY_TASK.output.jobResults.jacocoRespose} # Ссылка на результаты JaCoCo

${MY_STAGE.MY_TASK.output.jobUrl}

TFS
Input

projectCollection: коллекция проектов из TFS

teamProject: выбранный проект из доступной коллекции

buildDefinitionId: идентификатор определения сборки, которую требуется запустить

${MY_STAGE.MY_TASK.input.projectCollection}

${MY_STAGE.MY_TASK.input.teamProject}

${MY_STAGE.MY_TASK.input.buildDefinitionId}

Output

buildId: результирующий идентификатор сборки

buildUrl: URL-адрес для перехода к сводке по сборке

logUrl: URL-адрес для перехода к журналам

dropLocation: расположение сброса артефактов (при наличии)

${MY_STAGE.MY_TASK.output.buildId}

${MY_STAGE.MY_TASK.output.buildUrl}

${MY_STAGE.MY_TASK.output.logUrl}

${MY_STAGE.MY_TASK.output.dropLocation}

vRO
Input

workflowId: идентификатор рабочего процесса, который требуется запустить

parameters: параметры, которые будут переданы в рабочий процесс

${MY_STAGE.MY_TASK.input.workflowId}

${MY_STAGE.MY_TASK.input.parameters}

Output

workflowExecutionId: идентификатор цикла выполнения рабочего процесса

properties: выходные свойства из цикла выполнения рабочего процесса

${MY_STAGE.MY_TASK.output.workflowExecutionId}

${MY_STAGE.MY_TASK.output.properties}

Табл. 8. Интеграция других приложений с помощью API-интерфейса
Тип задач Scope Key Использование SCOPE и KEY в задаче
REST
Input

url: URL-адрес вызова

action: используемый метод HTTP

headers: передаваемые заголовки HTTP

payload: полезные данные запроса

fingerprint: отпечаток пальца для сопоставления, если для URL-адреса используется протокол https

allowAllCerts: если задано значение «истина», принимается любой сертификат с URL-адресом типа https

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.action}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.payload}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode: код ответа HTTP

responseHeaders: заголовки ответа HTTP

responseBody: строковый формат полученного ответа

responseJson: активный ответ, если параметр content-type имеет значение application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseHeaders}

${MY_STAGE.MY_TASK.output.responseHeaders.header1} # Ссылка на заголовок ответа header1

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Ссылка на ответ в формате JSON

${MY_STAGE.MY_TASK.output.responseJson.a.b.c} # Ссылка на вложенный объект после пути JSON "a.b.с" в ответе

Опрос
Input

url: URL-адрес вызова

headers: передаваемые заголовки HTTP

exitCriteria: критерии успешного или неудачного выполнения задачи. Пара ключ-значение: "успех" → выражение, "сбой" → выражение

pollCount: количество выполняемых итераций

pollIntervalSeconds: время ожидание между итерациями в секундах

ignoreFailure: если задано значение «истина», ошибки в промежуточных ответах игнорируются

fingerprint: отпечаток пальца для сопоставления, если для URL-адреса используется протокол https

allowAllCerts: если задано значение «истина», принимается любой сертификат с URL-адресом типа https

${MY_STAGE.MY_TASK.input.url}

${MY_STAGE.MY_TASK.input.headers}

${MY_STAGE.MY_TASK.input.exitCriteria}

${MY_STAGE.MY_TASK.input.pollCount}

${MY_STAGE.MY_TASK.input.pollIntervalSeconds}

${MY_STAGE.MY_TASK.input.ignoreFailure}

${MY_STAGE.MY_TASK.input.fingerprint}

${MY_STAGE.MY_TASK.input.allowAllCerts}

Output

responseCode: код ответа HTTP

responseBody: строковый формат полученного ответа

responseJson: активный ответ, если параметр content-type имеет значение application/json

${MY_STAGE.MY_TASK.output.responseCode}

${MY_STAGE.MY_TASK.output.responseBody}

${MY_STAGE.MY_TASK.output.responseJson} # Refer to response as JSON

Табл. 9. Запуск удаленных и пользовательских сценариев
Тип задач Scope Key Использование SCOPE и KEY в задаче
PowerShell
Input

host: IP-адрес или имя узла компьютера

username: имя пользователя, используемое для подключения

password: пароль, используемый для подключения

useTLS: попытка подключения по протоколу https

trustCert: если задано значение «истина», разрешено доверять самозаверяющим сертификатам.

script: запускаемый сценарий

workingDirectory: путь к каталогу, на который требуется переключиться перед запуском сценария

environmentVariables: пара «ключ-значение» переменной среды, которую требуется задать

arguments: аргументы для передачи в сценарий

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.useTLS}

${MY_STAGE.MY_TASK.input.trustCert}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

${MY_STAGE.MY_TASK.input.arguments}

Output

response: содержимое файла $SCRIPT_RESPONSE_FILE

responseFilePath: значение $SCRIPT_RESPONSE_FILE

exitCode: код завершения процесса

logFilePath: путь к файлу, содержащему stdout

errorFilePath: путь к файлу, содержащему stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

SSH
Input

host: IP-адрес или имя узла компьютера

username: имя пользователя, используемое для подключения

password: пароль, используемый для подключения (при необходимости может использоваться закрытый ключ privateKey)

privateKey: закрытый ключ privateKey, используемый для подключения

passphrase: дополнительная парольная фраза для разблокировки закрытого ключа privateKey

script: запускаемый сценарий

workingDirectory: путь к каталогу, на который требуется переключиться перед запуском сценария

environmentVariables: пара «ключ-значение» переменной среды, которую требуется задать

${MY_STAGE.MY_TASK.input.host}

${MY_STAGE.MY_TASK.input.username}

${MY_STAGE.MY_TASK.input.password}

${MY_STAGE.MY_TASK.input.privateKey}

${MY_STAGE.MY_TASK.input.passphrase}

${MY_STAGE.MY_TASK.input.script}

${MY_STAGE.MY_TASK.input.workingDirectory}

${MY_STAGE.MY_TASK.input.environmentVariables}

Output

response: содержимое файла $SCRIPT_RESPONSE_FILE

responseFilePath: значение $SCRIPT_RESPONSE_FILE

exitCode: код завершения процесса

logFilePath: путь к файлу, содержащему stdout

errorFilePath: путь к файлу, содержащему stderr

${MY_STAGE.MY_TASK.output.response}

${MY_STAGE.MY_TASK.output.responseFilePath}

${MY_STAGE.MY_TASK.output.exitCode}

${MY_STAGE.MY_TASK.output.logFilePath}

${MY_STAGE.MY_TASK.output.errorFilePath}

Использование привязки переменных в разных задачах

В этом примере показано, как использовать привязки переменных в задачах конвейера.

Табл. 10. Примеры форматов синтаксиса
Пример Синтаксис
Использование результата выполнения задачи для уведомлений конвейера и выходных свойств конвейера ${<Stage Key>.<Task Key>.output.<Task output key>}
Использование результата выполнения предыдущей задачи в качестве входных данных для текущей ${<Previous/Current Stage key>.<Previous task key not in current Task group>.output.<task output key>}

Дополнительные сведения

Дополнительные сведения о выполнении привязки переменных см. в разделе