可以使用 vRealize Orchestrator 工作流创建用于构建云模板的自定义资源。在此用例中,您将添加一个自定义资源来添加 SSH 主机。然后,可以将该资源包括在云模板中。此过程还会添加更新工作流,使用户可在部署后更改 SSH 配置,而无需执行各个实施后操作。

自定义资源是使用自定义资源中定义的生命周期操作通过 vRealize Automation 管理的 vRealize Orchestrator 或可扩展性操作对象。触发与特定生命周期操作关联的操作时,云模板服务会自动调用相应的 vRealize Orchestrator 工作流或可扩展性操作。此外,还可以通过选择可用作实施后操作的 vRealize Orchestrator 工作流或可扩展性操作扩展资源类型的功能。

此用例使用 vRealize Orchestrator 库中提供的内置工作流。它包含指导性值或字符串,帮助演示如何执行过程。可以根据您的环境对其进行修改。

为便于参考,此用例使用名为 DevOpsTesting 的项目。可以将项目替换为您已有的项目。

前提条件

  • 确认您已配置 vRealize Orchestrator 集成。请参见在 Cloud Assembly 中配置 vRealize Orchestrator 集成
  • 确认 vRealize Orchestrator 中存在用于创建、更新、销毁和实施后操作的工作流,并且成功运行。
  • vRealize Orchestrator 中,找到工作流使用的资源类型。此自定义资源中包含的工作流必须全部使用相同的资源类型。在此用例中,资源类型为 SSH:Host。有关资源类型验证的详细信息,请参见Cloud Assembly 云模板的自定义资源类型
  • 确认您知道如何配置并部署计算机云模板。

过程

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

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

      表 1.
      设置 示例值
      名称 SSH Host - DevOpsTesting Project

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

      资源类型 Custom.SSHHost

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

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

      此资源类型将添加到设计画布,以便可以在云模板中使用。

    3. 要在云模板资源类型列表中启用此资源类型,请验证激活选项是否已打开。
    4. 选择使资源类型可用于 DevOpsTesting 项目的范围设置。
    5. 基于下,确认选择 vRO 清单作为生命周期操作提供者。
    6. 选择定义资源的工作流。
      设置 设置
      生命周期操作 - 创建 选择添加 SSH 主机工作流。

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

      选择工作流后,“外部类型”下拉菜单将变得可用,并自动设置为 SSH:Host。如果是共享资源,则只能使用一次外部源类型,而且每个项目只能使用一次。在此用例中,您将只为 DevOpsTesting 项目提供自定义资源。如果有其他工作流需要 SSH:Host 类型,则必须为每个项目创建单独的自定义资源。

      生命周期操作 - 更新 选择更新 SSH 主机工作流。
      生命周期操作 - 销毁 选择移除 SSH 主机工作流。
    7. 查看结构定义键并在属性选项卡中键入值,以便了解工作流输入,从而可以在云模板中配置输入。
      该结构定义列出了工作流中定义的必需和可选输入值。必需输入值包含在云模板 YAML 中。

      添加 SSH 主机工作流中,hostnameportusername 都是必需的输入值。其他结构定义属性不是必需项。还可以使用结构定义确定要创建与其他字段值、工作流或操作绑定的位置。此用例中不包括绑定。

    8. 要完成创建自定义资源,请单击创建
  2. 创建云模板,以便在部署时添加 SSH 主机。
    1. 选择设计 > 云模板,然后单击新建自 > 空白画布
    2. 将此云模板命名为 Machine with SSH Host
    3. 选择 DevOpsTesting 项目,然后单击创建
    4. 添加和配置 vSphere 计算机。
    5. 从云模板设计页面左侧的“自定义资源”列表中,将 SSH Host - DevOpsTesting Project 资源类型拖动到画布上。
      注: 选择自定义资源的方法有两种:向下滚动,然后从左侧窗格中进行选择;在 搜索资源类型文本框中进行搜索。如果自定义资源未显示,请单击 搜索资源类型文本框旁边的刷新按钮。
      系统会提醒该资源类型可用,因为它是为该项目配置的。如果为其他项目创建云模板,则看不到该资源类型。
    6. 在右侧,编辑 YAML 代码,以添加必需的输入值。
      在代码中添加 inputs 部分,以便用户可在部署时提供用户名和主机名。在此示例中,端口默认值为 22。在以下示例中,其中一些值是示例数据。您的值可能会有所不同。
      inputs: 
        hostname:
          type: string
          title: The hostname of the SSH Host
        username:
          type: string
          title: Username
      
    7. resources 部分中,添加 ${input.input-name} 代码以提示提供用户选择。
      resources:
        Custom_SSHHost_1:
          type: Custom.SSHHost
          properties:
            port: 22
            hostname: '${input.hostname}'
            username: '${input.username}'
      
  3. 部署云模板。
    1. 在云模板设计器页面上,单击部署
    2. 部署名称中输入 SSH Host Test
    3. 选择云模板版本,然后单击下一步
    4. 完成部署输入。
    5. 单击部署
  4. 部署页面上监控置备请求,以确保 SSH 主机包含在部署中且部署成功。

下一步做什么

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