在VirtualBox上配置Fedora CoreOS

本指南展示了如何在VirtualBox管理程序上配置新的FedoraFCOS(FCOS)节点。

先决条件

在导入FCOS计算机之前,您必须具有包含自定义设置的Ignition配置文件。如果您没有,请参见 生成Ignition文件

下载OVA

Fedora CoreOS被设计为自动更新,每个流有不同的时间表。 一旦选择了相关的流,您就可以下载最新的OVA:

STREAM="stable"
coreos-installer download -s "${STREAM}" -p virtualbox -f ova

或者,OVA图像可以从 下载页面

在VirtualBox上引导新的虚拟机

您可以通过图形用户界面或 `VBoxManage`CLI 。本指南将使用CLI设置虚拟机。

导入OVA

要导入OVA,请使用 VBoxManage import

VM_NAME=my-instance
VBoxManage import --vsys 0 --vmname "$VM_NAME" fedora-coreos-35.20220424.3.0-virtualbox.x86_64.ova

设置Ignition配置

IGN_PATH="/path/to/config.ign"
VM_NAME=my-instance
VBoxManage guestproperty set "$VM_NAME" /Ignition/Config "$(cat $IGN_PATH)"

Ignition config size limitations

的长度。 /Ignition/Config 属性受主机操作系统上命令行的最大长度限制。操作系统特定的限制大约为:

= |操作系统 |限制

|Linux |128 KiB |MacOS |256 KiB |Windows外壳 |8 KiB =

如果您的Ignition配置大于此限制,则可以将该配置托管在HTTPS服务器上,并从Small_POINTER CONFIG_引用它,如下所示:

将您的Ignition配置上传到HTTPS服务器。

.

+

variant: fcos
version: 1.4.0
ignition:
  config:
    replace:
      source: https://example.com/config.ign

配置网络

设置 /Ignition/Config Guest属性设置为指针Ignition配置的内容,按照[_SETING_THE_NIGNAME_CONFIG]中的说明进行操作。

默认情况下,虚拟机将使用 NAT网络 。这将共享您主机的IP地址。或者,如果您希望VM使用与您的主机不同的IP地址,您可以将VM的网络适配器设置为桥接。

NAT networking

默认情况下,NAT网络不允许到VM的入站连接。要允许入站SSH连接,您可以将连接到主机上的端口2222转发到VM中的SSH服务器:

VM_NAME=my-instance
VBoxManage modifyvm "$VM_NAME" --natpf1 "guestssh,tcp,,2222,,22"

在引导VM之后,您可以从主机SSH到该VM:

ssh core@localhost -p 2222

Bridged networking

如果希望VM使用与您的主机不同的IP地址,可以将VM的网络适配器设置为桥接。

确定应桥接至该VM的网络适配器。要获取主机的默认网络适配器的名称,您可以运行:

+

ip route ls default | grep -Po '(?<= dev )(\S+)'
修改VM的网络适配器设置:

+

VM_NAME=my-instance
ADAPTER=adapter-name
VBoxManage modifyvm "$VM_NAME" --nic1 bridged --bridgeadapter1 "$ADAPTER"

启动虚拟机

现在,您可以启动已配置的VM:

VM_NAME=my-instance
VBoxManage startvm "$VM_NAME"

排除首次启动问题

您可能会遇到有关Ignition配置的问题,需要访问第一次启动期间出现的控制台日志消息。要获取控制台日志的副本,您可以附加 串口设备 在引导之前复制到VM。

要将串行设备连接到已断电的虚拟机,请执行以下操作:

VM_NAME=my-instance
VM_LOG=$(realpath .)/$VM_NAME.log
VBoxManage modifyvm "$VM_NAME" --uart1 0x3F8 4
VBoxManage modifyvm "$VM_NAME" --uartmode1 file "$VM_LOG"

当您打开VM时,控制台输出将记录到您指定的文件中。