Tabla de Contenidos

Cómo Instalar Zentyal como un contenedor de OpenVZ en Proxmox

Introducción

En este tutorial, utilizaremos Proxmox 2.1 para instalar una PC virtual con Zentyal 2.2-2, pero para minimizar el consumo de recursos crearemos dicha PC no como una máquina virtual, sino como un contenedor de OpenVZ.

Asumiremos que ya se ha instalado Proxmox, pues el proceso de instalación es bastante sencillo. Idealmente, para esto se contaría con un equipo con soporte para virtualización por hardware (solo así se podrá utilizar la tecnología KVM, que optimiza el rendimiento), un procesador con múltiples núcleos, 2 GB o más de memoria RAM y un disco de unos 200 GB o más.

Preparativos

Requisitos

Además de ser necesario el acceso a Internet (o a los repositorios necesarios, si se tienen en un disco o una red local), para poder instalar Zentyal en un contenedor, debemos tener a mano la plantilla OpenVZ para Ubuntu Lucid (ubuntu-10.04-standard).

Puede obtenerse desde Internet mediante la interfaz web de Proxmox, seleccionando el almacenamiento local, y en la pestaña de contenido, hacer clic en el enlace que dice “Plantilla”.

Alternativamente, podemos descargar la plantilla desde el sitio original, o bien desde un enlace nacional, como este.

Una vez obtenido el archivo (digamos, ubuntu-10.04-x86.tar.gz) lo “subimos” al directorio de plantillas, para lo cual podemos utilizar el enlace que dice “Subir”.

Módulos

En caso de que deseemos configurar Zentyal como cortafuegos (Zentyal Firewall), será necesario realizar varios pasos, para lo cual debemos iniciar sesión de consola en Proxmox, bien sea localmente o por SSH.

Primeramente, nos cercioramos de cargar ciertos módulos del kernel:

modprobe xt_mark
modprobe ipt_mark
modprobe ip_conntrack

Para que los cambios sean permanentes, en lugar de esto podemos agregar el nombre de estos módulos al archivo /etc/modules (uno por línea).

Además, necesitamos editar el archivo /etc/vz/vz.conf y modificar la entrada que comienza con “IPTABLE” para especificar los módulos de iptables que se habilitarán por defecto en los contenedores OpenVZ. Debería quedar aproximadamente de esta manera:

IPTABLES="ip_conntrack ip_conntrack_ftp ip_conntrack_irc ip_nat_ftp ip_nat_irc iptable_filter iptable_mangle iptable_nat ipt_conntrack ipt_helper ipt_length ipt_limit ipt_LOG ipt_multiport ipt_multiport ipt_owner ipt_REDIRECT ipt_REJECT ipt_state ipt_state ipt_tcpmss ipt_TCPMSS ipt_tos ipt_TOS ipt_ttl"

Una vez realizadas estas modificaciones, reiniciamos los contenedores mediante este comando:

/etc/init.d/vz restart

Además podríamos reiniciar el equipo físico para cerciorarnos de que se aplicarán todos los cambios:

reboot

Creación del contenedor

La creación del contenedor es muy fácil, solo hay que hacer clic en el botón superior que dice “Crear CT” y seguir el asistente.

Debería aparecer una pantalla donde se va notificando el estado de la tarea. Cuando esta finaliza, aparece el mensaje “TASK OK”. Entonces podemos cerrarla.

En la vista de servidores debe aparecer nuestro contenedor OpenVZ, en un estado detenido. Normalmente deseamos que que se inicie junto con el equipo físico, de modo que lo seleccionamos y vamos a la pestaña llamada “Opciones”. Hacemos doble clic sobre la opción que dice “Iniciar al Arranque”, marcamos la casilla y aceptamos.

Iniciamos el contenedor (bien haciendo clic derecho sobre el y seleccionando del menú contextual la opción correspondiente, o mediante el enlace que dice “Iniciar” hacia el extremo superior derecho de la pantalla). Cuando el servidor inicie, el icono cambiará de un color gris a verde.

Una vez iniciado, podemos acceder por la consola (el procedimiento es similar al utilizado para inciarlo). Sucede que para el acceso a la PC virtualizada, Proxmox utiliza una versión personalizada de VNC a la cual no se puede acceder con un cliente VNC corriente, porque requiere de TLS. Por esto, el equipo de desarrollo prefiere confiar en un cliente de Java que se basa en IcedTea. El problema es que aun asi, hay ocasiones en las que esta vía tampoco funciona, en cuyo caso (y afortunadamente) podemos acceder por SSH. Por ejemplo:

ssh root@192.168.2.1

Archivos de localización

Aparentemente, algunas plantillas de OpenVZ vienen sin archivos de localización para reducir el tamaño del archivo, por lo que habrá que generarlos (incluso para el idioma inglés). Por ejemplo:

locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8

Usuario de trabajo

Creamos ahora el grupo admin (necesario para la administración via web):

groupadd admin

Para la administración web, creamos un usuario y lo asignamos a ciertos grupos privilegiados:

adduser operador
usermod -a -G admin,sudo operador
chmod u+s /usr/bin/sudo

Repositorio y paquetes de software

Agregamos el repositorio de Zentyal a los orígenes de software:

echo "deb http://ppa.launchpad.net/zentyal/2.2/ubuntu lucid main" >> /etc/apt/sources.list

Si pretendemos utilizar Zarafa, también debemos agregar otra entrada:

echo "deb http://archive.zentyal.com/zentyal 2.2 extra" >> /etc/apt/sources.list

Ahora importamos la clave pública con la que se autentican los paquetes:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 10E239FF

Una vez obtenida la clave, actualizamos la lista de paquetes:

apt-get update

Como paso opcional podemos instalar aptitude, muchos lo encuentran más cómodo para la gestión de los paquetes y sus dependencias:

apt-get install aptitude

Módulos

Nos cercioramos de que los archivos necesarios para los módulos del kernel estén creados, y reiniciamos el contenedor para mayor seguridad de que todas las modificaciones están activas:

depmod -a
reboot

Instalación

Ahora procedemos a instalar Zentyal propiamente. Podemos utilizar el metapaquete llamado zentyal, o también especificar los paquetes que deseamos instalar. Incluso, para cerciorarnos de que dispondremos de todos los paquetes que deseamos, podríamos hacer una instalación simulada, por ejemplo:

aptitude -Rsv install zentyal-{antivirus,ebackup,bwmonitor,ca,dhcp,dns,samba,firewall,zarafa,squid,jabber,l7-protocols,mailfilter,mail,monitor,ntp,network,printers,trafficshaping,usercorner,users,webmail,webserver}

No obstante, en este tutorial vamos a instalar solamente dos paquetes básicos, y el resto se instalará desde la interfaz gráfica:

aptitude -Rv install zentyal-{core,software}

Una vez realizado esto, procedemos a instalar cualquier actualización de seguridad:1)

aptitude full-upgrade

Finalmente, reiniciamos el servidor para cerciorarnos de que todo cargará correctamente:

reboot

Ya con esto, deberíamos poder acceder a la administración web. En este caso, mediante la dirección https://192.168.2.1 (la misma que establecimos antes).

Debemos acceder con el usuario que creamos al efecto, al cual en este tutorial hemos llamado “operador”. Una vez en la interfaz web, podemos instalar el resto de los paquetes, y realizar la configuración de Zentyal.

Configuración

(Pendiente) FIXME

Notas

Este tutorial puede mejorarse, especialmente aportando detalles en la sección de configuración. Parte de la información que aquí se encuentra fue tomada de un mensaje enviado a la lista gutl-l por el colega Carlos R. Laguna.

Atribuciones

1)
Hay quienes prefieren utilizar safe-upgrade, pero para una PC virtual nueva no hay nada que temer.