Saltar a contenido

Proxmox VE

Guía completa de Proxmox Virtual Environment: plataforma de virtualización empresarial de código abierto.

📋 Tabla de Contenidos

Introducción

Proxmox Virtual Environment (Proxmox VE) es una plataforma de virtualización empresarial de código abierto que combina:

  • Virtualización de máquinas virtuales (KVM/QEMU)
  • Contenedores LXC para aplicaciones ligeras
  • Gestión web unificada con interfaz intuitiva
  • Almacenamiento distribuido con múltiples opciones
  • Clustering para alta disponibilidad
  • Backup integrado con múltiples destinos

Características Principales

  • Código abierto: Basado en Debian GNU/Linux
  • Alto rendimiento: KVM para virtualización de hardware
  • Escalabilidad: Clustering nativo para múltiples nodos
  • Flexibilidad: Soporte para múltiples tipos de almacenamiento
  • Seguridad: Contenedores LXC aislados
  • Monitoreo: Métricas en tiempo real

Instalación

Requisitos del Sistema

  • CPU: 64-bit con soporte para virtualización (Intel VT-x/AMD-V)
  • RAM: Mínimo 4GB, recomendado 8GB+
  • Almacenamiento: Mínimo 32GB, recomendado 100GB+
  • Red: Interfaz de red configurada

Instalación desde ISO

  1. Descargar ISO desde https://www.proxmox.com/en/downloads
  2. Crear USB booteable o usar PXE
  3. Bootear desde el medio de instalación
  4. Seguir el asistente de instalación
# Ejemplo de instalación automatizada
# Crear archivo de configuración para instalación desatendida
cat > /tmp/proxmox-ve.conf << EOF
# Configuración de red
interface=eth0
ip=192.168.1.100/24
gateway=192.168.1.1
dns=8.8.8.8

# Configuración de almacenamiento
target=sda
filesystem=ext4

# Configuración de usuario
password=TuContraseñaSegura
email=admin@tudominio.com
EOF

Instalación sobre Debian

# Añadir repositorio de Proxmox
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

# Añadir clave GPG
wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg

# Actualizar e instalar
apt update
apt install proxmox-ve postfix open-iscsi

Configuración Básica

Acceso a la Interfaz Web

# URL de acceso
https://IP-DEL-SERVIDOR:8006

# Credenciales por defecto
Usuario: root
Contraseña: (la configurada durante la instalación)

Configuración de Red

# Editar configuración de red
nano /etc/network/interfaces

# Ejemplo de configuración
auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0

Configuración de DNS

# Editar resolv.conf
nano /etc/resolv.conf

# Añadir servidores DNS
nameserver 8.8.8.8
nameserver 8.8.4.4

Gestión de Máquinas Virtuales

Crear una VM desde la Interfaz Web

  1. Navegar a Datacenter → Nodo → Create VM
  2. Configurar parámetros básicos:

  3. General: Nombre, ID, OS Type

  4. OS: ISO image, OS version
  5. System: SCSI controller, Qemu agent
  6. Hard Disk: Size, storage location
  7. CPU: Sockets, cores
  8. Memory: RAM allocation
  9. Network: Bridge, model

Crear VM desde Línea de Comandos

# Crear VM con ID 100
qm create 100 --name "Ubuntu-Server" --memory 2048 --cores 2

# Añadir disco
qm set 100 --scsi0 local-lvm:32

# Añadir ISO
qm set 100 --ide2 local:iso/ubuntu-22.04-server-amd64.iso,media=cdrom

# Configurar boot
qm set 100 --boot c --bootdisk scsi0

# Configurar red
qm set 100 --net0 virtio,bridge=vmbr0

# Iniciar VM
qm start 100

Gestión Avanzada de VMs

# Clonar VM
qm clone 100 101 --name "Ubuntu-Server-Clone"

# Migrar VM
qm migrate 100 target-node --online

# Snapshot
qm snapshot 100 snap1

# Backup
qm backup 100 local:backup

# Monitoreo
qm monitor 100

Contenedores LXC

Crear Contenedor

# Crear contenedor Ubuntu
pct create 200 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
  --hostname ubuntu-ct \
  --memory 512 \
  --cores 1 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.200/24,gw=192.168.1.1

# Iniciar contenedor
pct start 200

# Acceder al contenedor
pct enter 200

Gestión de Contenedores

# Listar contenedores
pct list

# Parar contenedor
pct stop 200

# Reiniciar contenedor
pct restart 200

# Clonar contenedor
pct clone 200 201

# Backup
pct backup 200 local:backup

Almacenamiento

Tipos de Almacenamiento

  • local: Almacenamiento local en el nodo
  • local-lvm: LVM para VMs y contenedores
  • NFS: Sistema de archivos de red
  • Ceph: Almacenamiento distribuido
  • iSCSI: Bloque de red
  • ZFS: Sistema de archivos avanzado

Configurar NFS

# Añadir almacenamiento NFS
pvesm add nfs nfs-storage --server 192.168.1.10 --export /mnt/storage --content images,iso,vztmpl

Configurar Ceph

# Instalar Ceph
apt install ceph

# Crear cluster Ceph
ceph-deploy new node1 node2 node3

# Añadir OSDs
ceph-deploy osd create node1:/dev/sdb
ceph-deploy osd create node2:/dev/sdb
ceph-deploy osd create node3:/dev/sdb

# Añadir almacenamiento Ceph a Proxmox
pvesm add ceph ceph-storage --monhost 192.168.1.10,192.168.1.11,192.168.1.12 --username admin

Redes

Configuración de Bridge

# Bridge simple
auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0

VLAN

# Bridge con VLAN
auto vmbr0.100
iface vmbr0.100 inet static
    address 192.168.100.100/24
    vlan-raw-device vmbr0

Bonding

# Bond de dos interfaces
auto bond0
iface bond0 inet manual
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports bond0
    bridge-stp off
    bridge-fd 0

Backup y Recuperación

Configurar Backup

# Configurar job de backup
nano /etc/pve/nodes/nodo/backup.conf

# Ejemplo de configuración
backup: local:backup
compress: lz4
mode: snapshot
retention: 7
schedule: daily 02:00
storage: local:backup

Backup Manual

# Backup de VM
qm backup 100 local:backup --compress lz4

# Backup de contenedor
pct backup 200 local:backup --compress lz4

# Restaurar backup
qm restore 100 /var/lib/vz/dump/vzdump-qemu-100-2023_01_01-02_00_00.vma.lz4
pct restore 200 /var/lib/vz/dump/vzdump-lxc-200-2023_01_01-02_00_00.tar.lz4

Clustering

Crear Cluster

# En el primer nodo
pvecm create cluster1

# En nodos adicionales
pvecm add 192.168.1.100

Gestión del Cluster

# Ver estado del cluster
pvecm status

# Migrar VM entre nodos
qm migrate 100 nodo2 --online

# Configurar HA (High Availability)
ha-manager add vm:100
ha-manager add ct:200

Seguridad

Configuración de Firewall

# Habilitar firewall
pve-firewall set --enable 1

# Reglas para nodo
pve-firewall set --policy-in ACCEPT
pve-firewall set --policy-out ACCEPT

# Reglas para VM
qm set 100 --firewall 1
pve-firewall set --rulegroup vm:100 --policy-in ACCEPT

Certificados SSL

# Generar certificado autofirmado
pvecm updatecerts --force

# Configurar certificado Let's Encrypt
apt install certbot
certbot certonly --standalone -d proxmox.tudominio.com

Monitoreo

Métricas del Sistema

# Ver uso de recursos
pvesm status
qm list
pct list

# Monitoreo de red
iftop -i vmbr0

Logs

# Logs del sistema
tail -f /var/log/syslog

# Logs de Proxmox
tail -f /var/log/pve/tasks/

# Logs de VMs
tail -f /var/log/pve/qemu-server/100.log

Casos de Uso

Entorno de Desarrollo

# Crear VM de desarrollo
qm create 300 --name "Dev-Ubuntu" --memory 4096 --cores 4
qm set 300 --scsi0 local-lvm:50
qm set 300 --net0 virtio,bridge=vmbr0
qm set 300 --ide2 local:iso/ubuntu-22.04-desktop-amd64.iso,media=cdrom

Servidor Web

# Crear contenedor para web
pct create 400 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz \
  --hostname webserver \
  --memory 1024 \
  --cores 2 \
  --rootfs local-lvm:20 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.10/24,gw=192.168.1.1

Base de Datos

# VM para base de datos
qm create 500 --name "DB-Server" --memory 8192 --cores 4
qm set 500 --scsi0 local-lvm:100
qm set 500 --scsi1 local-lvm:200  # Disco adicional para datos
qm set 500 --net0 virtio,bridge=vmbr0

Buenas Prácticas

  • Usar snapshots antes de cambios importantes
  • Configurar backups automáticos regulares
  • Monitorear recursos del sistema
  • Usar contenedores LXC para aplicaciones ligeras
  • Configurar HA para servicios críticos
  • Mantener actualizado el sistema
  • Documentar configuraciones importantes
  • Usar VLANs para separar redes

Herramientas Útiles

ProxMenuX

ProxMenuX es una herramienta de gestión avanzada para Proxmox VE que proporciona una interfaz gráfica mejorada y funcionalidades adicionales.

Características principales: - Interfaz web mejorada con mejor UX/UI - Gestión avanzada de VMs y contenedores - Monitoreo en tiempo real con gráficos - Backup y restauración simplificados - Gestión de usuarios y permisos - Integración con múltiples almacenamientos

Instalación:

# Clonar repositorio
git clone https://github.com/ayufan/proxmox-ve-helper.git
cd proxmox-ve-helper

# Instalar dependencias
npm install

# Configurar y ejecutar
npm run build
npm start

Proxmox VE Helper

Proxmox VE Helper es una colección de scripts y herramientas para automatizar tareas comunes en Proxmox VE.

Funcionalidades: - Scripts de automatización para backup - Herramientas de migración de VMs - Utilidades de monitoreo y alertas - Scripts de configuración de red - Herramientas de mantenimiento del cluster

Instalación:

# Descargar scripts
wget https://github.com/ayufan/proxmox-ve-helper/archive/refs/heads/master.zip
unzip master.zip
cd proxmox-ve-helper-master

# Dar permisos de ejecución
chmod +x scripts/*.sh

# Ejecutar script de instalación
./scripts/install.sh

PVETUI

PVETUI (Proxmox Virtual Environment Terminal User Interface) es una herramienta de interfaz de usuario basada en terminal escrita en Go que permite gestionar Proxmox VE completamente desde el terminal, inspirada en herramientas como k9s y lazydocker.

Características principales:

  • Rendimiento rápido y navegación fluida entre nodos, VMs y contenedores
  • Gestión completa de máquinas virtuales, contenedores LXC y clusters Proxmox
  • Soporte para múltiples perfiles de conexión
  • Autenticación segura con tokens API o contraseñas, con renovación automática
  • Shells SSH integrados y acceso VNC embebido
  • Soporte para plugins (incluyendo instalador de scripts comunitarios)
  • Navegación por teclado estilo Vim (h, j, k, l, etc.)
  • Temas personalizables y multiplataforma (Linux, macOS, Windows)

Instalación:

# Opción 1: Usando Go (Linux/macOS)
go install github.com/devnullvoid/pvetui/cmd/pvetui@latest

# Opción 2: Binarios precompilados
# Descargar desde https://github.com/devnullvoid/pvetui/releases

# Opción 3: Usando gestores de paquetes
# Arch Linux: yay -S pvetui-bin
# macOS: brew tap devnullvoid/pvetui && brew install pvetui
# Windows: scoop install pvetui

# Opción 4: Docker
git clone https://github.com/devnullvoid/pvetui.git
cd pvetui
cp .env.example .env
docker compose run --rm pvetui

Uso básico:

  • Ejecutar pvetui para iniciar la interfaz
  • En el primer lanzamiento, configurar perfil de conexión
  • Navegar con Alt+1 (Nodos), Alt+2 (Guests), Alt+3 (Tareas)
  • Usar 'm' para menús de acciones, 's' para SSH, 'v' para VNC

Referencias

Videos tutoriales

Video: Proxmox VE desde cero - Instalación y configuración completa


¿Buscas comandos rápidos?

Consulta nuestras Recetas rápidas para comandos copy-paste comunes.

¿Problemas con Proxmox?

Revisa nuestra sección de troubleshooting para soluciones a errores comunes.