可以使用 vRealize Orchestrator 工作流创建用于构建云模板的自定义资源。在此用例中,您将添加一个自定义资源来添加 SSH 主机。然后,可以将该资源包括在云模板中。此过程还会添加更新工作流,使用户可在部署后更改 SSH 配置,而无需执行各个实施后操作。
自定义资源是使用自定义资源中定义的生命周期操作通过 vRealize Automation 管理的 vRealize Orchestrator 或可扩展性操作对象。触发与特定生命周期操作关联的操作时,云模板服务会自动调用相应的 vRealize Orchestrator 工作流或可扩展性操作。此外,还可以通过选择可用作实施后操作的 vRealize Orchestrator 工作流或可扩展性操作扩展资源类型的功能。
此用例使用 vRealize Orchestrator 库中提供的内置工作流。它包含指导性值或字符串,帮助演示如何执行过程。可以根据您的环境对其进行修改。
为便于参考,此用例使用名为 DevOpsTesting 的项目。可以将项目替换为您已有的项目。
过程
- 创建 SSH 主机自定义资源,以将 SSH 添加到云模板。
此步骤将自定义资源作为一种资源类型添加到云模板设计画布。
- 在 Cloud Assembly 中,选择,然后单击新建自定义资源。
- 提供以下值。
请注意,除工作流名称外,这些值都是示例值。
表 1.
设置 |
示例值 |
名称 |
SSH Host - DevOpsTesting Project 这是显示在云模板资源类型调色板中的名称。 |
资源类型 |
Custom.SSHHost 资源类型必须以 Custom. 开头且每个资源类型必须唯一。 尽管未验证文本框中是否包含 Custom.,但如果将其移除,会自动添加该字符串。 此资源类型将添加到设计画布,以便可以在云模板中使用。 |
- 要在云模板资源类型列表中启用此资源类型,请验证激活选项是否已打开。
- 选择使资源类型可用于 DevOpsTesting 项目的范围设置。
- 在基于下,确认选择 vRO 清单作为生命周期操作提供者。
- 选择定义资源的工作流。
设置 |
设置 |
生命周期操作 - 创建 |
选择添加 SSH 主机工作流。 如果您有多个 vRealize Orchestrator 集成,请在用于运行这些自定义资源的集成实例上选择工作流。 选择工作流后,“外部类型”下拉菜单将变得可用,并自动设置为 SSH:Host 。如果是共享资源,则只能使用一次外部源类型,而且每个项目只能使用一次。在此用例中,您将只为 DevOpsTesting 项目提供自定义资源。如果有其他工作流需要 SSH:Host 类型,则必须为每个项目创建单独的自定义资源。 |
生命周期操作 - 更新 |
选择更新 SSH 主机工作流。 |
生命周期操作 - 销毁 |
选择移除 SSH 主机工作流。 |
- 查看结构定义键并在属性选项卡中键入值,以便了解工作流输入,从而可以在云模板中配置输入。
该结构定义列出了工作流中定义的必需和可选输入值。必需输入值包含在云模板 YAML 中。
在添加 SSH 主机工作流中,hostname
、port
和 username
都是必需的输入值。其他结构定义属性不是必需项。还可以使用结构定义确定要创建与其他字段值、工作流或操作绑定的位置。此用例中不包括绑定。
- 要完成创建自定义资源,请单击创建。
- 创建云模板,以便在部署时添加 SSH 主机。
- 选择,然后单击。
- 将此云模板命名为 Machine with SSH Host。
- 选择 DevOpsTesting 项目,然后单击创建。
- 添加和配置 vSphere 计算机。
- 从云模板设计页面左侧的“自定义资源”列表中,将 SSH Host - DevOpsTesting Project 资源类型拖动到画布上。
注: 选择自定义资源的方法有两种:向下滚动,然后从左侧窗格中进行选择;在
搜索资源类型文本框中进行搜索。如果自定义资源未显示,请单击
搜索资源类型文本框旁边的刷新按钮。
系统会提醒该资源类型可用,因为它是为该项目配置的。如果为其他项目创建云模板,则看不到该资源类型。
- 在右侧,编辑 YAML 代码,以添加必需的输入值。
在代码中添加
inputs
部分,以便用户可在部署时提供用户名和主机名。在此示例中,端口默认值为 22。在以下示例中,其中一些值是示例数据。您的值可能会有所不同。
inputs:
hostname:
type: string
title: The hostname of the SSH Host
username:
type: string
title: Username
- 在
resources
部分中,添加 ${input.input-name}
代码以提示提供用户选择。
resources:
Custom_SSHHost_1:
type: Custom.SSHHost
properties:
port: 22
hostname: '${input.hostname}'
username: '${input.username}'
- 部署云模板。
- 在云模板设计器页面上,单击部署。
- 在部署名称中输入 SSH Host Test。
- 选择云模板版本,然后单击下一步。
- 完成部署输入。
- 单击部署。
- 在部署页面上监控置备请求,以确保 SSH 主机包含在部署中且部署成功。
下一步做什么
经过测试的云模板正常运行时,可以开始在其他云模板中使用 SSH Host 自定义资源。