在裸机上安装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 customize
和 coreos-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.ign
和 target-hp.ign
例如,并将其指定为 --dest-ignition
与适当的 --dest-device
生成 fedora-coreos-install-dell.iso
和 fedora-coreos-install-hp.iso
。
或者,不生成每台计算机的ISO,您可以使用 --pre-install
运行特权容器的脚本,该容器检查目标系统并编写适当的 安装程序配置 至 /etc/coreos/installer.d
。