Crear contenedores linux con PROXMOX
En el tercer capítulo sobre entornos virtuales con PROXMOX, comentaremos la creación de contenedores Linux. El tema de los contenedores lo hemos tratado ampliamente en la web, tanto Docker como OpenVZ. Con estos últimos son con los que trabajaremos.
Recapitulemos de lo que hemos hablado hasta ahora. Explicamos en que consistía y cómo se realizaba la instalación y configuración de la insfraestructura virtual, y de cómo crear máquinas virtuales.
Crear contenedores linux con PROXMOX
Vamos al lío, recordemos que los contenedores utilizan plantillas, dichas plantillas, ya sean oficiales o comunitarias, se pueden descargar desde la web. El panel de administración nos facilita en la vista «Almacenamiento«, la posibilidad de cargar plantillas.
En la nueva ventana tenemos una larga lista con la que trabajar.
Tenemos disponible todo tipo de plantillas, desde sistemas operativos, tanto Debian, Ubuntu o CentOS, en diferentes versiones, como servicios ya montados como bases de datos, de monitorización, etcétera. Todos son tipo OpenVZ. En mi caso, justo al final de la lista, en la sección llamada «www«, escogeré la plantilla llamada «Drupal«, que como sabéis es un CMS, y así le echo un vistazo.
Marcamos la plantilla y apretamos el botón «Descargar» Cuando finalice el proceso ya podremos ver el fichero descargado en la lista.
En la siguiente parte apretaremos el botón «Crear CT» ubicado en la parte superior derecha de la pantalla.
Si seguimos la serie de capítulos de la guía sobre PROXMOX veremos que el menú de creación es similar que al de máquinas virtuales. En la primera pestaña indicamos el «Nodo«, que sólo tenemos uno, llamado «pve», el «ID» que dejaremos por defecto, el «Nombre del Host«, aquí escribimos un nombre descriptivo, el «Conjunto de Recursos» lo dejamos vacío, en «Almacenamiento«, he escogido el segundo disco, llamado «local1», y por último escribimos la contraseña de acceso dos veces.
En la pestaña «Plantilla«, marcamos la ubicación de la plantilla y su nombre.
En «Recursos» seleccionamos la «Memoria«, el «Swap«, el «Tamaño de disco» y el número de «CPUs«, lo recomendable es dejar los campos por defecto. Si estamos en un entorno productivo los parámetros deben ser según las necesidades del producto, usuarios potenciales, número de conexiones concurrentes, etcétera.
En el apartado «Redes» por defecto viene marcado «Routed mode (venet)» pero como yo quiero utilizar la misma red que el resto de mis máquinas virtuales, he escogido «Modo Puente«
En el apartado DNS, añadiremos el nombre de dominio, y los dos servidores principales. En el último apartado, llamado «Confirmación«, veremos un resumen de todos los datos aportados para el contenedor, y finalizar.
Si todo el proceso ha ido bien veremos una imagen similar a la anterior.
Gestionar contenedores OpenVZ en PROXMOX
Una vez creado el contenedor nos vamos a la «Vista por Servidor» y allí ya veremos nuestro contenedor tipo OpenVZ
Al igual que en las máquinas virtuales, marcando sobre él tenemos diferentes pestañas con las que trabajar, la configuración de las redes, los recuros, el DNS, y también sus estadísticas en vivo, gestión de respaldos, etcétera. Para acceder a su consola apretaremos el botón derecho del botón sobre la máquina y, una vez encendido el contenedor, podremos apretar el botón «Consola«
Al abrir la consola obervaremos que el contenedor utiliza un sistema Debian 6 Squeeze sobre el cual se ha montado el servicio Drupal.
Recordad que todos los contenedores funcionan sobre el mismo kernel de la infraestructura, es decir, no son un sistema operativo al uso. Es un concepto que nos tiene que quedar bastante claro. Si vemos el kernel del contenedor, veremos que está utilizando el mismo que el de PROXMOX.
En cualquier caso cosas como los comandos de GNU Linux y la estructura de carpetas es la mima que un SO al uso.
Al iniciar el contenedor veremos que la red no funciona, y eso eso porque no está configurada, para ello debemos editar el fichero /etc/network/interfaces, en el caso que el sistema sea Debian o Ubuntu, y añadirla, por ejemplo, si tenemos una interfaz eth0, sería así:
auto eth0
iface eth0 inet dhcp
En el caso de que IP sea por DHCP, si no sería de manera estática.
A parte de esto tenemos que seguir las instrucciones de cada plantilla, ya que cada una puede tener una configuración diferente, en nuestro caso debemos visitar la página de configuración de la plantilla.
Al tener la dirección IP ya nos podremos ir al navegador, para comprobar si efectivamente Drupal está funcionando.
Escribimos: http://youripaddress/install.php
Y si todo ha ido bien, ya tendremos el instalador delante de nuestras narices : )
Después de un artículo tan largo, sólo os digo, hasta mañana!!
En el próximo capítulo:
Saludos Compañero
Interesante tu articulo y bien explicado; pero tengo un pequeño detalle que no logro ver, cuando yo creo un contenedor con las plantillas descargadas como indicas, e inicio dicho contenedor, cuando me voy a consola y me muestra el login; que usuario y contraseña utilizo? pq en el caso de la plantilla de centos7 coloco para iniciar con el usuario root y la contraseña que le coloque cuando estaba creando el contenedor, y me indica login incorrecto; sera q estoy haciendo algo mal o es que no logro ver que estoy haciendo algo incorrecto.
Hola Eduardo,
En principio la contraseña de ‘root’ la indicas al crear el contenedor. Si esto no funciona puedes probar sin contraseña, para luego crear una.
Saludos!!
Otra cosa, algunas plantillas de OpenVZ tienen características especiales, lo puedes consultar aquí:
https://pve.proxmox.com/wiki/Category:Virtual_Appliances
Espero haberte ayudado.
yo en lo que me pierdo es en darle salida a internet a las maquinas, selecciono el modo puente y pongo ip fija pero de ahi no paso no logro hacer q tenga salida, alguna ayudita?
Hola Víctor,
Primero prueba de utilizar el contenedor sin asignarle IP estática, es decir, por DHCP, para que así el router le de una IP y unas DNS.
Ya me dices.
igual, solo decir q tengo proxmox en un servidor dedicado por q quiero trastear en redes q es donde no tengo apenas idea, mi idea es darle una ip a cada VM y el anfitrion gestionar las entradas y dependiendo q viene mandarla a una u otra, ejemp una wiki una vm, una web otra vm, etc pero la cagada esta en cuando no tienen ni salida y con tanta interface virtual etc me pierdo.
tengo 4 eth0, eth1, vmbr0 y vmbr1
perdon eso en anfitrion, en vm tengo una eth0 q hace puente a vmbr0 que en la anfitrion hace puente a eth0 q es la q supongo q es la salida pero la verdad es q segun las ips el q tiene salida (deduzco por q la ip publica) la tiene vmbr0 en anfitrion.
Estoy usando proxmox 4 y cuando intento configurar la red me he vuelto un lio, y es que mis container inicialmente no podian hacer contacto (por ejemplo ping) con el host, asi que realice la siguiente configuracion:
En el host modifique el archivo /etc/network/interfaces y agregue lo siguiente:
auto vmbr2
iface vmbr2 inet static
address 192.168.100.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
y en el container modifique el archivo /etc/network/interfaces de la siguiente manera:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.100.1
netmask 255.255.255.0
gateway 192.168.100.254
Con esto logre poder hacerle ping desde el container al host y del host al container, pero ahora no logro que el container tenga internet (pueda acceder a cualquier url de internet, por ejemplo http://www.google.com a traves de ping)
Podrian ayudarme?
Hola Alejandro,
A primera vista tiene pinta que te falta la configuración de los DNS. Lo puedes comprobar revisando el fichero: /etc/resolv.conf y añadir las direcciones DNS manualmente en el fichero /etc/network/interfaces, añadiendo la línea:
«dns-nameservers servidor-dns1 servidor-dns2»
Saludos
Hola buenas, me pasa exactamente lo mismo que Alejandro y todavía no encontré solución, agradeciere un poco de ayuda gracias.