Proporcionar Fedora CoreOS en Proxmox VE

Prerrequisitos

Antes de aprovisionar una máquina FCOS en Proxmox VE, debe tener un archivo de configuración de Ignition que contenga sus personalizaciones. Si no lo tiene, consulte Producción de un archivo de Ignition.

También necesita tener acceso a un clúster o servidor independiente de Entorno Virtual Proxmox (VE) con privilegios administrativos para crear máquinas virtuales y configuraciones de almacenamiento. Todos los comandos se ejecutarán como usuario root en el host del VE de Proxmox.

Configuración del Almacenamiento Proxmox VE

Antes de aprovisionar las máquinas virtuales de Fedora CoreOS, debe crear una ubicación de almacenamiento dedicada para las imágenes FCOS y los fragmentos de configuración de Ignition.

Crear el Directorio de Almacén

Primero, cree una estructura de directorio para recursos de Fedora CoreOS:

mkdir -p /var/coreos

Agregar Almacenamiento a Proxmox VE

Añade el directorio nuevo como un lugar de almacén Proxmox VE que pueda mantener ambas imágenes de MV y fragmentos de configuración:

pvesm add dir coreos --path /var/coreos --content images,snippets

Este comando crea un lugar nuevo de almacenamiento llamada coreos que Proxmox VE puede usar para almacenar imágenes de disco y fragmentos de configuración (incluidos los archivos de Ignition). Para obtener más información sobre la configuración del almacenamiento de Proxmox VE, consulte documentación de almacenamiento de Proxmox VE.

Descarga de Imágenes de Fedora CoreOS

Fedora CoreOS proporciona imágenes precompiladas optimizadas específicamente para Proxmox VE. Puede descargar estas imágenes mediante el binario coreos-installer o por medio de un contenedor.

Obtener la imagen QCOW2

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

STREAM="stable"
# como un binario instalado:
coreos-installer download -s $STREAM -p proxmoxve -f qcow2.xz --decompress -C /var/coreos
# o como un contenedor:
podman run --pull=always --rm -v "/var/coreos/images:/data" -w /data \
    quay.io/coreos/coreos-installer:release download -s $STREAM -p proxmoxve -f qcow2.xz --decompress

Ambos métodos descargarán la imagen más reciente de Fedora CoreOS para la secuencia especificada (stable, testing o next) en formato QCOW2, optimizada para Proxmox VE. La imagen se almacenará en el directorio /var/coreos/images.

Preparar la Configuración de Ignition

Suba su archivo de configuración de Ignition para el directorio de fragmentos:

# Suba su ignition a /var/coreos/config.ign
scp /path/to/your/config.ign root@proxmoxve-host:/var/coreos/snippets/config.ign

Configurar una MV nueva

El siguiente ejemplo demuestra cómo crear y configurar una MV Fedora CoreOS utilizando las herramientas de línea de comandos Proxmox VE.

Ajustes de Variables de Configuración

Define los parámetros de la MV:

VM_ID=101
NAME=fedora-coreos
QCOW=fedora-coreos-{stable-version}-proxmoxve.x86_64.qcow2
IGN=config.ign
STORAGE=local-lvm
CPU=2
MEMORY=2048
DISK_SIZE=90G

Ajusta estas variables de acuerdo a su requerimientos:

  • VM_ID: Identificador de MV única en Proxmox VE

  • NAME: el nombre para la máquina virtual (MV)

  • QCOW: el nombre del archivo de la imagen FCOS descargada

  • IGN: el nombre del archivo de su configuración de Ignition

  • STORAGE: grupo de almacenamiento de destino para el disco de la máquina virtual

  • CPU: número de cores de CPU a asignar

  • MEMORY: RAM asignada en MB

  • DISK_SIZE: espacio de disco adicional a asignar

Crear y Configurar la MV

Cree la MV con la configuración especificada:

# Crea la configuración inicial de MV
qm create ${VM_ID} --name ${NAME} --cores ${CPU} --memory ${MEMORY} \
    --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci

# Importar la imagen FCOS como disco principal
qm set ${VM_ID} --scsi0 "${STORAGE}:0,import-from=/var/coreos/images/${QCOW}"

# Cambie el tamaño del disco para proporcionar espacio adicional.
qm resize ${VM_ID} scsi0 +${DISK_SIZE}

# Añadir unidad cloud-init para la entrega de la configuración
qm set ${VM_ID} --ide2 ${STORAGE}:cloudinit

# Establecer el orden de arranque para utilizar el disco importado
qm set ${VM_ID} --boot order=scsi0

# Configurar la consola serial para una mejor compatibilidad
qm set ${VM_ID} --serial0 socket --vga serial0

# Configurar la entrega de archivos de Ignition a través de cloud-init
qm set ${VM_ID} --cicustom vendor=coreos:snippets/${IGN}

# Inhabilitar actualizaciones automáticas durante el aprovisionamiento
qm set ${VM_ID} --ciupgrade 0

Configuración de Red

Configuración de DHCP

La creación de MV básica mencionada anteriormente utiliza DHCP para la configuración de la red, lo cual es adecuado para la mayoría de los entornos donde la asignación de IP dinámica es aceptable.

Configuración de IP Estática

Para entornos que requieren direcciones IP estáticas, configure los ajustes de red:

# Para dirección IP estática
IP="192.168.1.100"
IP_CIDR="${IP}/24"
GATEWAY="192.168.1.1"
qm set ${VM_ID} --ipconfig0 ip=${IP_CIDR},gw=${GATEWAY}

Reemplace las direcciones IP con valores apropiados para su configuración de red.

Arranque y acceso a la máquina virtual

Arrancar la MV

Inicia la MV virtual y acceda a su consola:

# Inicia y espera a que se inicie la máquina virtual
qm start ${ID_MV}

Explorar el SO

Puede iniciar sesión en la máquina virtual (MV) desde el host con el comando siguiente:

# Acceda a la consola de la máquina virtual desde el host
qm terminal ${VM_ID}

Si configura una clave SSH para el usuario core predeterminado, puede acceder por SSH a la MV a través de la dirección IP:

ssh core@<ip address>

Vaciar

Para fines de prueba, puede purgar fácilmente la máquina virtual:

# Detiene la MV
qm stop ${VM_ID}

# Elimina la MV y su almacén asociado
qm destroy ${VM_ID}

Enlaces