====== 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