使用 cloud-init 进行初始化 Fedora Cloud oVirt 上的虚拟机

本文介绍如何在 oVirt 管理平台上使用 cloud-init。 使用 cloud-init,您可以启动一个 Fedora Cloud 基础镜像模板,为网络和登录配置,无需登录虚拟机。

什么是oVirt?

oVirt 是一个免费的开源虚拟化管理平台,具有简单的 Web 界面。

什么是云初始化?

cloud-init 工具提供虚拟机 (VM) 的早期初始化和设置。 这通常发生在 VM 上的来宾操作系统启动期间。

我可以在 oVirt 中使用 cloud-init 做什么?

oVirt 允许您配置:

  • 初始用户帐户,包括密码和您的 SSH 密钥
  • 主机名
  • 虚拟机的时区
  • VM 上的 DNS 设置和网络

此外,它还允许您传递自定义 cloud-init 脚本。 该脚本使您可以更好地控制 VM。

虚拟机要求

要将 cloud-init 与虚拟机一起使用,必须在相关 VM 上安装 cloud-init 包。 cloud-init 的软件包在大多数发行版的软件包存储库中都可用,包括 Fedora.

您正在启动的 VM 应该预先安装了 cloud-init 包并配置为在启动时自动启动。

oVirt 中的 cloud-init 配置

配置 cloud-init 参数有两种方式:

  • 永恒的:保存配置,这对于关闭后丢弃所有更改的无状态 VM 很有用。
  • 暂时的:通过仅用于 VM 当前运行的运行一次对话框传递配置。

如何在 oVirt 中为 VM 永久设置 cloud-init 参数

  1. 登录到您的 oVirt 实例的用户门户或管理门户。
  2. 如果是用户门户,请选择左上角的扩展链接以获取您的 VM 列表。 (管理门户不需要此步骤。)
  3. 在列表中选择要配置的 VM。
  4. 选择现在在列表标题中处于活动状态的编辑链接。
  5. 编辑虚拟机对话框随即打开。 现在选择对话框左侧的 Initial Run 部分。 这通常是从顶部算起的第三个条目。 (笔记: 如果 Initial Run 部分不存在,请选择对话框左下方区域的 Show Advanced Options 以显示隐藏的选项。)标记复选框 Use Cloud-初始化/系统准备。 这将显示可用的选项。

现在根据需要配置选项并选择确定。 oVirt 下次启动时将配置应用到 VM。

如何通过 Run-Once 在 oVirt 中临时设置虚拟机的 cloud-init 参数

  1. 登录到您的 oVirt 实例的用户或管理门户。
  2. 如果使用用户门户,请选择左上角的扩展链接以获取您的 VM 列表。 (管理门户不需要此步骤。)
  3. 在列表中选择要配置的 VM。
  4. 选择列表标题中的 Run-Once 链接。 将出现“运行虚拟机”对话框。
  5. 现在选择 Initial Run 部分。
  6. 标记复选框使用 Cloud-在里面。 这将显示可用的选项。

现在根据需要配置选项并选择确定。 虚拟机从配置和应用这些选项开始。 输入的信息不是持久的。 它在关闭 VM 时被丢弃。 但是,只要 VM 不是无状态的,您在 VM 中应用的更改就会持续存在。

动手做 Fedora Cloud 基本图像

从 oVirt 管理门户,可以从预定义的映像导入虚拟机磁盘。 oVirt 带有一个 一目了然存储库 带有许多 Linux 发行版映像。 几个版本的 CentOS 7、Ubuntu 和 Fedora 被包含在内。

导入图像

这 example 使用 Fedora 25 Cloud 基础图像。 在管理门户的 Storage 部分中,选择表中的 ovirt-image-repository 条目。 要导入的可用图像列表出现在下部窗格中。

oVirt 管理门户中的图像选择

右键单击该条目以设置导入。 您可以作为新磁盘或模板导入到所选的数据中心和存储域。 这 example 作为磁盘导入。

oVirt 中的导入图像对话框

设置虚拟机

导入磁盘映像后,切换到虚拟机部分并创建一个新 VM。 在对话框中选择 Linux 作为操作系统。 将其配置为针对服务器使用进行优化。 接下来,为虚拟机设置一个名称。 oVirt 中的虚拟机名称不能包含空格。

接下来将磁盘映像附加到实例映像部分中的虚拟机。 导入的磁盘映像应称为 GlanceDisk,后跟一个破折号以及一些数字和字母。 但是,如果您选择在导入对话框中重命名它,请在此处查找您分配的名称。

oVirt 中的新虚拟机对话框

oVirt 中的新虚拟机对话框

现在,配置网络接口。 对于这种情况,添加两个适配器并将它们设置为适当的网络。 正确的网络取决于您的配置。 默认情况下,该网络称为 ovirtmgmt/ovirtmgmt。 在您的环境中或更复杂的场景中,这可能会有所不同。

根据需要在对话框的系统部分更改内存量和 CPU 数量。

云初始化入门

现在,您可以从对话框的 Initial Run 部分配置虚拟机详细信息。 检查 Cloud-Init/Sysprep 复选框使选项可见。

在 oVirt 'New Virtual Machine' 对话框中设置 cloud-init

在 oVirt ‘New Virtual Machine’ 对话框中设置 cloud-init

根据需要设置主机名。 这 example 使用 f25.magazine。example.com。 接下来,通过选中配置时区复选框并选择适当的时区来设置时区。

设置身份验证

oVirt Cloud-初始化配置对话框允许用户创建新用户并设置他们的密码。 此外,它还允许您为 root 用户提供 SSH 密钥。 此密钥被添加到授权密钥中,因此您可以建立与 VM 的无密码 SSH 连接。

VM 编辑对话框 - Cloud 初始化选项 - 添加身份验证选项

VM 编辑对话框 – Cloud 初始化选项 – 添加身份验证选项

网络选项

oVirt 提供了一种通过 cloud-init 配置网络的简单方法。 要使用该功能,请选中网络复选框。 您可以在此处设置 DNS 服务器、DNS 搜索域和网络接口配置。

要添加接口配置,请单击添加新按钮。 为网络命名,该名称不得包含空格或特殊字符。

您可以选择动态网络配置,这通常是默认设置。 最好选中 Start on Boot 复选框,以便在 VM 启动时处理网络配置。

如果您没有可用的 DHCP,或者您更喜欢固定 IP,请从 Boot Protocol 下拉菜单中选择 Static 选项。 然后为您的接口编辑 IP 地址、网络掩码和网关。

虚拟机对话框 - Cloud 初始化选项 - 网络配置

虚拟机对话框 – Cloud 初始化选项 – 网络配置

整理起来

配置完所有信息后,选择确定并启动 VM。 如果 VM 配置正确并且 cloud-init 包启用在启动时启动,它将找到配置并应用所有设置。

在持久信息的情况下,oVirt 将 VM 标记为在 VM 首次运行后初始化。 一旦它被标记为已初始化,cloud-init 信息就不再传递给 VM。 如果 VM 是无状态的,则情况并非如此。 无状态 VM 会丢弃运行后应用的所有更改,因此不会将 VM 标记为已初始化。

Save

Save