除了在创建云模板时使用的 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 服务器。
  • 确认您知道如何配置并部署计算机云模板。

过程

  1. 创建用于在组中添加用户的 Active Directory 自定义资源。
    此步骤将自定义资源作为一种资源类型添加到云模板设计画布。
    1. Cloud Assembly 中,选择设计 > 自定义资源,然后单击新建自定义资源
    2. 提供以下值。

      请注意,除工作流名称外,这些值都是示例值。

      设置 示例值
      名称 AD user

      这是显示在云模板资源类型调色板中的名称。

      资源类型 Custom.ADUser

      资源类型必须以 Custom. 开头且每个资源类型必须唯一。

      尽管未验证文本框中是否包含 Custom.,但如果将其移除,会自动添加该字符串。

      此资源类型将添加到资源类型调色板中,以便可以在云模板中使用。

    3. 要在云模板资源类型列表中启用此资源类型,请验证激活选项是否已打开。
    4. 选择范围设置,使该资源类型可用于任何项目。
    5. 基于下,确认选择 vRO 清单作为生命周期操作提供者。
    6. 选择定义资源和实施后操作的工作流。
      注: 所选实施后操作工作流的输入参数类型必须与外部类型相同。外部类型输入不会显示在用户请求的实施后操作自定义表单中,因为它会自动绑定到自定义资源。
      设置 示例值
      生命周期操作 - 创建 选择在组织单位中创建用户和密码工作流。

      如果您有多个 vRealize Orchestrator 集成,请在用于运行这些自定义资源的集成实例上选择工作流。

      选择工作流后,“外部类型”下拉菜单将变得可用,并自动设置为 AD:User

      注: 如果是共享资源,则只能使用一次外部源类型,而且每个项目只能使用一次。在此用例中,您将为所有项目提供相同的自定义资源。这意味着,您不能将 AD:User 用于所有项目的任何其他资源类型。如果有其他工作流需要 AD:User 类型,则必须为每个项目创建单独的自定义资源。
      生命周期操作 - 销毁 选择销毁用户工作流。
      其他操作 选择更改用户密码工作流。

      添加操作窗口中,添加操作的名称,例如 password_change,然后单击添加

      要修改用户在请求操作时响应的操作请求表单,请单击 请求参数列中的图标。
      注: 对于其他操作工作流,请确认工作流的输入参数类型与外部类型相同。

      在此示例中,没有适当地应用更新工作流。更新工作流(对置备的自定义资源进行更改)的一个常见示例是横向缩减或扩展部署。

    7. 查看结构定义键并在属性选项卡中键入值,以便了解工作流输入,从而可以在云模板中配置输入。
      该结构定义列出了工作流中定义的必需和可选输入值。必需输入值包含在云模板 YAML 中。

      在“创建用户”工作流中,accountNamedisplayNameouContainer 是必需输入值。其他结构定义属性不是必需项。还可以使用结构定义确定要创建与其他字段值、工作流或操作绑定的位置。此用例中不包括绑定。

    8. 要完成创建自定义资源,请单击创建
  2. 创建云模板,以便在部署时将用户添加到计算机。
    1. 选择设计 > 云模板,然后单击新建自 > 空白画布
    2. 将此云模板命名为 Machine with an AD user
    3. 选择 DevOpsTesting 项目,然后单击创建
    4. 添加和配置 vSphere 计算机。
    5. 从云模板设计页面左侧的“自定义资源”列表中,将 AD user 资源类型拖动到画布上。
      注: 选择自定义资源的方法有两种:向下滚动,然后从左侧窗格中进行选择;在 搜索资源类型文本框中进行搜索。如果自定义资源未显示,请单击 搜索资源类型文本框旁边的刷新按钮。
    6. 在右侧,编辑 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    
      
    7. 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}'       
              
  3. 部署云模板。
    1. 在云模板设计器页面上,单击部署
    2. 输入部署名称 AD User Scott
    3. 选择云模板版本,然后单击下一步
    4. 完成部署输入。
    5. 单击部署
  4. 部署页面上监控置备请求,以确保用户添加到 Active Directory 且部署成功。

下一步做什么

经过测试的云模板正常运行时,可以开始在其他云模板中使用 AD user 自定义资源。