在裸机上安装CoreOS

本指南提供了将Fedora CoreOS安装到裸机的说明。有三个选项可用:

  • 从实时ISO安装

  • 从PXE安装

  • 从容器安装

必备条件

在安装FCOS之前,您必须有一个Ignition配置文件并将其托管在某个地方(例如,使用 python3 -m http.server )。如果您没有,请参见 生成Ignition文件

如果您的服务器具有不同类型和/或数量的硬盘驱动器,则必须为每台计算机(或计算机类别)创建单独的自定义Ignition配置。一个好的模型是将配置的公共部分分解到单独的Ignition配置中,该配置可以合并到(通过HTTP或内联)每台计算机的自定义配置中。

从实时ISO安装

要使用实时ISO以交互方式将FCOS安装到裸机上,请执行以下步骤:

podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
    quay.io/coreos/coreos-installer:release download -s stable -p metal -f iso

请注意,这只是在使用 coreos-installer 作为下载ISO的工具。

您可以在传统的BIOS或UEFI模式下引导实时ISO,无论安装后操作系统将使用哪种模式。
  • 将ISO刻录到磁盘。在Linux和MacOS上,您可以使用 dd 。在Windows上,您可以使用 鲁弗斯 在“DD镜像”模式下。

  • 在目标系统上引导它。ISO能够完全从内存(即不使用任何磁盘存储)启动全功能的FCOS系统。启动后,您将可以访问bash命令提示符。

  • 您现在可以运行 coreos-installer

sudo coreos-installer install /dev/sda \
    --ignition-url https://example.com/example.ign

安装完成后,您只需 sudo reboot 。重新启动后,第一个启动过程开始。此时,Ignition会接收配置文件并按照指定的方式配置系统。

有关更高级的ISO安装,包括自动化,请参见下文。有关实时ISO映像的更多信息,请参阅 实时图像参考

检查 coreos-installer install --help 有关如何安装Fedora CoreOS的更多选项。

从网络安装

引导实时PXE映像需要至少2 GiB的RAM coreos.live.rootfs_url 内核参数,否则为4 GiB。您可以在传统引导(BIOS)模式或UEFI模式下安装,无论安装后操作系统将使用哪种模式。

从PXE安装

要从PXE安装,请执行以下步骤:

  • 下载FCOS PXE内核、initramf和rootfs镜像:

podman run --security-opt label=disable --pull=always --rm -v .:/data -w /data \
    quay.io/coreos/coreos-installer:release download -f pxe
  • 请遵循下面的例子 pxelinux.cfg 要使用PXELINUX引导安装程序映像:

DEFAULT pxeboot
TIMEOUT 20
PROMPT 0
LABEL pxeboot
    KERNEL fedora-coreos-35.20220424.3.0-live-kernel-x86_64
    APPEND initrd=fedora-coreos-35.20220424.3.0-live-initramfs.x86_64.img,fedora-coreos-35.20220424.3.0-live-rootfs.x86_64.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://192.168.1.101:8000/config.ign
IPAPPEND 2

有关如何使用此信息的更多详细信息,请参阅 博客文章 用于通过本地虚拟机测试PXE安装和 libvirt 。有关其他受支持的内核命令行选项,请参阅 CoreOS-安装程序文档 ,但请注意 coreos-installer pxe customize (见下文)更加灵活。有关实时PXE映像的更多信息,请参阅 实时图像参考

从iPXE安装

支持iPXE的机器需要提供相关的Boot脚本来获取和加载FCOS构件。

下面的例子展示了如何直接从Fedora基础设施加载这些文件。出于性能和可靠性的原因,建议将它们镜像到本地基础结构上,然后调整 BASEURL 视需要而定。

#!ipxe

set STREAM stable
set VERSION 35.20220424.3.0
set INSTALLDEV /dev/sda
set CONFIGURL https://example.com/config.ign

set BASEURL https://builds.coreos.fedoraproject.org/prod/streams/${STREAM}/builds/${VERSION}/x86_64

kernel ${BASEURL}/fedora-coreos-${VERSION}-live-kernel-x86_64 initrd=main coreos.live.rootfs_url=${BASEURL}/fedora-coreos-${VERSION}-live-rootfs.x86_64.img coreos.inst.install_dev=${INSTALLDEV} coreos.inst.ignition_url=${CONFIGURL}
initrd --name main ${BASEURL}/fedora-coreos-${VERSION}-live-initramfs.x86_64.img

boot

有关其他受支持的内核命令行选项,请参阅 CoreOS-安装程序文档 ,但请注意 coreos-installer pxe customize (见下文)更加灵活。有关实时PXE映像的更多信息,请参阅 实时图像参考

从容器安装

sudo podman run --pull=always --privileged --rm \
    -v /dev:/dev -v /run/udev:/run/udev -v .:/data -w /data \
    quay.io/coreos/coreos-installer:release \
    install /dev/vdb -i config.ign

在本例中, coreos-installer 将下载最新稳定的FCOS金属镜像并将其安装到 /dev/vdb 。然后它将注入Ignition文件 config.ign 将当前目录中的内容转换为图像。使用 --help 以查看所有可用选项。

下载并镜像金属图像

有时,有必要提前下载金属图像,然后将其传递到本地 coreos-installer 用于安装。您可以直接从 FCOS下载页面 ,或者您可以使用 coreos-installer download

通过实时ISO或PXE安装时,无需下载金属映像。它已经是这些环境的一部分。

有两个金属镜像:一个用于512b扇区磁盘(在下载页面上标记为“Raw”),另一个用于4k扇区本机磁盘(标记为“Raw(4K Native)”)。除非您知道目标是4k本机磁盘,否则请使用最常见的512b磁盘。看见 本页 以获取更多信息。

使用以下命令下载4kn原生金属映像 coreos-installer download ,请使用 --format 4k.raw.xz 换一下。

金属映像使用支持BIOS和UEFI引导的混合分区布局。

当您最终准备好安装FCOS时,您可以使用以下命令将其指向下载的映像 coreos-installer install --image-url <LOCAL_MIRROR>coreos-install --image-file <PATH>

自定义安装

这个 coreos-installer iso customizecoreos-installer pxe customize 命令可用于创建具有站点特定配置的定制ISO和pxe映像,包括执行Fedora CoreOS的无人值守安装的能力。

例如:

# Create customized.iso which:
# - Automatically installs to /dev/sda
# - Provisions the installed system with config.ign
# - Uses network configuration from static-ip.nmconnection
# - Trusts HTTPS certificates signed by ca.pem
# - Runs post.sh after installing
coreos-installer iso customize \
    --dest-device /dev/sda \
    --dest-ignition config.ign \
    --network-keyfile static-ip.nmconnection \
    --ignition-ca ca.pem \
    --post-install post.sh \
    -o custom.iso fedora-coreos-35.20220424.3.0-live.x86_64.iso
# Same, but create a customized PXE initramfs image
coreos-installer pxe customize \
    --dest-device /dev/sda \
    --dest-ignition config.ign \
    --network-keyfile static-ip.nmconnection \
    --ignition-ca ca.pem \
    --post-install post.sh \
    -o custom-initramfs.img fedora-coreos-35.20220424.3.0-live-initramfs.x86_64.img

有关可用自定义的详细信息,请参阅 CoreOS-安装程序文档

在不同硬件上安装ISO

通常裸机系统将具有多种硬件-某些系统可能具有NVMe驱动器 /dev/nvme* ,而其他人则 /dev/sd* 例如。几乎可以肯定的是,您必须为 /dev/sda 上面。

一种有用的方法是编写脚本,在每台计算机上生成 .iso 。如果您有一个硬件数据库(无论是Git中的文本文件还是关系数据库中的文本文件),那么它将在每台机器上生成一个 target-dell.igntarget-hp.ign 例如,并将其指定为 --dest-ignition 与适当的 --dest-device 生成 fedora-coreos-install-dell.isofedora-coreos-install-hp.iso

或者,不生成每台计算机的ISO,您可以使用 --pre-install 运行特权容器的脚本,该容器检查目标系统并编写适当的 安装程序配置/etc/coreos/installer.d