Skip to content
PSanchezR edited this page Feb 1, 2014 · 8 revisions

###Ejercicio1:Instala LXC en tu versión de Linux favorita. Normalmente la versión en desarrollo, disponible tanto en GitHub como en el sitio web está bastante más avanzada; para evitar problemas sobre todo con las herramientas que vamos a ver más adelante, conviene que te instales la última versión y si es posible una igual o mayor a la 1.0.

Para instalar LXC utilizamos apt-get como se muestra en la siguiente captura:

Instalación lxc

Para probar LXC paso a instalar un ubuntu en un contenedor lxc con el comando "sudo lxc-create -t ubuntu -n contenedorUbu", la muestra de que se ha creado con éxito es:

contenedor

###Ejercicio2: Comprobar qué interfaces puente se han creado y explicarlos.

Para ver los interfaces puente que se han creado utilizamos la orden "brctl show", que en mi caso da como salida:

interfaces puente

Como muestra la captura se ha creado un puente llamado "lxcbr0" creado por LXC para mi contenedor de Ubuntu, el interfaz se llama veth41L3KB y es un interfaz de ethernet virtual asociado al contenedor de forma que la salida a la red de ese contenedor se hace a traves del mismo usando como "gateway" la maquina anfitriona.

###Ejercicio3: 1. Crear y ejecutar un contenedor basado en Debian. 2. Crear y ejecutar un contenedor basado en otra distribución, tal como Fedora. Nota En general, crear un contenedor basado en tu distribución y otro basado en otra que no sea la tuya. Fedora, al parecer, tiene problemas si estás en Ubuntu 13.04 o superior, así que en tal caso usa cualquier otra distro.

  1. Este apartado ha sido resuelto en el ejercicio1 de este tema.

###Ejercicio 4:1. Instalar lxc-webpanel y usarlo para arrancar, parar y visualizar las máquinas virtuales que se tengan instaladas. 2. Desde el panel restringir los recursos que pueden usar: CPU shares, CPUs que se pueden usar (en sistemas multinúcleo) o cantidad de memoria.

  1. Para instalarlo debemos descargarlo mediante wget , el fichero se encuentra en "http://lxc-webpanel.github.io/tools/install.sh". Con la siguiente orden se descarga y se instala:

"wget http://lxc-webpanel.github.io/tools/install.sh -O -| sudo bash".

instalacion webp

Una vez instalado pasamos a probarlo abriendo un navegador y entrando en la url localhost:5000

login webpanel

El interfaz de manejo de los contenedores con lxc web panel es:

webpanel

Para arrancar un contenedor es tan sencillo como hacer click sobre el nombre del contenedor a arrancar situados en la parte izquierda del interfaz, y en la nueva página que se abre hacer click sobre "start at boot" como muestra la siguiente captura:

start at boot

  1. Para restringir los recursos utilizamos la misma pantalla que para arrancar la máquina, en este caso navegamos hacia la parte inferior de la página y vemos como podemos introducir la cantidad de recursos que queremos que utilice dicho contenedor, en mi caso he insertado los siguientes datos:

recursos

Por último solo tenemos que pulsar el botón apply de la parte inferior de la pantalla y todas las configuraciones se aplicarán sobre dicho contenedor.

###Ejercicio 5:Comparar las prestaciones de un servidor web en una jaula y el mismo servidor en un contenedor. Usar nginx.

###Ejercicio 6: 1.Instalar juju. 2.Usándolo, instalar MySql en un táper.

Para instalar juju es tan sencillo como seguir los pasos que se nos indican en el material de clase: 1)"sudo add-apt-repository ppa:juju/stable" "sudo apt-get update && sudo apt-get install juju-core"

Instalación juju

  1. Ejecutamos "juju init" y en el fichero que nos crea "environments.yaml" comentamos la linea que pone amazon y añadimos una igual pero con local "default: local".

enviroment a local

  1. Instalamos mongodb-server con "sudo apt-get install mongodb-server"

Instalacion mongodb-server

Una vez tenemos ya instalado lo necesario para crear el taper pasamos a crearlo con juju bootsrap -e local

Esto no produce ninguna salida y si nada más ejecutarlo miráramos juju status pondría "pending" en los estados, pero si esperamos unos 10 o 15 minutos todo estará en "started", como pone a continuación:

juju status

###Ejercicio 7: 1.Destruir toda la configuración creada anteriormente. 2. Volver a crear la máquina anterior y añadirle mediawiki y una relación entre ellos. 3. Crear un script en shell para reproducir la configuración usada en las máquinas que hagan falta.

Eliminamos las configuraciones realizadas en el ejercio anterior con las siguientes ordenes, deben de estar en este orden:

  1. sudo juju destroy-unit mysql/0
  2. sudo juju destroy-unit mediawiki/0
  3. sudo juju destroy-machine 1

Con esto ya tendremos eliminado el taper. tambien aunque es mas radical podemo eliminar todo el entorno con "juju destroy-environment"

Para la nueva creación voy a realizar el script del apartado 3 y lo utilizaré para crear el taper de nuevo, éste quedará :

#!/bin/bash

Inicializa y selecciona el entorno juju

juju init

juju switch local

Crear el contenedor juju e instala las "herramientas"

juju bootstrap

juju deploy mediawiki

juju deploy mysql

Conecta mediawiki con la base de datos de mysql

juju add-relation mediawiki:db mysql

juju expose mediawiki

Para ejecutar este script debemos ser su. La salida del script es:

script juju

Por último tras esperar unos minutos el status pasara a "started":

juju status

###Ejercicio 8:Instalar libvirt. Te puede ayudar esta guía para Ubuntu. La instalación es muy sencilla, sólo hay que instalar los paquetes:

instalacion kvm

y Después:

instalación virtinst

Con estos paquetes ya podríamos crear, clonar y gestionar máquinas virtuales con los distintos comandos de la biblioteca libvirt.

###Ejercicio 9:Instalar un contenedor usando virt-install.

Lo primero que hacemos es crearnos una carpeta donde queramos "encapsular" nuestra máquina, esto lo hacemos con mkdir. Lo siguiente que tenemos que hacer es tener instalado la herramienta, lo cuál hice en el ejercicio anterior. Y por último antes de proceder a la creación de la máquina es tener una imagen con el S.O. que deseemos instalar. Una vez listo todo el material necesario pasamos a la creación de la máquina, el comando que vamos a utilizar es :

sudo virt-install -n contenedorVirtual -r 1024 --disk path=/home/ubuntu/taper/contenedorVirtual/disco.img,bus=virtio,size=5 -c ubuntu-13.10-desktop-amd64+mac.iso --accelerate --network network=default,model=virtio --connect=qemu:///system --vnc --noautoconsole -v

En el comando anterior se especifican las caracteristicas que tendrá la máquina, como puede ser el tamaño de ram con "-r" la ruta donde se almacenara la máquina con "--disk path=...", el instalador del SO con "-c", etc.

Una vez ejecutado el comando para ver el proceso de instalación utilizamos el virt-viewer, en mi caso : virt-viewer -c qemu:///system contenedorVirtual. Esto nos muestra lo siguiente:

instalando virt-install

Ya solo tendríamos que continuar la instalación del sistema operativo como si de una máquina normal se tratase.

###Ejercicio 10:Instalar docker.

Para instalar docker hay que seguir una serie de pasos, no es tan sencillo como utilizar apt-get docker simplemente, hay que actualizar los repositorios y ejecutar:

sudo apt-get install linux-image-extra-uname -r sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\ > /etc/apt/sources.list.d/docker.list" sudo apt-get update sudo apt-get install lxc-docker

instalacion docker

sudo docker run -i -t ubuntu /bin/bash

creación contenedor con docker

###Ejercicio 11:Instalar a partir de docker una imagen alternativa de Ubuntu y alguna adicional, por ejemplo de CentOS. Buscar e instalar una imagen que incluya MongoDB.

Lo primero que tenemos que hacer es:

Lo que activará el servicio de docker para poder utilizarlo. Una vez hecho esto pasamos a instalar un primer contenedor debian "wheezy" con la orden:

instalar wheezy con docker

Esta orden comienza la descarga del sistema operativo y la creación de un contenedor con dicho sistema.

Una vez terminado el proceso de descarga y instalación podemos probar a ejecutar comandos sobre el contenedor con:

prueba wheezy

Ahora para instalar una distribución centos podemos utilizar la orden:

instalación docker centos

La prueba de que sea a instalado correctamente es:

prueba centos en docker

Para buscar una imagen que incluya MongoDB solo tenemos que ejecutar la orden:

buscar imagen con mongo en docker

Como se puede ver he filtrado la búsqueda para que el sistema operativo sea ubuntu, ahora paso a instalar esa imagen utilizando docker:

instalando mongo con docker

###Ejercicio 12: Crear un usuario propio e instalar nginx en el contenedor creado de esta forma.

Lo primero que hay que hacer es arrancar un shell en el contenedor, para eso ejecutamos:

arrancar shell

Tras esto creamos un usuario y comprobamos que se ha creado con:

creacion user

E instalamos nginx con:

instalacion nginx docker

Terminado el proceso de instalación probamos que nginx se ha instalado correctamente:

nginx funcionando

###Ejercicio 13: Crear a partir del contenedor anterior una imagen persistente con commit.

Para poder guardar el contenedor en una imagen primero tenemos que saber el id de la maquina a guardar, esto lo hacemos con:

contenedores activos

Una vez conocemos el id tenemos que pasar a saber cual es el id largo de dicho contenedor, esto lo hacemos con:

inspect

Por último conociendo ya el ID largo podemos hacer el commit para crear la imagen:

imagenes docker

###Ejercicio 14: Crear una imagen con las herramientas necesarias para DAI sobre un sistema operativo de tu elección.

Voy a utilizar la imagen debian "Wheezy" creada en los ejercicios anteriores, para instalar todos los paquetes necesarios abro un terminal en dicho contenedor como hemos visto en los ejercicios anteriores:

sudo docker run -i -t janos/wheezy /bin/bash

Una vez en el terminal instalo los paquetes necesarios para DAI con la orden apt-get:

paquetes necesarios para DAI

Clone this wiki locally