martes, 5 de febrero de 2019

Configurar IP Pública a container LXD

Para asignar una IP pública a nuestro container de modo que el servidor web sea público en Internet procedemos de la siguiente manera.

1) creamos un profile para utilizar macvlan
lxc profile create macvlan




2) configuramos una interface macvlan en ese profile
lxc profile device add macvlan eth0 nic nictype=macvlan parent=enp1s0



3) chequeamos que sea correcta la configuración
lxc profile show macvlan
 









4) creamos el container seleccionando el profile macvlan y default
lxc launch --profile default --profile macvlan ubuntu-daily:14.04 observatorio




5) logeamos en el contenedor para listar la interface
lxc exec observatorio bash

















6) editamos una configuración estática con la Ip pública y gateway. Reiniciamos el contenedor
 vi /etc/network/interfaces.d/eth0.cfg









7) Instalamos el metapaquete lamp-server para publicar nuestro sitio web
apt install lamp-server^










Fuente:
https://blog.simos.info/configuring-public-ip-addresses-on-cloud-servers-for-lxd-containers/

viernes, 1 de febrero de 2019

Backup of line de contenedores LXD

La forma más sencilla de mantener copias de seguridad de contenedores es con un servidor LXD remoto. Sin embargo, si quisiésemos guardar el backup en soporte óptico u otro que no sea online podemos hacerlo de esta manera:

1) Creamos un snapshot del container
lxc snapshot observatorio ubnt16






2) Publicamos una imagen del snapshot con un alias
lxc publish observatorio/ubnt16 --alias obs-backup




3) exportamos la imágen creada del snapshot
lxc image export obs-backup




Este paso nos va a crear un tarball con el fingerprint de la imagen que es el archivo que debemos resguardar como backup

4) Borramos la imagen publicada en el punto 2.
lxc image delete obs-backup







En un escenario que puede ser un nuevo servidor o el mismo en que ha sido inicializado LXD el proceso de restauración consta de los siguientes pasos

1)restauramos la imagen del backup

lxc image import TARBALFile --alias obs-backup



2) creamos el container desde esa imágen

lxc init obs-backup observatorio



3) borramos la imagen

lxc image delete obs-backup




4)  iniciamos el container
lxc start observatorio






fuente:
https://discuss.linuxcontainers.org/t/backup-the-container-and-install-it-on-another-server/463/4

jueves, 31 de enero de 2019

administrar contenedores con LXC

lxc es un cliente para contenedores LXD. con el mismo podemos ejecutar comandos, manejar archivos y en general realizar todas las tareas administrativas en los SO de los contenedores.

veamos que distribución tiene el contenedor:

lxc exec observatorio -- lsb_release -a





 chequeamos la configuración de red:

lxc exec observatorio -- ip a l





se observa que no tenemos ip configurada en el adaptador de red. Sin embargo aquí esta la primer ventaja al administrar contendores. De la misma manera que podemos ejecutar comandos también podemos obtener un shell dentro del contenedor

lxc exec observatorio -- sudo --login --user ubuntu






En esta instancia, los procesos de instalar LAMP y migrar las bases de datos y directorio se realizan directamente en ubuntu.

cambiamos la configuración de red para que obtenga ip por dhcp y comprobamos:





creamos un snapshot del contenedor

lxc snapshot observatorio ubnt16







Creamos un nuevo contenedor a partir del snapshot

lxc copy observatorio/ubnt16 ProxyBibcyt









martes, 29 de enero de 2019

Migrar servidores virtualbox a LXD


Ante la puesta en producción de un nuevo servidor web que contiene otros servidores virtualizados con virtualbox decidí poner en práctica parte de lo aprendido en TUASySL y migrar a LXD lo que en principio trae la ventaja de utilizar los recursos de una forma más adecuada y eficiente.

No es exactamente una migración ya que no voy a convertir las vm en contenedores sino que voy a crear contenedores y migraré a esa infraestructura los servidores web migrando, sí en este caso, los contenidos del servidor.

ubuntu server 16.04 LTS ya trae instalado LXD por default por lo que solo toca configurarlo.

Agregamos nuestro usuario al grupo lxd para poder realizar las tareasa administrativas de containers

sudo usermod --append --groups lxd hector
 

Vamos a usar ZFS como sistema de archivos para los contenedores, para ello instalamos las herramientas necesarias
 
sudo apt-get install zfsutils-linux


 Iniciamos el servicio lxd

sudo lxd init







como se puede observar se nos hace una serie de preguntas referidas a las características que tendrá el container, el tipo de conexión, la configuración de la red, etc.

Ya tenemos configurado el bridge en nuestro host para acceder al container






comprobamos que lxd esta funcionando listando los contenedores.

lxc list






descargamos un contenedor ubuntu
lxc init ubuntu:16.04 observatorio



con lxc init solo descargamos el contenedor, sin iniciarlo

lxc list








Fuentes:
https://www.digitalocean.com/community/tutorials/how-to-set-up-and-use-lxd-on-ubuntu-16-04
https://discuss.linuxcontainers.org/t/give-public-ip-one-container-with-custom-bridge/297