Aprovisionando Fedora CoreOS en QEMU

Esta guía muestra como proporcionar instancias nuevas de Fedota CoreOS (FCOS) en un supervisor QEMU desnudo.

Pre-requisitos

Antes de aprovisionar una máquina FCOS, usted debe tener un fichero de configuración Ignition que contenga sus personalizaciones. Si no tiene uno vea Produciendo un Fichero Ignition.

Fedora CoreOS tiene un usuario core predeterminado que puede ser usado para explorar el SO. Si usted desea utilizarlo finalice su configuración proporcionando una clave SSH.

Además necesita tener acceso a una máquina host con soporte KVM. Los ejemplos a continuación utilizan la herramienta de línea de instrucción qemu-kvm, la cual debe estar instalada separadamente de antemano.

Si se ejecuta con SELinux habilitado, asegúrese que su imagen del SO y el archivo Ignition están etiquetados como svirt_home_t, por ejemplo colocándolos debajo de ~/.local/share/libvirt/images/.

Arrancar una MV nueva en QEMU

Esta sección muestra como arrancar una MV nueva en QEMU. Basándose en la plataforma, el archivo Ignition se pasa a la MV, la cual establece la clave opt/com.coreos/config en el dispositivo de la configuración del firmware QEMU.

Puede utilizar -snapshot para relizar almacén temporal asignando qemu-kvm para la MV, o qemu-img create para crear primero una capa de qcow2.

Obtener la imagen QCOW2

Obtenga la última imagen adecuada para su flujo objetivo (o descárguela y verifíquela desde la red).

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

Configurar una MV nueva

Lanza la MV nueva utilizando qemu-kvm.

En el modo de instantánea, todos los cambios realizados en tiempo real tras el arranque se descartan al apagar el equipo. Si necesita conservar los cambios, se recomienda configurar primero un disco persistente dedicado.

Lanzar FCOS con QEMU (almacenado temporalmente)
IGNITION_CONFIG="/ruta/al/ejemplo.ign"
IMAGE="/ruta/a/image.qcow2"
# para x86/aarch64:
IGNITION_DEVICE_ARG="-fw_cfg name=opt/com.coreos/config,file=${IGNITION_CONFIG}"

# para 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
Lanzar FCOS con QEMU (almacén 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

Explorar el SO

Con red en modo de usuario QEMU, la dirección de IP asignada no es alcanzable desde el host.

Por ejemplo, arriba utilice hostfwd para re-enviar selectivamente el puerto SSH en la máquina invitada al host local (puerto 2.222).

Si ha configurado una clave SSH para el usuario core predeterminado, puede hacer SSH en la MV a través del puerto de re-envío:

ssh -p 2222 core@localhost