LXC Web Panel para Linux Containers

Hace unos días estuvimos hablando de los Linux Containers (LXC), tanto del concepto en sí, como de su instalación y configuración en un servidor GNU Linux. Para ello utilizamos la consola de comandos o shell, en una distribución Debian “Jessie” En el artículo de hoy hablaremos de una interfaz gráfica (gui) llamada LXC Web Panel.

Sobre LXC Web Panel

Se trata de una interfaz gráfica, que funciona vía web, que nos facilita la interacción con los contenedores. Es software libre, ya que utiliza una licencia MIT. Si visitamos su web nos quedaremos gratamente sorprendidos, visitando su sección de pantallazos “screenshoots”. El problema reside en que según leemos sólo funciona sobre servidores Ubuntu, a partir de la versión 12.04 Por lo que he investigado un poco, y me he encontrado con un “fork” (enlace) que si funciona en diferentes distros, entre ellas, Debian. De hecho añade más funcionalidades y correcciones a “bugs” Entre estas funcionalidades se encuentra la capacidad de copias de seguridad, interfaz RestAPI o soporte para LDAP

Instalación sobre Debian “Jessie”

Antes de nada habilitaremos los repositorios “backports”, para así tener las últimas versiones de los programas. Podemos ver como hacerlo aquí. Y de paso actualizamos el sistema:

  1. apt-get -y update
  2. apt-get -y upgrade

Ahora seguiremos los pasos indicados en la página del proyecto en GitHub. Realizaremos la instalación manual, para así ver y comentar todos los pasos. Antes de nada nos descargaremos la llave pública del repositorio.

  1. #Instalamos curl
  2. apt-get -y install curl
  3. #Descargamos la llave pública
  4. curl https://packagecloud.io/gpg.key | apt-key add -

Y volvemos a refrescar los repositorios:

  1. apt-get -y update

Para verificar los repositorios, utilizaremos la herramienta de Debian, «debian-archive-keyring so»

  1. apt-get install debian-archive-keyring

Lo más probable es que ya lo tengamos instalado.  Y también instalamos, si no la tenemos, la herramienta necesaria para utilizar repositorios ubicados en url https.

  1. sudo apt-get install -y apt-transport-https

Añadimos los repositorios del proyecto, para así poder utilizarlos:

  1. touch /etc/apt/sources.list.d/claudyus_LXC-Web-Panel.list

Y utilizando un editor como nano, vim u otros. Lo editamos para añadir las líneas:

  1. deb https://packagecloud.io/claudyus/LXC-Web-Panel/ubuntu/ trusty main
  2. deb-src https://packagecloud.io/claudyus/LXC-Web-Panel/ubuntu/ trusty main

Si leemos la guía de instalación nos recomienda adaptar los repositorios a nuestro distribución, que en mi caso sería, cambiar «ubuntu» por «debian» y «trusty» por «jessie» Pero la cuestión es que aunque sí es verdad, que al realizar la actualización de repositorios todo funciona correctamente, al intentar instalar el instalador «lwp«, de la versión 0.9, no lo encuentra.  Por lo que, si lo dejamos como esta, funcionará correctamente.

Actualizamos repositorios y a posteriori instalamos el paquete.

  1. apt-get -y update
  2. apt-get -y install lwp

Todavía no hemos terminado. Para que el panel esté accesible debemos realizar un último paso. Debemos copiar el fichero /etc/lwp/lwp.example.conf al fichero /etc/lwp/lwp.conf

Sólo nos queda reiniciar el servicio «service lwp restart» y acceder al panel, mediante la url http://localhost:5000 La credencial de usuario es «admin» y la contraseña «admin«

Trabajar con LXC Web Panel

Vamos a empezar a trabajar, lo primero que veremos será el panel de acceso, donde debemos introducir las credenciales antes comentadas.

Panel de acceso a LXC Web Panel

Panel de acceso a LXC Web Panel

Una vez dentro podemos ver las diferentes secciones. Entre las que se encuentra en la parte izquierda la barra de herramientas, y justo en la parte derecha el visor de estado del servidor.

Vista general de LXC Web Panel

Vista general de LXC Web Panel

Ahora mismo sólo tenemos un contenedor creado, llamado «debian8» El panel nos muestra diferente información del servidor, tanto la CPU, el espacio utilizando en disco o la memoria disponible y utilizada. Si marcamos sobre el nombre del contenedor, veremos una serie de parámetros de su configuración, que podemos modificar.

Vista de contenedor en LXC Web Panel

Vista de contenedor en LXC Web Panel

Podemos cambiar su nombre, la configuración de red, si debe arrancar al inicio del sistema, entre otras muchas cosas. El resto de herramienta sería la configuración de red, la «API tockens» y un botón que nos permitá obtener información de la configuración, llamado «Check config» Si volvemos la vista al panel principal, tenemos varias opciones interesantes. Una de ellas nos permite clonar un contenedor determinado.

contenedores-lxc-debian-005

Indicaremos al sistema el nombre del contenedor a clonar, que nos aparecerá en un desplegable, y el nombre del nuevo contenedor clonado. La siguiente opción será «Create CT», que nos permitirá crear un contenedor, desde la interfaz web.

contenedores-lxc-debian-007

Una vez allí podemos utilizar un desplegable con diferentes distribuciones. El problema es que, a parte de la propia Debian, el resto de distros para poder utilizarlas ,debemos instalar para cada una de ellas, una serie de herramientas y librerías. Eso, quizás, lo veremos en otro capítulo. A modo de prueba, creamos un contenedor, utilizando Debian.

contenedores-lxc-debian-008

Una vez creado, puede tardar un rato, según la capacidad del servidor, los veremos creado:

portada-lxc-web-panel

Lo he llamado DebianWebServer-node1. Hay que tener en cuentra, que a diferencia de un contenedor clonado, que hereda la configuración del origen, el nuevo contenedor tiene la configuración vacía.  Otro apartado importante del panel son los «Backups CT» , que nos permitirá grabar una imagen del contenedor en una ubicación específica.

Con esto lo dejamos por hoy, espero que os haya parecido interesante. Si tenéis cualquier comentario, lo podéis dejar más abajo.