Ir al contenido

Documentación

Proxmox VE

Proxmox es la integración de hipervisor. Crea máquinas virtuales clonando una plantilla, sigue la tarea mientras se ejecuta y mantiene el panel al ritmo de lo que informa realmente el clúster.

Qué hace falta

Proxmox no usa una contraseña para la automatización. Se crea un token de API, que es un identificador de tres partes más un secreto que se muestra una sola vez.

  • Host: la URL base completa de la API. Tiene que ser HTTPS; si se omite el puerto, se rellena el 8006.
  • ID del token: con el formato user@realm!tokenname, exactamente como lo escribe Proxmox.
  • Secreto del token: el valor que Proxmox muestra una sola vez al crear el token.
  • Huella TLS: el certificado del propio nodo, no el de la autoridad que lo emitió.
shell
openssl s_client -connect pve.example.com:8006 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Los comandos y la salida del terminal están en inglés en todas partes, en el panel y en estas páginas. Un solo texto, una sola verdad: lo que se lee aquí es literalmente lo que devolverá su host.
Conviene desactivar la separación de privilegios en el token, o darle permisos propios de forma explícita. Con ella activada, el token empieza sin ninguno de los derechos del usuario al que pertenece y todas las llamadas fallan por un motivo que Proxmox no explica.

Ajustes

Cuatro decisiones no secretas, en la pestaña de ajustes. Sin ellas la integración está conectada, pero no puede crear nada.

  • Nodo: en qué nodo del clúster construir. El panel ofrece los nodos que el agente ha visto realmente; si todavía no ha visto ninguno, se puede escribir el nombre.
  • Almacenamiento: dónde van los discos de las máquinas nuevas.
  • Bridge: opcional. Se guarda y se usa cuando la plataforma crea una máquina desde cero, pero un clon hereda el bridge de la plantilla de la que se clonó.
  • Rango de vmid: el bloque de identificadores de máquina de Proxmox dentro del cual Provibr puede asignar.

El rango es el límite de seguridad

Es el ajuste más importante de la página. Provibr asigna identificadores únicamente dentro del rango indicado y nunca toca nada fuera de él. Si las máquinas de producción propias quedan fuera del rango, permanecen fuera de alcance, sea lo que sea lo que alguien pulse en el panel.

Los identificadores no se reutilizan nunca, ni siquiera después de eliminar una máquina. Por eso un mensaje de estado tardío de una máquina que ya no existe nunca puede acabar en una máquina nueva.
Una plantilla vinculada como sistema operativo tiene que quedar fuera del rango, y si no el panel la rechaza: dentro del rango, el asignador acabaría entregando el identificador de la propia plantilla y el siguiente pedido se clonaría a sí mismo.

Cómo se crea una máquina

Crear una máquina es una tarea de clonado seguida de unas pocas llamadas de configuración. El panel sigue la tarea y muestra el progreso real allí donde Proxmox lo informa.

  1. Clonar la plantilla elegida en el nodo indicado en los ajustes.
  2. Ampliar el disco de arranque hasta el tamaño pedido. Un disco solo puede crecer; si la plantilla ya es mayor, la máquina conserva el tamaño de la plantilla.
  3. Aplicar los núcleos, la memoria y los ajustes de cloud-init (dirección, puerta de enlace, servidores DNS, usuario, claves SSH) en una sola llamada de configuración.
  4. Activar el firewall e iniciar la máquina.
Tras el inicio, la máquina se informa como configurándose y no como en ejecución, y solo pasa a en ejecución cuando cloud-init ha hecho su trabajo dentro del sistema invitado. Por eso una máquina recién creada no se pone en verde de inmediato.

Contenedores Linux

Una conexión de Proxmox sostiene máquinas virtuales y contenedores. El plan decide cuál de los dos produce un pedido, y a partir de ahí la clase viaja con cada comando en lugar de adivinarse. Un contenedor no es una máquina virtual más pequeña: comparte el núcleo de su anfitrión, y por eso sale barato y por eso hay un puñado de cosas que sencillamente no están.

  • El plan dice máquina virtual, contenedor o cualquiera de los dos. Con cualquiera de los dos, la elección se hace durante el pedido, y la lista de imágenes sigue esa elección en lugar de rellenar una en silencio.
  • Un contenedor no se clona sino que se desempaqueta, desde una plantilla de contenedor de la conexión. Es otra clase de origen que las plantillas de las que se clona una máquina virtual, y una imagen que solo tiene plantilla de contenedor no aparece en la lista de máquinas virtuales.
  • Unprivileged es lo que viene por omisión. La raíz de dentro del contenedor no es la raíz del anfitrión, y eso es lo deseable salvo que algo pida expresamente otra cosa.
  • El almacenamiento es un volumen raíz más puntos de montaje. El panel los muestra como clave, origen y ruta dentro del huésped; la ruta del anfitrión no se muestra a propósito, porque dice más del anfitrión que de la máquina.

Cada comando lleva la clase consigo, y un comando que no encaja se rechaza antes de convertirse en una tarea, con el motivo en pantalla. Dos de esos motivos significan cosas realmente distintas.

  • Nunca: arrancar desde la red, una máquina vacía, y el firmware o el orden de arranque. Un contenedor no arranca desde una tarjeta de red y no tiene firmware al que preguntar.
  • Todavía no: discos, tarjetas de red y la pantalla de hardware. Un contenedor sí tiene almacenamiento y red, con otra forma, y reutilizar para ellos los campos de una máquina virtual daría a las mismas palabras un segundo significado.
  • Disponible: crear, arrancar, parar, apagar, estado, borrar, suspender, reanudar, reinstalar, el cortafuegos y su protección contra direcciones falsas.
  • La consola es un caso aparte, y es un todavía no con motivo: la consola de una máquina virtual es una pantalla, y un contenedor no la tiene. Lo que sí tiene es un terminal, y eso es otro protocolo y otro cliente.

Las copias de seguridad tienen una diferencia fácil de errar, y funciona justo al revés que en una máquina virtual. Un punto de montaje está en la copia solo si se ha marcado para ello; un disco de una máquina virtual está a menos que se haya desmarcado. Un contenedor con un volumen de datos que nadie marcó tiene, por tanto, una copia que parece completa y contiene solo el volumen raíz.

El panel indica por cada punto de montaje si está en la copia, y nunca llama completa a una cobertura sin medir. Los bind mounts y los dispositivos pasados directamente no van nunca: lo que hay detrás pertenece al anfitrión y no a la máquina.

Reinstalar un contenedor es una sustitución y no un clon por encima. El panel muestra primero qué le ocurre a cada punto de montaje, y solo entonces sustituye la máquina bajo un único cerrojo: el volumen raíz se reconstruye, y lo que figuraba como conservado se vuelve a poner. Lo que no estaba en esa lista no se restaura.

Cloud-init

Provibr escribe un conjunto pequeño y fijo de claves de cloud-init y nada más: las cuatro configuraciones de red, los servidores DNS y el dominio de búsqueda, el usuario, el tipo de configuración, las claves SSH, la contraseña y si se actualizan los paquetes en el primer arranque. La lista existe en los dos lados, así que un campo que resulte llamarse cloud-init nunca puede reescribir un ajuste arbitrario de la máquina.

La contraseña de root nunca aparece en el registro de auditoría. Solo se registra el nombre del campo; el valor viaja por separado y no se guarda.

La opción de actualizar los paquetes en el primer arranque necesita Proxmox 8.1 o posterior. En un nodo más antiguo, la llamada se repite sin ella en lugar de fallar.

Qué se puede hacer después

Iniciar, detener, apagar, pausar, reanudar, actualizar el estado, reinstalar y eliminar. Un apagado se lo pide primero al sistema invitado por las buenas y pasa a una parada forzada cuando se agota el plazo.

Los discos y las tarjetas de red se pueden añadir, ampliar, acoplar y desacoplar. Un disco solo puede crecer. El disco de arranque y el disco de cloud-init no se pueden desacoplar, y la primera tarjeta de red tampoco.

El firewall tiene una lista de reglas editable y un registro, y ambos se leen y se escriben en el propio nodo.

Conviene saber

  • Un clon hereda el bridge de red de su plantilla. El bridge del plan y el de la integración se guardan y se usan en otros sitios, pero no se aplican a un clon.
  • El uso de disco dentro de una máquina virtual no es algo que Proxmox pueda ver, así que esa gráfica muestra el tamaño asignado y ninguna línea de uso. Las demás mediciones son reales.
  • Las plantillas quedan fuera del sondeo y nunca cuentan para su licencia.
  • Las máquinas que existen en su clúster pero no en Provibr se ignoran en cada sondeo. Tampoco se pueden importar desde Proxmox: hoy no hay importación para hipervisores.