====== Cómo crear en Proxmox un contenedor de OpenVZ por consola ====== [[http://www.proxmox.org|Proxmox]] es una plataforma de virtualización muy útil. Aunque tiene una interfaz de gestión vía web, puede que en alguna ocasión sea necesario trabajar por consola, bien desde el propio Proxmox o desde otro equipo vía SSH. Este mini-tutorial muestra cómo hacerlo. En este tutorial se asumen ciertas cosas: * Se posee una PC con Proxmox 3.0 instalado y funcionando en la dirección 192.168.100.1, al cual accederemos desde otra PC que tenga acceso a internet (para descargar la plantilla). * Se instalará un contenedor con Debian 7 (Wheezy). * Se poseen conocimientos intermedios de administración de sistemas y redes. ===== Preparativos ===== Primeramente, descargaremos la plantilla del contenedor de Debian: wget http://download.proxmox.com/appliances/system/debian-7.0-standard_7.0-1_i386.tar.gz Una vez descargada la plantilla, vamos a copiarla hacia Proxmox: scp debian-7.0-standard_7.0-1_i386.tar.gz root@192.168.100.1:/var/lib/vz/templates/cache/ ===== Creación y configuración del contenedor ===== Para crear el contenedor, accederemos a Proxmox vía SSH: ssh root@192.168.100.1 Una vez en la consola de proxmox, primeramente prepararemos el contenedor: vzctl set 101 --name "sv1" --description "Mi primer servidor" --cpus 1 --cpulimit 100% \ --diskspace 1G:4G --ram 512M --swap 768M --diskinodes 90000:200000 --quotatime 600 \ --ipadd 192.168.100.101 --hostname "sv1" --searchdomain midominio.cu \ --nameserver 127.0.0.1 --nameserver 200.55.128.3 --nameserver 200.55.128.4 \ --nameserver 169.158.128.136 --nameserver 169.158.128.88 \ --netif_add eth0 --save En este caso, hemos establecido los parámetros de creación para un contenedor, asignando una IP de la subred de administración, y adicionalmente habilitando la interfaz ''eth0'' mediante un puente, con el objetivo de configurarla luego para la salida hacia otra subred o el exterior. Procedemos entonces a crear propiamente el contenedor, utilizando la plantilla de Debian 7 descargada, adicionalmente estableciendo la contraseña "secreto" para el usuario ''root'', y habilitando módulos de iptables. vzctl create 101 --ostemplate debian-7.0-standard_7.0-1_i386 vzctl set 101 --userpasswd root:secreto --onboot yes --save vzctl set 101 --iptables ipt_TCPMSS --iptables ipt_LOG --iptables ipt_TOS \ --iptables iptable_nat --iptables ipt_multiport --iptables ipt_state \ --iptables ipt_limit --iptables ipt_recent --iptables ipt_owner \ --iptables ipt_REDIRECT --iptables ipt_length --iptables ipt_tcpmss \ --iptables iptable_mangle --iptables ipt_tos --iptables iptable_filter \ --iptables ipt_ttl --iptables ipt_REJECT --setmode restart --save Una vez creado el contenedor, nos cercioramos de hacerlo funcionar, y entramos en el: vzctl start 101 vzctl enter 101 Esta vez debería aparecernos la consola del equipo ''sv1''. Podríamos entonces realizar otras tareas, como por ejemplo establecer ciertos parámetros de red: ip address add 192.168.0.101/24 dev eth0 ifconfig eth0 up route add default gw 192.168.0.1 exit ===== Realizar salvas y restauras ===== Supongamos que deseamos realizar una salva en cierto directorio del contenedor que acabamos de crear, para restaurarlo o clonarlo cuando sea necesario: ((El comando ''vzdump'' puede utilizarse para realizar salvas tanto de contenedores de OpenVZ como máquinas virtuales de QEMU/KVM. La diferencia es que para restaurar, deben utilizarse los comandos ''vzrestore'' o ''qmrestore'', respectivamente.)) mkdir -p /var/salvas vzdump 101 --compress gzip --dumpdir /var/salvas --mode stop --tmpdir /var/tmp Esto debería producir en ''/var/salvas/'' un archivo con un nombre como ''vzdump-openvz-101-2013_06_22-14_54_56.tar.gz'' que contendrá la salva de nuestro contenedor. Podríamos entonces, por ejemplo, utilizar esta salva para hacer un clon del contenedor a fin de instalar en el otros servicios: vzrestore /var/salvas/vzdump-openvz-101-2013_06_22-14_54_56.tar.gz 102 -force Naturalmente, puede que este comando produzca ciertos errores porque ahora habría una duplicación de datos, como las mismas direcciones y nombres de equipos, etc. Pero esto podemos modificarlo: vzctl stop 102 vzctl set 102 --name "sv2" --description "Mi segundo servidor" \ --hostname "sv2" --save vzctl set 101 --ipdel all --save vzctl set 101 --ipadd 192.168.100.102 --onboot yes --save De todas maneras, si deseamos confirmar si todo ha quedado como pretendemos, podemos revisar el contenido del archivo de configuración ''/etc/vz/conf/102.conf'' y del directorio ''/var/lib/vz/private/102/'' (con el contenedor detenido para mayor seguridad). ===== Otros comandos útiles ===== Desde la consola pueden hacerse muchas cosas, sin necesidad de entrar en la interfaz web de Proxmox. Por ejemplo, si deseamos listar los contenedores que tenemos (detenidos o en ejecución), podemos utilizar el siguiente comando: vzlist -a También podemos ejecutar comandos directamente en un contenedor, sin necesidad de entrar en el. Por ejemplo: vzctl exec 101 df -h Para eliminar con seguridad un contenedor, podemos ejecutar los siguientes comandos: vzctl stop 102 vzctl umount 102 vzctl destroy 102 ===== Atribuciones ===== * **Autor:** Hugo Florentino