在云模板的迭代式开发期间,或者当您具有最终模板时,可以使这些模板在 Service Broker 自助目录中可用,以供使用者使用。为了进一步增强用户体验,您可以创建自定义请求表单。自定义表单比简单模板输入选项的功能更强大。
必备条件
- 确认您具有支持模板的基础架构。如果没有,请先教程:在 Cloud Assembly 中设置和测试 vSphere 基础架构和部署,然后再继续其他教程。
- 确认您已将某些资源池标记为
env:dev
和env:prod
。有关详细信息,请参见教程:在 Cloud Assembly 中使用标记管理 vSphere 资源。 - 确保您具有如下类似的可部署云模板。本教程从以下模板开始。
formatVersion: 1 inputs: installedOS: type: string title: Operating System description: Select the operating system. enum: - centos - ubuntu placement: type: string enum: - 'env:dev' - 'env:prod' default: 'env:dev' title: Select Placement for Deployment description: Target Environment resources: Cloud_vSphere_Disk_1: type: Cloud.vSphere.Disk properties: capacityGb: 1 Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: image: '${input.installedOS}' installedOS: '${input.installedOS}' flavor: small constraints: - tag: '${input.placement}' tags: - key: db value: mysql networks: - network: '${resource.Cloud_NSX_Network_1.id}' tags: - key: db value: mysql attachedDisks: - source: '${resource.Cloud_vSphere_Disk_1.id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing tags: - key: NGINX value: web
步骤 1:向云模板添加输入
除了现有的操作系统类型输入外,此过程还会更新布置输入并添加大小输入。在 Service Broker 中自定义请求表单时,这些是在请求表单上自定义的三个字段。
- 在 Cloud Assembly 中,选择 ,然后创建或打开上面提供的模板。
示例模板用于说明不同的选项并包括示例值。根据您的环境进行调整。
- 添加大小变量,并在“输入”部分中定义大小。
- 在“Cloud_vSphere_Machine_1”部分中,将变量添加到
flavor
属性。flavor: '${input.size}'
- 在“输入”部分中,添加名为 size 的用户输入,以便用户可以选择部署大小。这有时也称为您为云区域定义的 T 恤大小。
size: type: string title: Deployment size description: Select the the deployment t-shirt size. enum: - small - medium - large
- 在“Cloud_vSphere_Machine_1”部分中,将变量添加到
- 更新布置输入,提供描述性术语,而不是标记字符串。
这些限制标记将与在教程:在 Cloud Assembly 中使用标记管理 vSphere 资源中添加的功能标记相匹配。
- 在“输入”部分中,添加名为 placement 的用户输入,以便用户可以选择开发或生产作为部署布置。
此示例使用
oneOf
属性,以便能够提供自然语言标签,同时仍提交部署过程所需的字符串。例如,env:dev
和env:prod
标记。placement: type: string oneOf: - title: Development const: 'env:dev' - title: Production const: 'env:prod' default: 'env:dev' title: Select Deployment Placement description: Target Environment
- 在“输入”部分中,添加名为 placement 的用户输入,以便用户可以选择开发或生产作为部署布置。
- 查看完整的 YAML 以确保类似于以下示例。
formatVersion: 1 inputs: installedOS: type: string title: Operating system description: Select the operating system. enum: - centos - ubuntu placement: type: string oneOf: - title: Development const: 'env:dev' - title: Production const: 'env:prod' default: 'env:dev' title: Select Deployment Placement description: Target Environment size: type: string title: Deployment size description: Select the the deployment t-shirt size. enum: - small - medium - large resources: Cloud_vSphere_Disk_1: type: Cloud.vSphere.Disk properties: capacityGb: 1 Cloud_vSphere_Machine_1: type: Cloud.vSphere.Machine properties: image: '${input.installedOS}' installedOS: '${input.installedOS}' flavor: '${input.size}' constraints: - tag: '${input.placement}' tags: - key: db value: mysql networks: - network: '${resource.Cloud_NSX_Network_1.id}' tags: - key: db value: mysql attachedDisks: - source: '${resource.Cloud_vSphere_Disk_1.id}' Cloud_NSX_Network_1: type: Cloud.NSX.Network properties: networkType: existing tags: - key: NGINX value: web
- 单击部署,验证请求的第二个页面是否类似于以下示例,然后可以验证部署在部署后是否位于所选的开发或生产资源池中。
步骤 2:对云模板进行版本控制和发布
具有可部署的模板后,现在可以使其在 Service Broker 目录中可用,以供其他用户部署。要使云模板可发现以便将其添加到目录,必须发布该模板。在此过程中,将对模板进行版本控制以捕获模板的快照,然后发布模板。
- 选择 ,然后在设计画布中打开模板。
- 单击版本控制,然后输入描述。
- 选中发布复选框,然后单击创建。
发布云模板不会自动将其添加到 Service Broker。发布后会使其可发现,以便将其添加到目录中。
步骤 3:将云模板添加到 Service Broker 目录
您可以使用 Service Broker 目录将云模板提供给您组织中的其他使用者,而他们无需了解如何创建模板。他们可以使用目录部署模板。
将模板添加为目录项之前,必须先将其导入到 Service Broker。只能导入已发布的云模板。
- 要从 Cloud Assembly 打开 Service Broker,请单击右上角的应用程序菜单。
- 单击 Service Broker。
- 导入云模板。
- 在 Service Broker 中,选择 。
- 单击新建,然后选择 VMware Cloud Templates。
- 输入名称。
对于本教程,输入 Cloud Assembly DevProject。
- 对于项目,选择在 Cloud Assembly 中创建的 Development Project。
- 单击验证。
系统必须指示至少找到了一个项目。
- 验证后,单击创建并导入。
Cloud Assembly DevProject 将作为内容源添加到列表中。
- 使云模板在目录中可用。
- 选择 。
- 单击新建策略,然后单击内容共享策略。
- 输入名称。
对于本教程,输入 DevProject Policy。
- 在范围列表中,选择 Development Project。
- 在内容共享部分中,单击添加项。
- 在共享项目对话框中,选择
Cloud Assembly DevProject
,然后单击保存。 - 在用户部分中,选择您希望能够在目录中查看该项的项目用户和组。
- 单击创建。
- 要验证“开发模板”是否已添加到目录中,请单击目录。
- 单击“开发模板”卡视图上的请求。
请注意,此处提供了您在云模板上看到的输入。下一步是自定义请求表单。
步骤 4:为模板创建自定义表单
此自定义表单的目标是提供这样一个表单:用户可以在其中根据 env:dev 或 env:prod 标记选择操作系统和布置。然后,env:dev 选项允许用户选择小型或中型,没有大型这个选项。但是,如果用户选择 env:prod,则没有用于选择大型的选项,大小对用户不可见,但包含在请求中。
- 要在 Service Broker 中创建自定义表单,请选择 。
- 单击“开发模板”条目左侧的竖省略号,然后单击自定义表单。
- 自定义输入选项。
- 在画布中,单击画布中的字段,然后按照下表中指定的方式配置属性。
画布字段名称 外观 值 限制 操作系统 标签和类型
- 标签 = 操作系统
值选项
- 值选项 = 常量
- 值源 =
centos|CentOS,ubuntu|Ubuntu
此示例使用值选项将所有小写操作系统名称自定义为首选操作系统名称。
选择部署布置 值选项
- 值选项 = 常量
- 值源 =
env:dev|Development,env:prod|Production
部署大小 可见性
- 值源 = 条件值
- 如果“选择部署布置”为 env:dev,则设置值 = 是
默认值
- 值源 = 条件值
- 如果“选择部署布置”为 env:prod,则设置值 = 大型
值选项
- 值选项 = 常量
- 值源 =
small|Small,medium|Medium
请注意,值源不包括大型。不包括大型是因为,它仅适用于生产环境,且是必需值。大型值包含在部署请求中,而无需用户启动的操作。
- 要在目录中打开表单,请单击启用。
- 单击保存。
- 在画布中,单击画布中的字段,然后按照下表中指定的方式配置属性。
- 要通过提交至少一个小型开发请求和一个生产请求来确保正确结果,请在目录中测试表单。
使用以下示例验证结果。
- 通过提供名称(在此示例中为 Test small),然后选择“CentOS”、“开发”和“小型”选项,测试小型开发请求表单。
- 要验证小型开发部署,请选择 ,然后单击 Test small 部署。
- 在“拓扑”选项卡上,单击 Cloud_vSphere_Machine,然后在右侧窗格中找到“自定义属性”部分。
要检查的一些值包括 cpuCount = 2 和“特定实例”=“小型”。
- 通过输入名称(在此示例中为 Test large)测试生产请求表单,并选择“CentOS”和“生产”选项。
请注意,配置的表单既不显示大小也不要求用户选择大小。
- 要验证生产部署,请选择 ,然后单击 Test large 部署。
- 在“拓扑”选项卡上,单击 Cloud_vSphere_Machine,然后在右侧窗格中找到“自定义属性”部分。
要检查的一些值包括 cpuCount = 8 和“特定实例”=“大型”。
- 通过提供名称(在此示例中为 Test small),然后选择“CentOS”、“开发”和“小型”选项,测试小型开发请求表单。
步骤 5:控制目录中的云模板版本
在大多数情况下,您希望在 Service Broker 目录中仅提供最新的云模板。以下过程支持迭代式开发,即发布一个版本的模板并将其添加到目录,但现在改进了模板并希望将当前版本替换为较新版本。
在步骤 2 中,您对模板进行了版本控制并发布了模板,因此您熟悉该过程。在步骤 3 中,您将模板添加到了目录中。当您执行迭代式开发并使用最新版本更新目录时,该过程会将这两个步骤结合在一起。
您可以选择在目录中提供多个版本。
- 在 Cloud Assembly 中,对当前要在目录中提供的模板进行版本控制。
- 选择 ,然后在设计画布中打开模板。
- 单击版本历史记录。
- 找到要添加到目录中的版本,然后单击版本控制。
- 输入描述,选中发布复选框,然后单击创建。
此时,可以选择在目录中保留旧版本。如果需要多个版本,请忽略下一步“取消发布版本”。
- 要在目录中仅提供模板的一个版本,请查看版本历史记录列表,然后针对目录中不需要的每个版本单击取消发布。
- 要使用最新版本更新 Service Broker 目录并替换任何旧版本,必须收集新版本。
- 在 Service Broker 中,选择 。
- 单击本教程中使用的 Cloud Assembly DevProject 内容源。
- 单击验证。
应会看到一条指明找到项目的消息。
- 单击保存并导入。
- 验证目录是否显示所需的版本或没有版本。
- 在 Service Broker 中,单击目录。
- 找到目录项,然后单击请求。
- 在请求表单的顶部,单击版本控制,然后验证一个或多个版本。
以下屏幕截图显示 8。