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 Produzindo um arquivo de Ignition.

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.

Iniciando 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="/path/to/example.ign"
    IMAGE="/path/to/image.qcow2"
    VM_NAME="fcos-test-01"
    VCPUS="2"
    RAM_MB="2048"
    DISK_GB="10"
    
    virt-install --connect="qemu:///system" --name="${VM_NAME}" --vcpus="${VCPUS}" --memory="${RAM_MB}" \
            --os-variant="fedora32" --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=fedora32 e irá obter um erro. Nesse caso, você deve pegar uma variante mais antiga do Fedora (--os-variant=31 ou --os-variant=fedora30, por exemplo). Você pode encontrar as variantes que são suportadas pela sua versão corrente de virt-install com osinfo-query os | grep "fedora[2-3][0-9]".
Certifique-se de que seu usuário tenha acesso a /dev/kvm. Na maioria das distribuições modernas, isso significa adicionar você ao grupo kvm.