Code Stream 可以与 vRealize Orchestrator (vRO) 集成,以便通过运行 vRO工作流来扩展其功能。vRealize Orchestrator 包括许多可与第三方工具集成的预定义工作流。这些工作流有助于自动执行和管理 DevOps 流程以及自动执行批量操作等。
例如,您可以在管道的 vRO 任务中使用工作流,以启用用户、移除用户、移动虚拟机以及与测试框架集成以在管道运行过程中测试代码等。可以在 code.vmware.com 中浏览 vRealize Orchestrator 工作流的代码示例。
使用 vRealize Orchestrator 工作流,管道可以在生成、测试和部署应用程序的过程中运行操作。您可以将预定义的工作流包含到管道中,也可以创建并使用自定义工作流。每个工作流都包含输入、任务和输出。
要在管道中运行 vRO 工作流,该工作流必须显示在包含到管道的 vRO 任务的可用工作流列表中。
管理员首先必须在 vRealize Orchestrator 中执行以下步骤,然后工作流才可以显示在管道的 vRO 任务中:
- 将 CODESTREAM 标记应用到 vRO 工作流。
- 将 vRO 工作流标记为全局工作流。
前提条件
- 确认您能够以管理员身份访问 vRealize Orchestrator 的内部部署实例。要获取帮助,请向管理员咨询并参见 vRealize Orchestrator 文档。
- 验证您是 Code Stream 中项目的成员。如果您不是其成员,则让 Code Stream 管理员将您添加为项目的成员。请参见如何在 Code Stream 中添加项目。
- 在 Code Stream 中,创建一个管道并添加一个阶段。
过程
- 以管理员的身份准备 vRealize Orchestrator 工作流以让管道运行。
- 在 vRealize Orchestrator 中,查找要在管道中使用的工作流,例如用于启用用户的工作流。
如果所需的工作流不存在,您可以创建该工作流。
- 在搜索栏中,输入标记工作流以查找标记工作流。
- 在标记工作流卡视图上,单击运行,随后将显示配置区域。
- 在标记的工作流文本区域中,输入在 Code Stream 管道中使用的工作流的名称,然后从列表中选择该工作流。
- 在标记和值文本区域中,以大写字母形式输入 CODESTREAM。
- 单击全局标记复选框。
- 单击运行,将 CODESTREAM 标记附加到您要在 Code Stream 管道中选择的工作流。
- 在导航窗格中,单击工作流,并确认 CODESTREAM 标记显示在管道将运行的工作流卡视图上。
登录到 Code Stream 并向管道添加 vRO 任务后,标记的工作流会显示在工作流列表中。
- 在 vRealize Orchestrator 中,查找要在管道中使用的工作流,例如用于启用用户的工作流。
- 在 Code Stream 中,为 vRealize Orchestrator 实例创建端点。
- 单击 。
- 选择一个项目。
- 输入相关的名称。
- 输入 vRealize Orchestrator 端点的 URL。
请使用以下格式: https://vro-appliance.yourdomain.local:8281请勿使用以下格式:https://vro-appliance.yourdomain.local:8281/vco/apivRealize Automation 设备中嵌入的 vRealize Orchestrator 实例的 URL 是设备的 FQDN,不含端口。例如: https://vra-appliance.yourdomain.local/vco从 vRealize Automation 8.x 开始,对于外部 vRealize Orchestrator Appliance,设备的 FQDN 为 https://vro-appliance.yourdomain.local。对于 vRealize Automation 7.x 中包含的外部 vRealize Orchestrator Appliance,设备的 FQDN 为 https://vro-appliance.yourdomain.local:8281/vco如果在添加端点时出现问题,可能需要导入具有 SHA-256 证书指纹但移除了冒号的 YAML 配置。例如, 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> ```
- 如果您输入的 URL 需要证书,单击接受证书。
- 如果 vRealize Orchestrator 端点的版本为 8.0 到 8.7,请选择基本身份验证作为“身份验证类型”,然后输入 vRealize Orchestrator 服务器的用户名和密码。
如果使用非本地用户进行身份验证,则必须省略用户名的域部分。例如,要使用 [email protected] 进行身份验证,必须在用户名文本区域中输入 svc_vro。
注: 如果 vRealize Orchestrator 端点的版本为 8.8 或更高版本,则不支持“基本身份验证”,并且端点创建将失败。
- 准备管道以运行 vRO 任务。
- 向管道阶段添加 vRO 任务。
- 输入相关的名称。
- 在“工作流属性”区域,选择 vRealize Orchestrator 端点。
- 选择您在 vRealize Orchestrator 中标记为 CODESTREAM 的工作流。
如果选择您创建的自定义工作流,可能需要键入输入参数值。
- 对于执行任务,单击基于条件。
- 输入要在管道运行时应用的条件。
何时运行管道... 选择条件... 基于条件 仅在已定义的条件的评估结果为 true 时运行管道任务。如果该条件为 false,则跳过任务。
vRO 任务允许包含布尔表达式,该表达式使用以下操作数和运算符。
- 管道变量,例如 ${pipeline.variableName}。输入变量时,仅可使用大括号。
- 任务输出变量,例如 ${Stage1.task1.machines[0].value.hostIp[0]}。
- 默认管道绑定变量,例如 ${releasePipelineName}。
- 不区分大小写的布尔值,例如 true、false、'true' 和 'false'。
- 不带引号的整数值或小数值。
- 带有单引号或双引号的字符串值,例如 "test" 和 'test'。
- 字符串和数值类型的值,例如 == Equals 和 != Not Equals。
- 关系运算符,例如 >、>=、< 和 <=。
- 布尔逻辑,例如 && 和 ||。
- 算术运算符,例如 +、-、* 和 /。
- 带有圆括号的嵌套表达式。
- 包含字面值 ABCD 的字符串的评估结果为 false,因此将跳过任务。
- 不支持一元运算符。
示例条件可以是 ${Stage1.task1.output} == “Passed” || ${pipeline.variableName} == 39
始终 如果选择始终,管道将运行任务而不应用条件。 - 输入问候消息。
- 单击验证任务,并更正出现的任何错误。
- 保存、启用并运行管道。
- 管道运行之后,检查结果。
- 单击执行。
- 单击该管道。
- 单击相关任务。
- 检查结果、输入值和属性。
您可以确定工作流执行 ID、对任务做出响应的人员、该人员做出响应的时间以及该人员添加的任何注释。
结果
恭喜!您已标记了要在 Code Stream 中使用的 vRealize Orchestrator 工作流,并在 Code Stream 管道中添加了 vRO 任务,以使其运行在 DevOps 环境中自动执行某个操作的工作流。
示例: vRO 任务输出格式
vRO 任务的输出格式类似于以下示例。
[{ "name": "result", "type": "STRING", "description": "Result of workflow run.", "value": "" }, { "name": "message", "type": "STRING", "description": "Message", "value": "" }]
下一步做什么
继续将其他 vRO 工作流任务包含到管道中,以便在开发环境、测试环境和生产环境中自动执行任务。