Provisionando Fedora CoreOS no libvirt

Este guia mostra como provisionar novas instâncias do Fedora CoreOS (FCOS) em uma plataforma libvirt, usando o hipervisor QEMU.

Pré-Requisitos

Antes de provisionar uma instância FCOS, você deve ter um arquivo de configuração do Ignition contendo suas personalizações. Se você não tiver um, consulte production-ign.adoc.

Você também precisa ter acesso a uma máquina host com libvirt. Os exemplos abaixo usam a ferramenta de linha de comando virt-install, que deve ser instalada separadamente antes.

Se estiver executando em um host com o SELinux habilitado (use o comando sestatus para verificar o status do SELinux), certifique-se de que a imagem do seu sistema operacional e o arquivo Ignition estão rotulados como`svirt_home_t`. Você pode fazer isso colocando-os em ~/.local/share/libvirt/images/ ou executando chcon -t svirt_home_t /caminho/para/arquivo.

Lançando uma instância de VM

  1. Obtenha a última imagem adequada para a plataforma qemu usando coreos-installer (ou baixe e verifique-a da web). Você pode usar coreos-installer como um contêiner, ou no Fedora, instale pelos repos.

    STREAM="stable"
    # como um binário instalado:
    coreos-installer download -s "${STREAM}" -p qemu -f qcow2.xz --decompress -C ~/.local/share/libvirt/images/
    # ou como um contêiner:
    podman run --pull=always --rm -v $HOME/.local/share/libvirt/images/:/data -w /data \
        quay.io/coreos/coreos-installer:release download -s "${STREAM}" -p qemu -f qcow2.xz --decompress
  2. Inicie uma nova máquina via virt-install, usando o arquivo Ignition com suas personalizações.

    IGNITION_CONFIG="/caminho/para/exemplo.ign"
    IMAGE="/path/to/image.qcow2"
    VM_NAME="fcos-test-01"
    VPUS="2"
    RAM_MB="2048"
    DISK_GB="10"
    
    virt-install --connect="qemu:///system" --name="${VM_NAME}" --vcpus="${VCPUS}" --memory="${RAM_MB}" \
            --os-variant="fedora-coreos-$STREAM" --import --graphics=none \
            --disk="size=${DISK_GB},backing_store=${IMAGE}" \
            --qemu-commandline="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"
virt-install requer que a imagem do sistema operacional e o arquivo Ignition sejam especificados como caminhos absolutos.
Dependendo da sua versão de virt-install, você talvez não será capaz de usar --os-variant=fedora-coreos-* e irá obter um erro. Nesse caso, você deve pegar uma variante mais antiga do Fedora (--os-variant=31, por exemplo). Você pode encontrar as variantes que são suportadas pela sua versão corrente de virt-install com osinfo-query os | grep '^\s*fedora'.
Certifique-se de que seu usuário tenha acesso a /dev/kvm. O padrão é permitir o acesso para todos, mas em algumas distribuições você pode precisar se adicionar ao grupo kvm.