Provisionando Fedora CoreOS no QEMU

Este guia mostra como provisionar novas instâncias do Fedora CoreOS (FCOS) em um hipervisor QEMU vazio.

Pré-requisitos

Antes de provisionar uma máquina 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.

Fedora CoreOS tem um usuário padrão core que pode ser usado para explorar o sistema operacional. Se você quiser usá-lo, finalize sua configuração fornecendo, por exemplo, uma chave SSH.

You also need to have access to a host machine with KVM support. The examples below use the qemu-kvm command-line tool, which must be separately installed beforehand.

Se estiver executando com o SELinux habilitado, certifique-se de que a imagem do sistema operacional e o arquivo Ignition estejam rotulados como svirt_home_t, por exemplo, colocando-os em`~/.local/share/libvirt/images/`.

Inicializando uma nova VM no QEMU

This section shows how to boot a new VM on QEMU. Based on the platform, The Ignition file is passed to the VM, which sets the opt/com.coreos/config key in the QEMU firmware configuration device.

Você pode usar -snapshot para fazer` qemu-kvm` alocar armazenamento temporário para a VM, ou qemu-img create para primeiro criar um qcow2 em camadas.

Obtendo a imagem QCOW2

Fetch the latest image suitable for your target stream (or download and verify it from the web).

STREAM="stable"
coreos-installer download -s "${STREAM}" -p qemu -f qcow2.xz --decompress -C ~/.local/share/libvirt/images/

Configurando uma nova VM

Inicie a nova VM usando qemu-kvm.

In snapshot mode, all changes that are performed live after boot are discarded once the machine is powered off. If you need to persist your changes, it is recommended to set up a dedicated persistent disk first.

Iniciando FCOS com QEMU (armazenamento temporário)
IGNITION_CONFIG="/path/to/example.ign"
IMAGE="/path/to/image.qcow2"
# for x86/aarch64:
IGNITION_DEVICE_ARG="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"

# for s390x/ppc64le:
IGNITION_DEVICE_ARG="-drive file=${IGNITION_CONFIG},if=none,format=raw,readonly=on,id=ignition -device virtio-blk,serial=ignition,drive=ignition"

qemu-kvm -m 2048 -cpu host -nographic -snapshot \
  -drive if=virtio,file=${IMAGE} ${IGNITION_DEVICE_ARG} \
  -nic user,model=virtio,hostfwd=tcp::2222-:22
Iniciando FCOS com QEMU (armazenamento persistente)
qemu-img create -f qcow2 -F qcow2 -b ${IMAGE} my-fcos-vm.qcow2
qemu-kvm -m 2048 -cpu host -nographic \
  -drive if=virtio,file=my-fcos-vm.qcow2 ${IGNITION_DEVICE_ARG} \
  -nic user,model=virtio,hostfwd=tcp::2222-:22

Explorando o sistema operacional

Com a rede do QEMU em modo de usuário, o endereço IP atribuído não pode ser acessado do host.

Os exemplos acima usam hostfwd para encaminhar seletivamente a porta SSH na máquina convidada para o host local (porta 2222).

Se você configurar um chave SSH para o usuário core padrão, poderá usar o SSH na VM por meio da porta encaminhada:

ssh -p 2222 core@localhost