Start typing to search across invoices, services, domains, tickets, and more...
Si aprovisiona VPS para clientes en un servidor dedicado con Proxmox VE, instalar cada invitado desde una ISO es lento y propenso a errores. Una plantilla cloud-init de Proxmox VE es mucho más eficiente: importe la imagen cloud oficial de Debian o Ubuntu, añada una unidad cloud-init, conviértala en plantilla y cada nuevo VPS será un clon más su IP, clave SSH y contraseña, entregado en menos de un minuto. Esta guía se aplica a Proxmox VE 7.x/8.x; ejecute todos los comandos como root en el host.
Las imágenes cloud son discos de sistema mínimos que las distribuciones generan para plataformas en la nube, con cloud-init preinstalado para aplicar en el primer arranque el nombre de host, el usuario, las claves SSH y la red. Para Debian, use la versión genericcloud (pequeña y orientada a KVM); para Ubuntu, use server-cloudimg. De forma opcional, preinstale qemu-guest-agent con virt-customize para que Proxmox pueda leer las IPs del invitado y apagarlo correctamente.
cd /var/lib/vz/template/iso # any directory with enough space
# Debian 12 (bookworm) generic cloud image
wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-amd64.qcow2
# Ubuntu 24.04 LTS (noble) cloud image
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
# optional: preinstall qemu-guest-agent into the image
apt install -y libguestfs-tools
virt-customize -a debian-12-genericcloud-amd64.qcow2 --install qemu-guest-agent
Cree una VM vacía sin disco, importe la imagen cloud como su disco y, a continuación, conéctelo como scsi0 y establézcalo como dispositivo de arranque. Proxmox convierte la imagen al formato del almacenamiento de destino durante la importación.
qm create 9000 --name debian12-cloudinit --memory 2048 --cores 2 \
--cpu host --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci --ostype l26
# import the image as a disk of VM 9000 on storage local-lvm
qm importdisk 9000 debian-12-genericcloud-amd64.qcow2 local-lvm
# (PVE 8 also accepts: qm disk import 9000 debian-12-genericcloud-amd64.qcow2 local-lvm)
qm set 9000 --scsi0 local-lvm:vm-9000-disk-0,discard=on
qm set 9000 --boot order=scsi0
La unidad cloud-init es un CD virtual en el que Proxmox escribe la configuración de la pestaña Cloud-Init. Las imágenes cloud suelen necesitar una consola serie para mostrarse correctamente en la Console web, así que configure también serial0. El usuario y la clave definidos en la plantilla actúan como valores predeterminados y pueden sobrescribirse en cada clon.
qm set 9000 --ide2 local-lvm:cloudinit
qm set 9000 --serial0 socket --vga serial0
qm set 9000 --agent enabled=1
# defaults stored in the template (can be overridden per clone)
qm set 9000 --ciuser debian --sshkeys /root/.ssh/id_ed25519.pub
qm set 9000 --ipconfig0 ip=dhcp
qm set 9000 --nameserver "1.1.1.1 8.8.8.8"
qm cloudinit dump 9000 user
El último comando muestra una vista previa del user-data generado para que pueda confirmar que incluye el nombre de usuario y la clave.
No arranque la VM; conviértala directamente. Una plantilla no se puede iniciar, solo clonar, y su disco se convierte en una imagen base de solo lectura.
qm template 9000
qm list
Hay dos tipos de clon. Un clon completo (--full) copia un disco independiente y es el adecuado para entregar a clientes. Un clon enlazado es casi instantáneo y ahorra espacio, pero depende del disco base de la plantilla (la plantilla ya no se puede eliminar), por lo que es apropiado para pruebas internas. Asigne a cada VPS su propia IP, clave o contraseña inicial y amplíe el disco según sea necesario; la imagen cloud ocupa solo 2–3 GB y cloud-init amplía la partición en el primer arranque.
# full clone (independent disk) for a customer VPS
qm clone 9000 201 --name vps201 --full --storage local-lvm
# or a linked clone: created in seconds, shares the base disk
# qm clone 9000 202 --name vps202
qm set 201 --cores 2 --memory 4096
qm set 201 --ipconfig0 ip=203.0.113.21/24,gw=203.0.113.1
qm set 201 --sshkeys /root/customer201.pub --cipassword 'Change-Me-123'
qm resize 201 scsi0 +38G
qm start 201
# check
qm guest cmd 201 network-get-interfaces
ssh [email protected]
Para el aprovisionamiento masivo, agrupe los pasos en un pequeño script que reciba el ID de la VM, la IP y la clave del cliente:
#!/bin/bash
# usage: ./newvps.sh 205 203.0.113.25 /root/keys/c205.pub
ID=$1; IP=$2; KEY=$3
qm clone 9000 "$ID" --name "vps$ID" --full --storage local-lvm
qm set "$ID" --ipconfig0 ip="$IP"/24,gw=203.0.113.1 --sshkeys "$KEY"
qm resize "$ID" scsi0 +38G
qm start "$ID"
En la interfaz web: haga clic derecho en la plantilla → Clone → modo «Full Clone»; después, edite IP Config y SSH public key en la pestaña Cloud-Init de la nueva VM, haga clic en «Regenerate Image» e iníciela.
Compruebe que ipconfig0 coincide con la IP, la máscara y la puerta de enlace asignadas por IMIDC; inicie sesión con el ciuser (debian por defecto en Debian, ubuntu en Ubuntu), no con root; y reinicie la VM después de cambiar la configuración de Cloud-Init. La Console serie de Proxmox muestra el registro de arranque de cloud-init para diagnosticar problemas.
Ejecute qm resize antes del primer arranque para que growpart de cloud-init amplíe la partición raíz. Si la VM ya arrancó, ejecute growpart /dev/sda 1 y resize2fs /dev/sda1 dentro de ella (compruebe los nombres de las particiones con lsblk).
Sí. Rocky Linux y AlmaLinux publican imágenes qcow2 GenericCloud; el procedimiento es idéntico, con los usuarios predeterminados rocky y almalinux respectivamente.
¿Sigue con problemas? Abra un ticket con el soporte técnico 24/7 de IMIDC: https://www.imidc.com/submitticket.php