For the complete documentation index, see llms.txt. This page is also available as Markdown.

VM 方案

如何在 VergeOS 中创建、配置和使用 VM 方案,以通过可自定义问题和 cloud-init 集成快速部署标准化虚拟机。

VM 配方提供了一种强大的方式,可根据标准配置快速部署特定于实例的虚拟机。本页面将引导您了解创建和使用 VM 配方的过程。

什么是 VM 配方?

VM 配方是用于启动全新独特虚拟机的可自定义模板。它们可以通过在 VM 实例化时创建的键值存储包含初始硬件规格、资源池分配以及自定义配置选项。例如,可以将某个配方配置为提示输入数据库用户名和密码,或者选择要安装的一组特定软件包。用户在创建新的 VM 实例时,可以直接在用户界面中确定选项。配方还可与 VergeOS API 结合使用,以创建自定义用户界面,并通过与现有系统(例如服务门户)集成进一步简化流程。

行业标准集成 VergeOS 支持 Cloud-Init (Linux)以及 Cloudbase-Init (Windows)来在首次启动时自定义 VM。这可以包括设置用户、安装软件包或运行脚本等任务。配方可通过提供用于收集输入的用户界面并动态创建相关应答文件,帮助您快速部署 cloud-init/Cloudbase-init 实现。更多信息请参见 高级用法 下方。

使用 VM 配方的好处

  • 快速部署新的虚拟机

  • VM 配置的一致性

  • 减少手动设置时间

  • 可根据特定应用需求进行自定义

包含的 VM 配方

VergeOS 系统会自动包含 服务提供商(Marketplace)仓库 其中包含可直接用于创建多种新虚拟机的 VM 配方。您可以通过导航至以下位置查看这些可用 VM 配方列表: 仓库 >(双击)MarketPlace 仓库 > VM Recipes.

marketplaceVMlisting

您可以双击某个单独的 VM 配方来查看其配置。

included-recipe-config

创建新的 VM 配方

基础配置

  1. 创建一个 VM 作为 基础模板 用于该配方。该 VM 应经过通用化处理,并适合复制/自定义过程。

  2. 从顶部菜单中,导航到 虚拟机 > + 新建 VM 配方.

配方存储在 目录中。如果您尚未创建本地目录,系统将提示您先创建一个新的目录。

  1. 配方字段

    • 名称: 使用具有描述性的名称,能够充分标识该配方,并帮助用户找到合适的配方。

    • 说明: (可选)您可以在此处存储有关此配方的任何附加信息。这是提供基本文档、说明预期用途和一般指导的好地方。

    • 图标: (可选)一个 Font-Awesome 图标可以与该配方关联。图标可帮助用户轻松识别不同的配方/配方类型。

    • 目录: 选择一个用于存储该配方的目录。目录有助于整理配方。

    • 虚拟机: 选择一个模板 VM。

    • 版本: 分配一个版本号。每次修改该配方时,此字段将自动递增,以帮助跟踪更改。

    版本编号

    版本号 1.0.0 会递增为 1.0.0-1,然后是 1.0.0-2,依此类推。此外,您还可以手动编辑版本号以反映更大的版本变更,例如在进行重大配方修改后将版本更改为 2.0.0。

    • 对问题名称使用资产: 启用后,驱动器和 NIC 问题名称将基于分配的资产编号,而不是序号。

    • 版本依赖项: (不适用于仅在本地系统及其自身租户中使用的配方)。当配方正常工作需要某些 VergeOS 功能时,可以指定依赖项(以防止远程系统使用其无法支持的配方)。

  2. 点击 提交 以保存基础配置。VM 配方仪表板将显示您可以配置各个部分和问题的位置。

问题

配方问题用于确定键值。创建配方时,会自动包含一些问题。其中部分问题默认被禁用,如果您希望使用它们,需要先启用。

  1. (可选)启用默认禁用的问题: 点击“问题”(左侧菜单或仪表板卡片),选择问题,然后在左侧菜单中点击“启用”。

  2. 要配置其他问题,请点击 问题 在左侧菜单中,然后点击 新建.

问题字段:

  • 部分: 每个问题都属于一个部分。部分可让您在输入表单上对问题进行分组。一些部分会自动创建。您也可以选择为您的问题创建新部分。

  • 名称: 作为可在脚本中引用的变量名;请使用具有描述性的名称,以便于脚本维护和故障排除;仅限字母数字字符(无空格或特殊字符)

  • 类型: 决定如何收集数据:通过用户输入、与 VergeOS 数据库交互、下载云镜像等。

  • 顺序 ID: 用于确定问题的显示顺序(在所选部分内)

  • 显示: 在 VergeOS 界面中显示给用户,用于回答配方问题的文本

  • 默认值: (可选)定义该问题的初始答案值

  • 正则验证: (可选)用于验证输入的正则表达式字符串(标准 Regex 语法)

  • 占位文本: (可选)以灰色显示的文本,用于向用户提供预期输入示例

  • 工具提示文本: (可选)当鼠标悬停在该字段上时,以弹出窗口显示的用户帮助文本

  • 注释文本: (可选)直接显示在输入字段下方的用户帮助文本,用于提供额外指导。

  • 变更时: 允许在更改此字段时隐藏/显示其他问题。(创建新问题时,此字段中会显示示例代码。)

    根据所选类型,可能还会提供其他配置选项。

模拟 VM 配方

您可以模拟 VM 配方来进行测试。模拟该配方将允许您查看用户输入表单、测试字段验证并创建示例应答文件,以验证您的配置。您只能模拟已发布到本地目录的 VM 配方。如有需要,您可以引用 Marketplace 配方并将其克隆到本地目录。

  • 若只想查看用户输入表单:在 VM 配方仪表板中,点击 模拟配方 在左侧菜单中。

  • 在模拟输入表单中,您可以通过点击表单底部的 模拟 按钮来测试字段验证并生成测试应答文件。随后会显示变量/值对列表以及模拟结果文件的打印输出。

  • 若要根据输入继续创建 VM,请点击“创建”按钮。

修改 VM 配方

对配方进行任何更改后,都需要重新发布,才能使这些更改可用。配方仪表板顶部会显示一条消息,提示必须重新发布更改才会生效。您可以使用 重新发布 此消息中的链接,或在左侧菜单中点击“重新发布”。

使用 VM 配方

在创建新的虚拟机时可以使用 VM 配方。所有可访问的目录(本地和远程)都会列在新 VM 界面的左侧;选择某个目录即可查看可用的单个配方。

配方实例

实例是指与 VM 配方关联的虚拟机。当某个虚拟机使用配方创建后,在其被删除或从配方中分离之前,它都被视为该配方的一个实例。

点击 实例 在 VM 配方仪表板的左侧菜单中可快速访问关联 VM 列表。当存在任何关联的 VM 实例时,无法删除 VM 配方。

高级用法

Cloud-Init 和 Cloudbase-init 集成

与 VM 模板一起使用:

  • 将 Cloud-init 数据源字段 = Config Drive v2.

  • 在 VM 模板中安装 Cloud-init 及相关脚本。

使用在线 OS 镜像: VergeOS 配方允许利用许多预装的 cloud-init 操作系统镜像,这些镜像可由大多数 Linux 和 FreeBSD 操作系统下载。要使用特定的已下载镜像,您可以创建如下配置的配方问题:

  • 名称="OS_DL_URL"

  • 类型=隐藏

  • 默认值:下载 URL(例如 https://cloud-images.example.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64-disk-kvm.img, http://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud.latest.x86_64.qcow2)

若要通过网络流式传输云镜像,您可以创建如下配置的配方问题:

  • 名称="OS_URL"

  • 类型=隐藏

  • 默认值:镜像 URL(例如 https://cloud/debian.org/images/cloud/bullseye/latest/debian-11-generic-amd64.qcow2)

参考示例: Marketplace 配方 为在配方中使用 cloud-init/cloudbase-init OS 镜像提供了很好的示例。

与 Cloud-init/Cloudbase-init 的集成可提供许多解决方案,并有多种潜在方法可供选择。如果您需要更多帮助,请联系 VergeOS 支持。

最后更新于

这有帮助吗?