除了在创建云模板时使用的 Cloud Assembly 云模板资源外,还可以创建自己的自定义资源。
自定义资源是使用自定义资源中定义的生命周期操作通过 vRealize Automation 管理的 vRealize Orchestrator 或可扩展性操作对象。触发与特定生命周期操作关联的操作时,云模板服务会自动调用相应的 vRealize Orchestrator 工作流或可扩展性操作。此外,还可以通过选择可用作实施后操作的 vRealize Orchestrator 工作流或可扩展性操作扩展资源类型的功能。
此用例使用 vRealize Orchestrator 库中提供的内置工作流。它包含指导性值或字符串,帮助演示如何执行过程。可以根据您的环境对其进行修改。
为便于参考,此用例使用名为 DevOpsTesting 的项目。可以将此示例项目替换为您环境中的任何项目。
前提条件
- 确认您已配置 vRealize Orchestrator 集成。请参见在 Cloud Assembly 中配置 vRealize Orchestrator 集成。
- 确认 vRealize Orchestrator 中存在用于创建、更新、销毁和实施后操作的工作流,并且成功运行。
- 在 vRealize Orchestrator 中,找到工作流使用的资源类型。此自定义资源中包含的工作流必须全部使用相同的资源类型。在此用例中,资源类型为
AD:User
。有关资源类型验证的详细信息,请参见Cloud Assembly 云模板的自定义资源类型。
- 通过使用 vRealize Orchestrator 集成中的内置 Active Directory 工作流,配置 Active Directory 服务器。
- 确认您知道如何配置并部署计算机云模板。
过程
- 创建用于在组中添加用户的 Active Directory 自定义资源。
此步骤将自定义资源作为一种资源类型添加到云模板设计画布。
- 在 Cloud Assembly 中,选择,然后单击新建自定义资源。
- 提供以下值。
请注意,除工作流名称外,这些值都是示例值。
设置 |
示例值 |
名称 |
AD user 这是显示在云模板资源类型调色板中的名称。 |
资源类型 |
Custom.ADUser 资源类型必须以 Custom. 开头且每个资源类型必须唯一。 尽管未验证文本框中是否包含 Custom.,但如果将其移除,会自动添加该字符串。 此资源类型将添加到资源类型调色板中,以便可以在云模板中使用。 |
- 要在云模板资源类型列表中启用此资源类型,请验证激活选项是否已打开。
- 选择范围设置,使该资源类型可用于任何项目。
- 在基于下,确认选择 vRO 清单作为生命周期操作提供者。
- 选择定义资源和实施后操作的工作流。
注: 所选实施后操作工作流的输入参数类型必须与外部类型相同。外部类型输入不会显示在用户请求的实施后操作自定义表单中,因为它会自动绑定到自定义资源。
设置 |
示例值 |
生命周期操作 - 创建 |
选择在组织单位中创建用户和密码工作流。 如果您有多个 vRealize Orchestrator 集成,请在用于运行这些自定义资源的集成实例上选择工作流。 选择工作流后,“外部类型”下拉菜单将变得可用,并自动设置为 AD:User 。
注: 如果是共享资源,则只能使用一次外部源类型,而且每个项目只能使用一次。在此用例中,您将为所有项目提供相同的自定义资源。这意味着,您不能将
AD:User 用于所有项目的任何其他资源类型。如果有其他工作流需要
AD:User 类型,则必须为每个项目创建单独的自定义资源。
|
生命周期操作 - 销毁 |
选择销毁用户工作流。 |
其他操作 |
选择更改用户密码工作流。 在添加操作窗口中,添加操作的名称,例如 password_change,然后单击添加。
要修改用户在请求操作时响应的操作请求表单,请单击
请求参数列中的图标。
注: 对于其他操作工作流,请确认工作流的输入参数类型与外部类型相同。
|
在此示例中,没有适当地应用更新工作流。更新工作流(对置备的自定义资源进行更改)的一个常见示例是横向缩减或扩展部署。
- 查看结构定义键并在属性选项卡中键入值,以便了解工作流输入,从而可以在云模板中配置输入。
该结构定义列出了工作流中定义的必需和可选输入值。必需输入值包含在云模板 YAML 中。
在“创建用户”工作流中,accountName
、displayName
和 ouContainer
是必需输入值。其他结构定义属性不是必需项。还可以使用结构定义确定要创建与其他字段值、工作流或操作绑定的位置。此用例中不包括绑定。
- 要完成创建自定义资源,请单击创建。
- 创建云模板,以便在部署时将用户添加到计算机。
- 选择,然后单击。
- 将此云模板命名为 Machine with an AD user。
- 选择 DevOpsTesting 项目,然后单击创建。
- 添加和配置 vSphere 计算机。
- 从云模板设计页面左侧的“自定义资源”列表中,将 AD user 资源类型拖动到画布上。
注: 选择自定义资源的方法有两种:向下滚动,然后从左侧窗格中进行选择;在
搜索资源类型文本框中进行搜索。如果自定义资源未显示,请单击
搜索资源类型文本框旁边的刷新按钮。
- 在右侧,编辑 YAML 代码,以添加必需的输入值和密码。
在代码中添加
inputs
部分,以便用户可以提供所添加用户的名称。在以下示例中,其中一些值是示例数据。您的值可能会有所不同。
inputs:
accountName:
type: string
title: Account name
encrypted: true
displayName:
type: string
title: Display name
password:
type: string
title: Password
encrypted: true
confirmPassword:
type: string
title: Password
encrypted: true
ouContainer:
type: object
title: AD OU container
$data: 'vro/data/inventory/AD:OrganizationalUnit'
properties:
id:
type: string
type:
type: string
- 在
resources
部分中,添加 ${input.input-name}
代码以提示提供用户选择。
resources:
Custom_ADUser_1:
type: Custom.ADUser
properties:
accountName: '${input.accountName}'
displayName: '${input.displayName}'
ouContainer: '${input.ouContainer}'
password: '${input.password}'
confirmPassword: '${input.confirmPassword}'
- 部署云模板。
- 在云模板设计器页面上,单击部署。
- 输入部署名称 AD User Scott。
- 选择云模板版本,然后单击下一步。
- 完成部署输入。
- 单击部署。
- 在部署页面上监控置备请求,以确保用户添加到 Active Directory 且部署成功。
下一步做什么
经过测试的云模板正常运行时,可以开始在其他云模板中使用 AD user 自定义资源。