Categories
Community General In detail OpenSource Security Social

Presentación del libro “DevOps y seguridad cloud” en el FNAC Fòrum

WhatsApp Image 2020-01-24 at 07.12
El 23 de enero tuvo lugar en el Fórum Fnac de la Illa Diagonal la presentación del libro “Devops y seguridad cloud”, de los autores Jordi Guijarro Olivares(i2CAT), Joan Caparrós Ramírez (CSUC) y Lorenzo Cubero Luque (NetCentric).
El acto ha contado con la participación del Dr. Josep Jorba, director del Postgrado de Cloud Computing de la UOC, el Dr. Remo Suppi, profesor de la UAB y el Sr. Raúl Sánchez de Rancher Labs que han acompañado a los tres autores.
El libro, publicado por UOC Media (el sello editorial de la UOC), surge como parte del material elaborado en el postgrado en Cloud Computing de la UOC, programa dirigido a los que quieran orientar su experiencia en el ámbito de la computación y modelos en nube. Con el objetivo de capacitar a la empresa ya sus profesionales de IT, ofrece los conocimientos, habilidades y herramientas necesarias para perfiles especialistas en el ámbito devops y de cloud, un perfil profesional altamente demandado en el mercado laboral , tanto en el ámbito nacional como internacional.
Así, su lectura ayuda a profundizar en retos, como la integración continua (CI) y la entrega continua (CD) de la mano de tecnologías de containers como Docker y plataformas como Kubernetes (K8S), bajo servicios de infraestructura como Amazon Web Services (AWS), herramientas de automatización como terraformar y de testing como Jenkins. Además, incluye casos de uso para ir más allá también para la parte práctica.
http://www.editorialuoc.cat/devops-y-seguridad-cloud
Gracias por vuestra asistencia, muy contentos de como fue la presentación y las primeras opiniones sobre el Libro.
https://www.amazon.es/Devops-Seguridad-Cloud-657-Manuales/dp/8491806237/ref=sr_1_1?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=devops+y+seguridad+cloud&qid=1575970105&sr=8-1
Os dejamos una galería de fotos del evento:


 

Categories
Community General In detail Social

Primer Meetup Cloud Admins Barcelona (23/1 18:30 FNAC L'Illa Diagonal)

 
BANNER DEVOPS Y SEGURIDAD CLOUD
¿Trabajar en Devops? https://www.meetup.com/es-ES/Cloud-Admins-Barcelona/events/267701751/
Retos como la integración continua (CI) y la entrega continua (CD) de aplicaciones de la mano de tecnologías de containers como Docker y plataformas como Kubernetes (K8S), bajo servicios de infraestructura como Amazon Web Services (AWS), o OpenNebula, herramientas de automatización como Terraform y de testing como Jenkins…
Pero no todo va de herramientas y tecnología, ¿Qué pasa con las metodologías? ¿Ágiles o no tan ágiles? ¿Otras modalidades de gestión? ¿Y respecto a la seguridad?
Algunas de estas preguntas y esperamos que alguna que plantees, serán tratadas en la presentación del libro “Devops y Seguridad Cloud” junto a sus autores y invitados como el Dr. Josep Jorba, Director del posgrado de Cloud Computing de la UOC y el Dr. Remo Suppi profesor de la UAB y colaborador en la UOC.
Nos vemos el próximo 23 de Enero a las 18:30 en el 1r Meetup de Cloud Admins Barcelona. Reserva tu agenda ->  https://www.meetup.com/es-ES/Cloud-Admins-Barcelona/events/267701751/
Cloud Admins Barcelona Team

Categories
Community General Guide In detail Interoperability OpenSource Security Social

LIBRO CLOUDADMINS: Devops y seguridad Cloud

Hola a tod@s,

NOVEDAD! LIBRO BY @cloudadms

Conceptos DevOps avanzados, casos de uso con Rancher (K8S), AWS, OpenNebula, Jenkins, Terraform
http://www.editorialuoc.cat/devops-y-seguridad-cloud
devopsyseguridadcloud
 
DevOps y seguridad cloud surge como parte del material elaborado en el posgrado en Administración y Cloud Computing de la UOC, programa dirigido a los que deseen orientar su experiencia al ámbito de la computación y modelos cloud. Con el objetivo de capacitar a la empresa y a sus profesionales de IT, ofrece los conocimientos, habilidades y herramientas necesarias para perfiles especialistas en el ámbito DevOps y computación en la nube, un perfil profesional altamente demandado en el mercado laboral, tanto en el ámbito nacional como internacional.
 
La nube comprende el concepto básico por el que definiremos la entrega de servicios informáticos a clientes o usuarios por medio de una red. Este nuevo modelo de prestación de servicios permite añadir una capa de abstracción frente a los clientes que no saben dónde estos están ubicados (normalmente alojados en varios proveedores y repartidos por todo el mundo) ni la gestión de recursos que usan. Los servicios en la nube atienden las peticiones recibidas y aportan una flexibilidad y adaptabilidad de recursos frente a la demanda de forma totalmente transparente.
En el libro una vez vistos los conceptos básicos a modo de introducción, se centra en la materia necesaria para tener una visión más avanzada sobre el enfoque del rol de DevOps.

  • Uno de los puntos en los que centraremos nuestra atención es la gestión de la configuración, que nos permitirá acercar todos los entornos que utilizaremos para que sean lo más parecidos posible al entorno de producción final.
  • Uno de los pilares de DevOps es la integración continua que permite agregar los pequeños cambios realizados por los desarrolladores al conjunto de software desarrollado de manera que puedan ser testados y desplegados en entornos de desarrollo lo antes posible. • Veremos también diferentes estrategias de ‘testing’, todas ellas con el objetivo de minimizar los posibles errores que puedan producirse en los entornos productivos. Asimismo, se intentan detectar los errores en etapas tempranas del desarrollo cuando su corrección es más sencilla y menos costosa. • Como continuación de la integración continua veremos el concepto de entrega continua en su aplicación más práctica, donde aprovecharemos para explicar un extenso ejemplo.

Y en consecuencia, ¿interesado/a en cómo afrontarlo?

  • La gestión de infraestructura y de los diferentes entornos como resultado de las distintas etapas de la entrega continua. Tanto la infraestructura como los diferentes entornos deben ser extremadamente flexibles para adaptarse rápidamente a los cambios que se puedan producir en las diferentes etapas del desarrollo.
  • La gestión de los datos también representa un reto en cuanto que deben ser persistentes y estar disponibles a pesar de que el software que da acceso a ellos va cambiando constantemente.

usecases
Ahora depende de ti, reserva tu libro y sumérgete en retos como son la integración continua (CI) y la entrega continua (CD) de la mano de tecnologías de containers como Docker y plataformas como Kubernetes (K8S), bajo servicios de infraestructura como Amazon Web Services (AWS), herramientas de automatización como Terraform y de testing como Jenkins. Practica y vive una experiencia que te llevará al siguiente nivel. Y no olvides de compartir tu experiencia con nosotros, menciona @cloudadms en Twitter. ¡SUERTE! http://www.editorialuoc.cat/devops-y-seguridad-cloud

Categories
Hybrid Clouds In detail OpenSource

Desplegando PaaS en un “click"

enter

Siguiendo en la línea del posts sobre Infraestructura como Código (IaC) con la herramienta Terraform, os traemos un nuevo tutorial para desplegar la plataforma de PaaS Rancher de forma totalmente automatizada utilizando RKE.

RKE es el acrónimo de Rancher Kubernetes Engine y se trata de un instalador de Kubernetes escrito en Golang. Es fácil de usar y no requiere mucha preparación por parte del usuario para comenzar.

Como en el tutorial anterior utilizaremos el provider de Terraform para OpenNebula, en esta ocasión utilizaremos una versión mejorada del provider desarrollado por el equipo de Blackberry.

Para acabar recordaros que el próximo 12 y 13 de Noviembre se celebra una nueva edición de la OpenNebulaConf en esta ocasión el lugar elegido a sido Amsterdam y algunos de los miembros de Cloudadmins estaremos allí y participaremos con la ponencia: Hybrid Clouds: Dancing with “Automated” Virtual Machines

Tutorial

Install Terraform

To install Terraform, find the appropriate package for your system and download it

$ curl -O https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.zip

After downloading Terraform, unzip the package

$ sudo mkdir /bin/terraform
$ sudo unzip terraform_0.11.10_linux_amd64.zip -d /bin/terraform

After installing Terraform, verify the installation worked by opening a new terminal session and checking that terraform is available.

$ export PATH=$PATH:/bin/terraform
$ terraform --version

Add Terraform providers for Opennebula and RKE

You need to install go first: https://golang.org/doc/install
Install Prerequisites

$ sudo apt install bzr

Use the wget command and the link from Go to download the tarball:

$ wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz

The installation of Go consists of extracting the tarball into the /usr/local

$ sudo tar -C /usr/local -xvzf  go1.10.linux-amd64.tar.gz

We will call our workspace directory projects, but you can name it anything you would like. The -p flag for the mkdir command will create the appropriate directory tree

$ mkdir -p ~/projects/{bin,pkg,src}

To execute Go like any other command, we need to append its install location to the $PATH variable.

$ export PATH=$PATH:/usr/local/go/bin

Additionally, define the GOPATH and GOBIN Go environment variables:

$ export GOBIN="$HOME/projects/bin"
$ export GOPATH="$HOME/projects/src"

After go is installed and set up, just type:

$ go get github.com/blackberry/terraform-provider-opennebula
$ go install github.com/blackberry/terraform-provider-opennebula

Post-installation Step

Copy your terraform-provider-opennebula binary in a folder, like /usr/local/bin, and write this in ~/.terraformrc:

$ sudo cp ~/projects/bin/terraform-provider-opennebula /usr/local/bin/terraform-provider-opennebula

For RKE provider, download the binary and copy in the same folder:

$ wget https://github.com/yamamoto-febc/terraform-provider-rke/releases/download/0.5.0/terraform-provider-rke_0.5.0_linux-amd64.zip
$ sudo unzip terraform-provider-rke_0.5.0_linux-amd64.zip -d /usr/local/bin/terraform-provider-rke
providers {
  opennebula = "/usr/local/bin/terraform-provider-opennebula"
}
providers {
  rke = "/usr/local/bin/terraform-provider-rke"
}

Install Rancher

This repository provide a TF file to install Rancher in a high-availability configuration. The goal is easily install a Rancher on machines running CentOS 7.
Clone this repo:

$ git clone https://github.com/mangelft/terraform-rke-paas.git

Create infrastructure

First we have to initialize terraform simply with:

$ terraform init

This will read your configuration files and install the plugins for your provider.
We let terraform create a plan, which we can review:

$ terraform plan

The plan command lets you see what Terraform will do before actually doing it.
Now we execute:

$ terraform apply

terraform-apply
 
oneKubectl is the CLI tool for interacting with the Kubernetes cluster. Please make sure these tools are installed and available.
To make sure it works, run a simple get nodes command.

$ kubectl get nodes

kubectl
 
 
That’s it you should have a functional Rancher server. Point a browser at the hostname: https://rancher.my.org.
 
rancher-dashboard
 

Categories
General In detail OpenSource

Integración continua de infraestructura: Terraform & ONE

ScreenLa Infraestructura como Código (IaC) se está convirtiendo en uno de los elementos clave de los equipos Agile, ya que permite que la infraestructura ya no sea el cuello de botella dentro de nuestro pipeline CI/CD.
Una de las herramientas que se puede utilizar es terraform. Esta aplicación permite codificar la infraestructura según las necesidades del servicio y hacerlo de manera agnóstica al entorno cloud donde se ejecute. Por ello, la IaC nos puede ayudar a agilizar la creación y mantenimiento de infraestructuras de forma automatizada.
Dentro de la comunidad de la plataforma abierta de computación en la nube,  OpenNebula, Runtastic ha desarrollado un provider de OpenNebula para terraform, aprovechando la API OpenNebula XML/RPC. Este proveedor permite crear los principales recursos de OpenNebula, como una máquina virtual, un template, una red virtual o una imagen de disco.
En el siguiente tutorial, se detalla como instalar la herramienta i utilizarla con OpenNebula para desplegar un clúster de Kubernetes sobre Docker de forma totalmente automatizada con Terraform y Ansible.
Por último, recordaros que el próximo 24 de mayo, vuelve el “OpenNebula TechDay“,  a Barcelona que constará de un taller práctico donde se presentará esta plataforma, y se procederá a su instalación y se mostrará su funcionamiento y sus utilidades.
Ya podéis registraros al evento en el siguiente enlace! Y en breve tendréis también disponible la Agenda para la Jornada.

Tutorial

Deploying a Kubernetes Cluster to ONE with Ansible and Terraform

 Installing Terraform

To install Terraform, find the appropriate package for your system and download it

$ curl -O https://releases.hashicorp.com/terraform/0.11.4/terraform_0.11.4_linux_amd64.zip

After downloading Terraform, unzip the package

$ sudo mkdir /bin/terraform
$ sudo unzip terraform_0.11.4_linux_amd64.zip -d /bin/terraform

After installing Terraform, verify the installation worked by opening a new terminal session and checking that terraform is available.

$ export PATH=$PATH:/bin/terraform
$ terraform --version

Installing Terraform provider Opennebula

You need to install go first: https://golang.org/doc/install

Install Prerequisites
$ sudo apt install bzr

Use the wget command and the link from Go to download the tarball:

$ wget https://dl.google.com/go/go1.10.linux-amd64.tar.gz

The installation of Go consists of extracting the tarball into the /usr/local
 

$ sudo tar -C /usr/local -xvzf  go1.10.linux-amd64.tar.gz

We will call our workspace directory projects, but you can name it anything you would like. The `-p` flag for the `mkdir` command will create the appropriate directory tree

$ mkdir -p ~/projects/{bin,pkg,src}

To execute Go like any other command, we need to append its install location to the $PATH variable.

$ export PATH=$PATH:/usr/local/go/bin

Additionally, define the GOPATH and GOBIN Go environment variables:

$ export GOBIN="$HOME/projects/bin"
$ export GOPATH="$HOME/projects/src"

After go is installed and set up, just type:

$ go get github.com/runtastic/terraform-provider-opennebula
$ go install github.com/runtastic/terraform-provider-opennebula
Optional post-installation Step

Copy your terraform-provider-opennebula binary in a folder, like /usr/local/bin, and write this in ~/.terraformrc:

$ sudo cp ~/projects/bin/terraform-provider-opennebula /usr/local/bin/terraform-provider-opennebula

Example for /usr/local/bin:

providers {
  opennebula = "/usr/local/bin/terraform-provider-opennebula"
}
Install Ansible

We can add the Ansible PPA by typing the following command:

$ sudo apt-add-repository ppa:ansible/ansible

Next, we need to refresh our system’s package index so that it is aware of the packages available in the PPA. Afterwards, we can install the software:

$ sudo apt-get update
$ sudo apt-get install ansible

Deploy a Kubernetes cluster

Terraform code is written in a language called HCL in files with the extension “.tf”. It is a declarative language, so your goal is to describe the infrastructure you want, and Terraform will figure out how to create it. This repository provide an Ansible playbook to Build a Kubernetes cluster with kubeadm. The goal is easily install a Kubernetes cluster on machines running CentOS 7. 

$ git clone https://github.com/mangelft/terransible-kubernetes-cluster.git

First, initialize Terraform for your project. This will read your configuration files and install the plugins for your provider:

$ terraform init


In a terminal, go into the folder where you created main.tf, and run the terraform plan command:

The plan command lets you see what Terraform will do before actually doing it. To actually create the instance, run the terraform apply command:


You can access Dashboard using the kubectl command-line tool by running the following command:

$ kubectl proxy --address $MASTER_IP --accept-hosts='^*$'


The last step is to complete the cluster life cycle by removing your resources, do: terraform destroy

 Fuente: https://github.com/mangelft/terransible-kubernetes-cluster

Buen vuelo!

Categories
General In detail OpenSource

Docker Swarm y Consul con OpenNebula

Como continuación al post publicado sobre Docker Machine y OpenNebula, en esta ocasión veremos que con dicho driver también podemos implementar la funcionalidad de Docker Swarm.
docker-swarm-opennebula
Docker Swarm tiene la capacidad de balancear según la disponibilidad del clúster. Así pues, si por ejemplo en un clúster hay un contenedor y este deja de estar disponible, Swarm encarga de asignarlo a otro nodo disponible.
Para  poder implementar esta funcionalidad, hace falta tener instalado Docker Engine y Docker Machine con el driver para a OpenNebula.

Tutorial

El primer paso será crear una máquina virtual con Docker Engine para el servicio de discovery con Consul y arrancar un contenedor con consul:

docker-machine create -d opennebula --opennebula-network-id $network_id --opennebula-image-id $b2d_image_id --opennebula-b2d-size $volatile_disk_size consul
docker $(docker-machine config consul) run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap
CONSUL_IP=$(docker-machine ip consul)

Podemos verificar que funciona correctamente, accediendo a la IP de la máquina por el puerto 8500:
consul
 
 
 
 
 
 
 
 
 
 
 
Creamos una nueva máquina virtual, para el nodo máster del clúster:

docker-machine create -d opennebula --opennebula-network-id $network_id --opennebula-image-id $b2d_image_id --opennebula-b2d-size $volatile_disk_size --swarm --swarm-master --swarm-discovery="consul://$CONSUL_IP:8500" --engine-opt cluster-store=consul://$CONSUL_IP:8500 --engine-opt cluster-advertise="eth0:2376" swarm-master

Y tantas máquinas virtuales como nodos queramos que tenga nuestro clúster:

docker-machine create -d opennebula --opennebula-network-id $network_id --opennebula-image-id $b2d_image_id --opennebula-b2d-size $volatile_disk_size --swarm --swarm-discovery="consul://$CONSUL_IP:8500" --engine-opt cluster-store=consul://$CONSUL_IP:8500 --engine-opt cluster-advertise="eth0:2376" swarm-node-XX

opennebula_docker_machine1

docker-machine ls

docker_machine_ls1
 
 
Una vez tengamos creados los nodos que compondrán el clúster, podemos acceder al nodo máster con la siguiente comanda:

eval $(docker-machine env --swarm swarm-master)

Podemos ver la información y estado del clúster con el comando:

docker info

eval_info2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
También existe la opción de poder crear redes privadas dentro del clúster usuando el driver overlay:

docker network create --driver overlay --subnet=10.0.1.0/24 overlay_net
docker network ls

Una vez, tenemos el clúster en marcha, ya podemos utilizar Docker de la forma habitual:

docker pull nginx
docker run --name mynginx -d -p 80:80 nginx

nginx
 
 
nginx21
 
 
Siguiente paso… automatizar la elasticidad del clúster con OneFlow.
 
 
 

Categories
General In detail OpenSource

Docker Machine con el driver de OpenNebula

Siguiendo con la serie de posts sobre Docker, en esta ocasión os presentamos el driver de Docker Machine para OpenNebula, con el que podremos crear máquinas virtuales con Docker dentro de nuestra plataforma cloud.
docker_opennebula
Los requisitos para poder utilizar el driver son los siguientes:

  • Docker Machine 0.5+
  • OpenNebula 4.x+

Para la instalación del plugin basta con seguir todos los pasos descritos en la URL del repositorio:
https://github.com/OpenNebula/docker-machine-opennebula

Como utilizar el driver de OpenNebula con Docker Machine:

Para utilizar el driver sólo necesitaremos disponer de acceso a un cloud con OpenNebula i configurar las variables de entorno ONE_AUTH y ONE_XMLRPC para que apunten a nuestro cloud OpenNebula y una imagen ya preparada con Docker Engine.
OpenNebula dispone de dos imágenes en modo appliance que se pueden importar desde su marketplace:

Una vez dispongamos de la imagen con Docker Engine, ya podemos levantar una màquina virtual con el driver de Docker Machine para OpenNebula, con la ejecución del siguiente comando:

docker-machine  create --driver opennebula --opennebula-network-id $NETWORK_ID --opennebula-image-name boot2docker --opennebula-image-owner oneadmin --opennebula-b2d-size 10240 mydockerengine

one-docker-1
 
 
 
 
 
 
 
 
 
 
 
Podemos personalizar el comando con los siguientes parámetros:

--opennebula-cpu: CPU value for the VM
--opennebula-vcpu: VCPUs for the VM
--opennebula-memory: Size of memory for VM in MB
--opennebula-template-id: Template ID to use
--opennebula-template-name: Template to use
--opennebula-network-id: Network ID to connect the machine to
--opennebula-network-name: Network to connect the machine to
--opennebula-network-owner: User ID of the Network to connect the machine to
--opennebula-image-id: Image ID to use as the OS
--opennebula-image-name: Image to use as the OS
--opennebula-image-owner: Owner of the image to use as the OS
--opennebula-dev-prefix: Dev prefix to use for the images: 'vd', 'sd', 'hd', etc...
--opennebula-disk-resize: Size of disk for VM in MB
--opennebula-b2d-size: Size of the Volatile disk in MB (only for b2d)
--opennebula-ssh-user: Set the name of the SSH user
--opennebula-disable-vnc: VNC is enabled by default. Disable it with this flag

Ahora lo que haremos será conectar nuestra shell local a la de la máquina virtual para que cada vez que ejecutamos un comando de Docker, este dé órdenes al Docker Engine instalado en la máquina virtual de OpenNebula.
Obtenemos las variables de entorno de la máquina virtual.

docker-machine env mydockerengine

Link  a la shell.

eval "$(docker-machine env mydockerengine)"

Con esto ya podemos empezar a utilizar docker sobre la máquina virtual  que acabamos de crear:

docker pull nginx
docker run --name mynginx -d -p 80:80 ngin

image2016-3-16 19-21-38

Categories
General In detail OpenSource

How to install Terminix on Ubuntu 15.10

What is Terminix?
Terminix is a tiling terminal emulator based on the gnome-terminal VTE widget that allows you to arbitrarily split terminals horizontally and vertically. It has similar features like iTerm or Terminator.
More information: https://github.com/gnunn1/terminix
 

Terminix requires the following libraries to be installed in order to run:
* GTK 3.14 or later
* GTK VTE Widget 0.42
* Dconf
* GSettings
* DMD and DUB
Easy way to install DMD and DUB

sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update
sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring && sudo apt-get update
sudo apt-get -y install git build-essential
sudo apt-get -y install dmd-bin dmd-doc dub

 
Other options to install DMD and DUB

wget http://downloads.dlang.org/releases/2014/dmd_2.066.1-0_amd64.deb
dpkg -i dmd_2.066.1-0_amd64.deb
wget http://code.dlang.org/files/dub-0.9.25-linux-x86_64.tar.gz
unzip dub-0.9.25-linux-x86_64.tar.gz
mv dub /usr/local/bin

 
Main Installation 
If we have all the dependencies to Install Terminix on Ubuntu 15.10 or others Ubuntu versions, we can install Terminix with the next commands:

cd /
sudo unzip terminix.zip -d /
glib-compile-schemas /usr/share/glib-2.0/schemas/
cd /terminix-master

1st

dub build --build=release

 
2nd

./install.sh
Categories
General In detail

Docker for Dummies

Qué es Docker?

DockerLogo
Docker es un proyecto open-source que permite automatizar el despliegue de aplicaciones en entornos Linux. Está basado en el formato estándar de contenedores de Linux(LXC) y permite correr aplicaciones en ambientes aislados de manera ligera. Docker nos permite crear “imágenes” con nuestra aplicación y sus dependencias, garantizando que ésta funcionará, a escala, en producción o en cualquier otro ambiente. De esta manera evitamos el llamado “dependency hell” y facilitamos el desarrollo y mantenimiento de las aplicaciones.
A diferencia de las máquinas virtuales tradicionales, un contenedor Docker no incluye un sistema operativo independiente, sino que se basa en la funcionalidad del sistema operativo proporcionado por la infraestructura subyacente. Esto es gracias a usar contenedores de Linux (LXC), ya que corren sobre el mismo sistema operativo que el mismo host. Además usa AuFS1 para sistema de archivos y se encarga de las redes por los usuarios.
docker4
A continuación se presentan dos tutoriales para iniciarse con Docker y ver todas las possibilidades que ofrece el entorno. Para los tutoriales se ha utilizado la herramienta Docker Toolbox.
 
docker1
docker2

Tutorial 1: OpenLDAP / PhpLdapAdmin

Buscamos la imagen que nos interese, en nuestro caso OpenLdap, con el siguiente comando:

docker search openldap

Luego podemos descargar la imagen con el comando:

docker pull osixia/openldap

Una vez finalizada la descarga podemos consultar las imágenes que tenemos disponibles con el comando:

docker images

Cuando tenemos la imagen disponible ya podemos instanciar un contenedor:

docker –-name myldap run --env LDAP_ORGANISATION="CloudAdmins" --env LDAP_DOMAIN="cloudadmins.org" --env LDAP_ADMIN_PASSWORD="Admin" --detach osixia/openldap

Este comando lo que realiza es levantar un contenedor con los siguientes parámetros
–name el nombre asociado al contenedor
–env para definir varias variables de entorno que configuraran nuestro LDAP
Podemos comprobar los contenedores que están levantados, con el comando:

docker ps -a

También podemos obtener una Shell del contenedor con el comando:

docker exec -it myldap bash

o ejecutar comandos sobre el contenedor:

docker exec myldap ldapsearch -h localhost -D "cn=admin,dc=cloudadmins,dc=org" -w Admin

 
Para instanciar un contenedor con phpldapadmin realizamos la misma operación:

docker search phpldapadmin
docker pull osixia/phpldapadmin

Con el siguiente comando podemos obtener la IP del contenedor donde hemos instanciado nuestro LDAP:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' myldap

Finalmente, podemos instanciar el contenedor para administrar nuestro LDAP con phpldapadmin:

docker run -p 443:443 -e PHPLDAPADMIN_LDAP_HOSTS=172.17.0.2 -d osixia/phpldapadmin

Y así de una forma rápida tendríamos disponible nuestro servidor LDAP:
docker3
Podemos parar un contenedor:

docker stop myldap

Para borrar un contenedor deberíamos ejecutar el siguiente comando

docker rm myldap

Por último, para borrar la imagen descargada de Openldap, ejecutaríamos el comando:

docker rmi osixia/openldap

Tutorial 2: Crear una imagen desde un fichero Dockerfile

Un fichero Dockerfile es simplemente un fichero de texto que nos permite definir las instrucciones a seguir por Docker para construir una imagen.
En este ejemplo vamos a crear una imagen con un SO Centos 7 y le vamos a instalar el servidor web Apache:

FROM centos:latest
MAINTAINER http://www.centos.org
RUN yum -y update && yum clean all
RUN yum -y install httpd && yum clean all
EXPOSE 80
RUN rm -rf /run/httpd/* /tmp/httpd*
ENTRYPOINT /usr/sbin/apachectl -D FOREGROUND

RUN: Ejecuta una sentencia sobre la imagen base
EXPOSE: Expone el puerto 80 del contenedor para que pueda ser mapeado por la máquina anfitrión.
ENTRYPOINT: Indicamos que se ejecute apache2ctl -D FOREGROUND cada vez que arranquemos el contenedor.
Construimos la imagen con el comando:

docker build -t cloudadmins/centos7-httpd --file <DOCKERFILE_NAME> .

Finalmente, instanciamos nuestro contenedor con el comando:

docker run -d --name cloudadmins -p 80:80 -v <PATH_HOST>/www:/var/www/html cloudadmins/centos7-httpd

En esta ocasión hemos utilizado el parámetro -v para que el directorio /var/www/html del contenedor, sea el indicado en el comando de la máquina anfitrión.
 

Referencias i recursos

http://inlab.fib.upc.es/es/blog/docker-insights-des-de-la-jasp
http://media.fib.upc.edu/fibtv/streamingmedia/view/2/1128
 

Categories
In detail

Opennebula Cloud Conference otra vez en BCN (Oct 25-27 2016)

Hola,
Algunas novedades para ir empezando el 2016 (bueno ya empezado hace días…)

Después del éxito de la última edición, parece que repetimos y con un 40% de descuento si alguién se anima estos primeros meses a reservar su asiento :
Imatge inserida 1
http://opennebula.org/opennebulaconf-2016-oct-25-27-in-barcelona-again/
http://opennebula.org/get-the-best-price-on-opennebulaconf-2016/

También añadir que se disponen los resultados de la encuesta del 2015 para ONE, con cosas interesantes como el crecimiento notable en entornos productivos en la empresa/industria en escenarios híbridos y incluyendo hypervisores propietarios fuera del KVM como cabeza, Ceph pegando fuerte, etc.. A modo de resumen:

  • OpenNebula shows its increasing maturity, with 73% of deployments in production compared to 62% reported in our previous survey.
  • Growth in North America has accelerated, now representing 30% of responses, up from 20%.
  • KVM provides the majority of OpenNebula support, growing from 48% to 79%.
  • There is a high rate of adoption in VMware environments from 28% to 37%.
  • Ubuntu grows from 36% to 40% and Debian falls from 33% to 22% as operating systems to build the cloud.
  • The use of the EC2 cloud API decreases from 25% to 10%.
  • The use of Ceph has grown considerably from 17% to 40%.
  • The use of LVM as storage solution decreases from 22% to 12%.

Y +Info aquí

2015 OpenNebula Cloud Architecture Survey Results

Saludos y buena ya superada entrada de año!
ONEBCN User Group