Inicializando Fedora CoreOS live via iPXE

Esse guia mostra como inicializar um sistema Fedora CoreOS (FCOS) transitório via iPXE. Por default, isso irá rodar FCOS em um modo sem estado, completamente sem RAM. Separadamente, FCOS também será instalado no disco.

Pré-requisito

Antes de instalar o FCOS, você deve ter um arquivo de configuração do Ignition e hospedá-lo em algum lugar (por exemplo, usando python3 -m http.server). Se você não tiver um, consulte Produzindo um arquivo de Ignition.

Inicializar a imagem PXE live requere pelo menos 2 GiB de RAM, com o argumento de kernel coreos.live.rootfs_url, e 3GiB de outras formas.

Imagens PXE

Antes de agosto de 2020, a imagem Fedora CoreOS PXE incluía dois componentes: uma imagem kernel e uma imagem initramfs. A partir de agosto, uma terceira imagem rootfs foi adicionada. A partir de 6 de outubro, a imagem `rootfs`é obrigatória e o sistema PXE ativo não inicializará sem ela.

Para inicializar com o artefato rootfs, faça uma das seguintes alterações em sua configuração PXE:

  • Especifique apenas o arquivo initramfs como initrd e passe uma URL HTTP(S) para rootfs usando o argumento de kernel coreos.live.rootfs_url=.

  • Especifique os arquivos initramfs e rootfs como initrds em sua configuração PXE. Isso pode ser feito através de múltiplas diretivas initrd, ou usando parâmetros initrd= adicionais como argumentos do kernel.

  • Concatene os arquivos initramfs e rootfs juntos e especifique o arquivo combinado como initrd.

Para mais informações sobre esta alteração, veja este relatório de problemas.

Configurando o script de inicialização

Uma máquina capaz de usar iPXE deve ser provida com um script de inicialização relevante para fazer o Download de artefatos do FCOS e carregá-los.

O exemplo abaixo mostra como carregar esses direto da infraestrutura do Fedora. Por razões de performance e confiança, é recomendado realizar o mirror destes para a infraestrutura local, e então editar a BASEURL como necessário.

#!ipxe

set STREAM stable
set VERSION 33.20210328.3.0
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 ignition.firstboot ignition.platform.id=metal ignition.config.url=${CONFIGURL} systemd.unified_cgroup_hierarchy=0
initrd --name main ${BASEURL}/fedora-coreos-${VERSION}-live-initramfs.x86_64.img

inicialização

Processo de atualização

Como o upgrade tradicional do FCOS requere um disco, sistemas live-PXE não são capazes de se autoatualizarem. Por essa razão, Zincati não está rodando aqui.

Ao invés disso, é recomendado que referências à imagens na configuração PXE sejam regularmente atualizadas. Uma vez que a infraestrutura e as configurações estão atualizadas, a instância live-PXE simplesmente precisa de ser reinicializada para começar a rodar a nova versão do FCOS.