在Vmware上调配Fedora CoreOS
本指南介绍如何在Vmware管理程序上配置新的Fedora CoreOS(FCOS)节点。
Fedora CoreOS支持VMware ESXi≥6.5、VMware Workstation≥16和VMware Fusion≥12。 修改OVF的元数据 可以在较旧的VMware产品上运行,但不能保证兼容性和可支持性。 |
先决条件
在配置FCOS计算机之前,您必须具有包含自定义设置的Ignition配置文件。如果您没有,请参见 生成Ignition文件 。
下载OVA
Fedora CoreOS被设计为自动更新,每个流有不同的时间表。 一旦选择了相关的流,您就可以下载最新的OVA:
STREAM="stable"
coreos-installer download -s "${STREAM}" -p vmware -f ova
或者,OVA图像可以从 下载页面 。
编码Ignition配置
对于 vmware
提供程序,Ignition要求在首次启动VM时出现两个“GuestInfo”字段:
-
guestinfo.ignition.config.data.encoding
:Ignition配置的编码。 -
guestinfo.ignition.config.data
:Ignition配置的内容,按上述格式编码。
为了获得最大的兼容性,建议使用 base64
编码并准备Ignition配置,如下所示:
CONFIG_ENCODING='base64'
CONFIG_ENCODED=$(cat example.ign | base64 -w0 -)
平原之外的另一种选择 base64
编码是 gzip+base64
如中所述 支持Ignition的平台 。这在通过以下方式提交Ignition配置时特别有用 govc
作为_inline_参数。在这种情况下,Linux上的编码配置限制为略低于128 KiB,MacOS上为256 KiB,Windows上为32 KiB(如果使用 cmd.exe
或PowerShell)。如果您的配置大于该限制,则可以在使用以下命令压缩后以内联方式提交 gzip
。
CONFIG_ENCODING='gzip+base64'
CONFIG_ENCODED=$(cat example.ign | gzip -9 | base64 -w0 -)
在工作站或Fusion上引导新的虚拟机
本节介绍如何使用Workstation和Fusion工具从命令行配置和运行VM。一些步骤也可能通过图形用户界面执行。
导入OVA
下载的OVA必须在本地导入到工作站或Fusion库中。同时,必须提供Ignition,才能将其应用于VM。
VM_NAME='fcos-node01'
FCOS_OVA='./ova-templates/fedora-coreos-31.20200210.3.0-vmware.x86_64.ova'
LIBRARY="$HOME/Virtual Machines.localized"
ovftool \
--powerOffTarget \
--name="${VM_NAME}" \
--allowExtraConfig \
--extraConfig:guestinfo.ignition.config.data.encoding="${CONFIG_ENCODING}" \
--extraConfig:guestinfo.ignition.config.data="${CONFIG_ENCODED}" \
"${FCOS_OVA}" "${LIBRARY}"
之后,您可以刷新工作站或Fusion用户界面中的虚拟机列表以及新的 fcos-node01
VM应显示为已准备好启动。它的硬件配置可以在这一点上进一步定制,然后通电。
在vSphere上启动新的虚拟机
本节介绍如何使用vSphere工具从命令行配置和运行VM。类似的步骤也可以通过图形用户界面执行。
导入OVA
下载的OVA必须首先导入到vSphere库中:
FCOS_OVA='./ova-templates/fedora-coreos-31.20200210.3.0-vmware.x86_64.ova'
LIBRARY='fcos-images'
TEMPLATE_NAME='fcos-31.20200210.3.0'
govc session.login -u 'user:password@host'
govc library.create "${LIBRARY}"
govc library.import -n "${TEMPLATE_NAME}" "${LIBRARY}" "${FCOS_OVA}"
设置新的虚拟机
现在,您可以从库中的模板和编码的Ignition配置开始部署新的VM:
VM_NAME='fcos-node01'
govc library.deploy "${LIBRARY}/${TEMPLATE_NAME}" "${VM_NAME}"
govc vm.change -vm "${VM_NAME}" -e "guestinfo.ignition.config.data.encoding=${CONFIG_ENCODING}"
govc vm.change -vm "${VM_NAME}" -e "guestinfo.ignition.config.data=${CONFIG_ENCODED}"
一种新的 fcos-node01
现在可以启动VM了。此时可以进一步定制其硬件配置,然后通电:
govc vm.info -e "${VM_NAME}"
govc vm.power -on "${VM_NAME}"
首次启动网络和Ignition
IGNING支持在配置中引用远程内容,并在配置时获取它。 因此,在第一次引导时,FCOS实例会尝试通过DHCP执行网络自动配置。
如果您的VMware设置使用静态网络配置,则可以使用您自己的自定义配置覆盖此自动DHCP设置。
自定义网络命令行 ip=
在第一次启动VM之前,可以通过如下所示的guestinfo属性配置参数。
资源调配流程遵循通常的步骤,外加一个 guestinfo.afterburn.initrd.network-kargs
进入。
如果您使用的置备方法不是 govc ,请确保已在虚拟机的高级配置参数(也称为 ExtraConfig )。某些管理工具可能会默认使用vApp属性,这在此方案中不起作用。
|
VM_NAME='fcos-node02'
IFACE='ens192'
IPCFG="ip=192.0.2.42::192.0.2.1:255.255.255.0:${VM_NAME}:${IFACE}:off"
govc library.deploy "${LIBRARY}/${TEMPLATE_NAME}" "${VM_NAME}"
govc vm.change -vm "${VM_NAME}" -e "guestinfo.ignition.config.data.encoding=${CONFIG_ENCODING}"
govc vm.change -vm "${VM_NAME}" -e "guestinfo.ignition.config.data=${CONFIG_ENCODED}"
govc vm.change -vm "${VM_NAME}" -e "guestinfo.afterburn.initrd.network-kargs=${IPCFG}"
govc vm.info -e "${VM_NAME}"
govc vm.power -on "${VM_NAME}"
的完整语法。 ip=
参数记录在中 德拉库特手册页 。
有关首次启动网络的更多信息,请参见 续烧文档 。
排除首次启动问题
您可能会遇到需要访问首次启动期间出现的系统日志的Ignition配置问题。要制作系统日志的副本,您可以在引导前将一个串行设备连接到VM。VSphere以及Workstation和Fusion允许这样做,并会将输出保存到您选择的文件中。
要连接串行设备,只需修改关闭的虚拟机的硬件设置并添加 Serial Port
。选择要创建的文件的目标和名称。然后打开该VM的电源。遇到错误时,请检查您最初指定的文件-它应该包含系统日志的副本。
还可以通过将串行设备添加到虚拟机 govc
如中所述 官方使用文档 :
VM_NAME='fcos-node01'
govc device.serial.add -vm "${VM_NAME}"
govc device.serial.connect -vm "${VM_NAME}" "[datastore] ${VM_NAME}/console.log"
修改OVF元数据
虽然我们提供了这些修改OVF元数据的说明,但我们不能 保证对OVF元数据的任何修改都将产生可用的 来宾VM。 |
Fedora CoreOS旨在运行在 普遍支持 发布VMware ESXi、 VMware Workstation和VMware Fusion。因此,Fedora CoreOS Vmware OVA图像指定了一个 虚拟硬件版本 这可能与旧的、不受支持的VMware产品不兼容。 但是,您可以修改图像的OVF元数据以指定较旧的 虚拟硬件版本。
VMware OVA只是一个包含文件的tarball disk.vmdk
和
coreos.ovf
。为了编辑FCOS用作来宾虚拟机的元数据,您
应该解压OVA构件,编辑OVF文件,然后创建一个新的OVA文件。
下面的示例命令将OVF硬件版本从预配置的
价值与硬件版本之比 13
。(注:OVF中的默认设置可能会更改。)
tar -xvf fedora-coreos-35.20220424.3.0-vmware.x86_64.ova
sed -iE 's/vmx-[0-9]*/vmx-13/' coreos.ovf
tar -H posix -cvf fedora-coreos-35.20220424.3.0-vmware-vmx-13.x86_64.ova coreos.ovf disk.vmdk