Установка CoreOS на физическое оборудование

Это руководство содержит инструкции по установке Fedora CoreOS на физическое оборудование. Доступны три варианта:

  • Установка с live ISO

  • Установка из PXE

  • Установка из контейнера

Предварительное требование

Перед установкой FCOS у вас должен быть файл конфигурации Ignition, размещённый где-либо (например, с помощью python3 -m http.server). Если его у вас нет, см. Создание файла Ignition.

Если у вас есть серверы с разными типами и/или количеством жёстких дисков, необходимо создать отдельную настроенную конфигурацию Ignition для каждой машины (или класса машин). Хорошей моделью является вынесение общих частей конфигурации в отдельную конфигурацию Ignition, которую можно объединять (через HTTP или встроенно) с индивидуальной конфигурацией каждой машины.

Установка с live ISO

Чтобы установить FCOS на физическое оборудование с помощью live ISO в интерактивном режиме, выполните следующие шаги:

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.

Вы можете загрузить live ISO в режиме legacy BIOS или UEFI, независимо от того, какой режим будет использовать ОС после установки.
  • Запишите ISO на диск. В Linux и macOS можно использовать dd. В Windows можно использовать Rufus в режиме «DD Image».

  • Загрузите его на целевой системе. ISO способен запустить полностью работающую систему FCOS исключительно из памяти (то есть без использования дискового хранилища). После загрузки вам будет доступна командная строка bash.

  • Теперь вы можете запустить coreos-installer:

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

После завершения установки вы можете перезагрузить систему с помощью sudo reboot. После перезагрузки начинается процесс первой загрузки. Именно в этот момент Ignition считывает файл конфигурации и выполняет настройку системы в соответствии с указаниями.

О более сложных вариантах установки с ISO, включая автоматизацию, см. ниже. Подробнее о live ISO-образе см. в справочнике по live-образу.

Ознакомьтесь с coreos-installer install --help, чтобы узнать больше о параметрах установки Fedora CoreOS.

Установка из сети

Для загрузки live PXE-образа требуется не менее 2 ГиБ оперативной памяти при использовании аргумента ядра coreos.live.rootfs_url и 4 ГиБ в противном случае. Установку можно выполнить как в режиме legacy boot (BIOS), так и в режиме UEFI, независимо от того, какой режим будет использовать ОС после установки.

Установка из PXE

Чтобы установить из PXE, выполните следующие шаги:

  • Загрузите ядро FCOS PXE, initramfs и образ 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-44.20260913.3.2-live-kernel-x86_64
    APPEND initrd=fedora-coreos-44.20260913.3.2-live-initramfs.x86_64.img,fedora-coreos-44.20260913.3.2-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-installer, но учтите, что coreos-installer pxe customize (см. ниже) более гибок. Подробнее о live PXE-образе см. в справочнике по live-образу.

Установка из iPXE

Машине, поддерживающей iPXE, необходимо предоставить соответствующий загрузочный скрипт для получения и загрузки артефактов FCOS.

В приведённом ниже примере показано, как загрузить их напрямую из инфраструктуры Fedora. По соображениям производительности и надёжности рекомендуется зеркалировать их на локальной инфраструктуре, а затем при необходимости скорректировать BASEURL.

#!ipxe

set STREAM stable
set VERSION 44.20260913.3.2
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-installer, но учтите, что coreos-installer pxe customize (см. ниже) более гибок. Подробнее о live PXE-образе см. в справочнике по live-образу.

Установка из контейнера

Вы можете использовать контейнер coreos-installer из существующей системы для установки на подключённое блочное устройство. Например (при необходимости замените podman на docker):

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 metal и установит его на /dev/vdb. Затем он внедрит файл Ignition config.ign из текущего каталога в образ. Используйте --help, чтобы просмотреть все доступные параметры.

Загрузка и зеркалирование образа metal

Иногда необходимо заранее загрузить образ metal и затем передать его локально в coreos-installer для установки. Вы можете загрузить образ metal напрямую со страницы загрузки FCOS или использовать coreos-installer download.

При установке через live ISO или PXE нет необходимости загружать образ metal. Он уже является частью этих сред.

Существует два образа metal: один для дисков с секторами 512 байт (обозначен как «Raw» на странице загрузки), и один для дисков с нативными секторами 4 КБ (обозначен как «Raw (4K Native)»). Если вы не знаете наверняка, что используете нативный диск 4 КБ, используйте образ 512 байт, который является наиболее распространённым. См. эту страницу для получения дополнительной информации.

Чтобы загрузить нативный образ metal 4kn с помощью coreos-installer download, используйте параметр --format 4k.raw.xz.

Образ metal использует гибридную схему разделов, которая поддерживает загрузку как в BIOS, так и в UEFI.

Когда вы будете окончательно готовы установить FCOS, вы можете указать на загруженный образ с помощью coreos-installer install --image-url <LOCAL_MIRROR> или coreos-installer --image-file <PATH>.

Настройка установки

Команды coreos-installer iso customize и coreos-installer pxe customize можно использовать для создания настроенных образов ISO и PXE с конфигурацией, специфичной для конкретного объекта, включая возможность выполнения автоматических установок Fedora CoreOS.

При загрузке образа, созданного с помощью coreos-installer pxe customize, командная строка ядра PXE или iPXE должна включать аргументы ignition.firstboot ignition.platform.id=metal. Если вы работаете в виртуальной машине, замените metal на идентификатор платформы для вашей платформы, например qemu или vmware.

Например:

# Create customized.iso which:
# - Automatically installs to /dev/sda
# - Provisions the installed system with config.ign
# - Configures the installed GRUB and kernel to use a primary graphical
#   and secondary serial console
# - 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 \
    --dest-console ttyS0,115200n8 \
    --dest-console tty0 \
    --network-keyfile static-ip.nmconnection \
    --ignition-ca ca.pem \
    --post-install post.sh \
    -o custom.iso fedora-coreos-44.20260913.3.2-live.x86_64.iso
# Same, but create a customized PXE initramfs image
coreos-installer pxe customize \
    --dest-device /dev/sda \
    --dest-ignition config.ign \
    --dest-console ttyS0,115200n8 \
    --dest-console tty0 \
    --network-keyfile static-ip.nmconnection \
    --ignition-ca ca.pem \
    --post-install post.sh \
    -o custom-initramfs.img fedora-coreos-44.20260913.3.2-live-initramfs.x86_64.img

Подробности о доступных настройках см. в документации coreos-installer.

Установка с 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.

Установка на iSCSI

Чтобы установить CoreOS на загрузочное устройство iSCSI, выполните те же шаги, что описаны выше, для получения live-среды и добавьте аргументы ядра, связанные с iSCSI.

  • Смонтируйте цель iSCSI из live-среды:

sudo iscsiadm -m discovery -t st -p 10.0.0.1
sudo iscsiadm -m node -T iqn.2023-10.coreos.target.vm:coreos -l
  • Добавьте необходимые аргументы ядра при запуске coreos-installer:

Установка на цель iSCSI с помощью iBFT

На полностью бездисковой машине значения цели и инициатора iSCSI можно передать через iBFT. Их можно указать, например, в загрузочном скрипте iPXE:

#!ipxe
set initiator-iqn iqn.2023-11.coreos.diskless:testsetup
sanboot iscsi:10.0.0.1::::iqn.2023-10.coreos.target.vm:coreos
sudo coreos-installer install \
    /dev/disk/by-path/ip-10.0.0.1\:3260-iscsi-iqn.2023-10.coreos.target.vm\:coreos-lun-0 \
    --append-karg rd.iscsi.firmware=1 --append-karg ip=ibft \
    --console ttyS0 \
    --ignition-url https://example.com/example.ign
Установка на цель iSCSI с ручной настройкой
sudo coreos-installer install \
    /dev/disk/by-path/ip-10.0.0.1\:3260-iscsi-iqn.2023-10.coreos.target.vm\:coreos-lun-0 \
    --append-karg rd.iscsi.initiator=iqn.2024-02.com.yourorg.name:lun0 \
    --append-karg netroot=iscsi:iqn.2023-10.coreos.target.vm:coreos \
    --console ttyS0 \
    --ignition-url https://example.com/example.ign

Всё это также можно настроить с помощью coreos-installer iso customize или coreos-installer pxe customize. (См. раздел «Настройка установки» выше).

Например, с использованием iBFT:

# Create customized.iso which:
# - Automatically mounts iSCSI target using mount-iscsi.sh
# - Provisions the installed system with config.ign
# - Configures the installed system to use iBFT
coreos-installer iso customize \
    --pre-install mount-iscsi.sh \
    --dest-device /dev/disk/by-path/ip-10.0.0.1\:3260-iscsi-iqn.2023-10.coreos.target.vm\:coreos-lun-0 \
    --dest-ignition config.ign \
    --dest-karg-append rd.iscsi.firmware=1 \
    --dest-karg-append ip=ibft \
    -o custom.iso fedora-coreos-44.20260913.3.2-live.x86_64.iso

Флаг --pre-install используется для запуска скрипта с командами iscsiadm, --dest-device указывает на смонтированный диск, а затем --dest-karg-append добавляет необходимые аргументы ядра.

Переустановка Fedora CoreOS

Вы можете использовать любой из описанных выше методов для переустановки Fedora CoreOS на той же машине через live-среду.

Сохранение данных

Установщик не выполняет полную очистку целевого диска. Благодаря семантике повторного использования файловой системы Ignition, если вы примените конфигурацию с точно такими же настройками разделов и файловой системы, как при первой установке, все ранее сохранённые данные в дополнительных разделах останутся доступными. Это может быть полезно для сохранения, например, /var/lib/containers или /var/home между переустановками. Однако есть некоторые ограничения. См. раздел Использование постоянного состояния для получения дополнительной информации. Вам также следует убедиться, что корневая файловая система имеет фиксированный размер не менее 8 ГиБ, как описано в Настройка хранилища, чтобы разделы с данными не были случайно перезаписаны.

Целевой диск

Fedora CoreOS требует, чтобы существовала только одна файловая система с меткой boot. Если при первой загрузке будет обнаружено несколько таких файловых систем, настройка завершится ошибкой в качестве меры защиты. Если вы переустанавливаете Fedora CoreOS на другой диск, отличный от предыдущей установки, обязательно очистите предыдущий диск с помощью, например, wipefs. Например, если вы переустанавливаете на /dev/sdb, но /dev/sda всё ещё содержит предыдущую установку FCOS, используйте wipefs -a /dev/sda в среде установки.