Docker Containers – ¿Que son?, despliegue en local y Azure (3 de 3)

Buenas

Primero que todo me gustaría dejaros un enlace a los dos primeros artículos de la serie los cuales podéis encontrar en los siguientes enlaces.
Post 1 – Definición de containers y diferencias con las máquinas virtuales
Post 2 – Despliegue de una aplicacion dockerizada en local

En esta tercera entrada con la que concluimos esta serie de tres explicaremos como desplegar un Ubuntu en Azure el cual ya incorpora el engine de docker y como desplegar una aplicación dockerizada en el mismo. Para ello seguiremos los siguientes pasos.

1 – Nos logamos en el portal nuevo de azue accesible desde la url https://portal.azure.com

2- Pinchamos en new everything y tecleamos docker como criteria de búsqueda.

3- En nuestro caso crearemos un Ubuntu donde se desplegará el engine de docker, para ello seleccionamos este tipo de virtual machine y pulsamos en créate

4- Definimos los parámetros de nuestra máquina, como son el hostname, usuario, password y tipo de máquina virtual, datacenter de azure en el que alojaremos …. y pulsamos en create. La máquina se arrancará auntomaticamente tras sear creada

5- Abrimos putty y nos conectamos por ssh a la máquina que acabos de crear y nos logamos en la misma

6- Seguimos los pasos detallados en los puntos del 13 al 17 del segundo artículo de la serie el cual podéis encontrar en el siguiente link.

7- Tras ejecutar el comando detallado en el punto 17 tomaremos nota del puerto que usara la aplicación para definirlo como endpoint en nuestra vm de azure, como podéis ver en nuestro caso usa el puerto 49153

8- Creamos el endpoint en azure

9- Abrimos el navegador y probamos la aplicación.

Espero que os resulte de interes.

Un saludo.

Docker Containers – ¿Que son?, despliegue en local y Azure (2 de 3)

Buenas

Primero que todo animaros a leer el primer árticulo de la serie el cual podéis encontrar en el siguiente link. En este primer árticulo empecé la serie explicando de manera teorica que son los containers y su diferencia principal con las máquinas virtuales

Según lo prometido en esta segunda entrada de la serie veremos cómo desplegar una aplicación dockerizada en local usando boot2docker. Para ello seguiremos los siguientes pasos:

1- Descargamos la iso de boot2docker la cual podemos encontrar por ejemplo en el siguiente link

https://github.com/boot2docker/boot2docker/releases

2- Nos creamos una máquina virtual usando nuestro hypervisor favorito, la maquina virtual creada será muy básica en cuanto a hardware teniendo 1 vcp, 512 mb de ram y disco ide de 8 gb igualmente deberá tener dos adaptadores una configurada en bridge para que tenga salida a internet y otra para que sea accesible únicamente por el host. Esta máquina virtual la configuraremos también para que arranque desde el cd donde pincharemos la iso recién descargada y tras arrancar la máquina este será el resultado.

3- Ejecutamos el comando ifconfig el cual nos permitirá ver la configuración tcp/ip de nuestros adaptadores, como podéis ver en el pantallazo adjunto en nuestro caso el adaptador eth1 tiene la ip 192.168.1.19

4- Abrimos un cliente ssh como puede ser putty y conectamos usando este protocolo a nuestra ip. El usuario por defecto es docker y la password tcuser.

5- Una vez conectados por ssh el siguiente paso será configurar el almacenamiento de nuestra vm como persistente, para ello ejecutamos el siguiente comando
fdisk -l /dev/sd?

6- Seguidamente ejecutaremos el siguiente comando para particionar el disco
sudo fdisk /dev/sda

Una vez ejecutado el comando debemos responder a las preguntas con los parámetros que nos proporciona el asistente de creación de particiones, en el pantallazo superior podéis ver la opciones que yo he escogido

7- Tras crear la partición el siguiente paso será formatear la misma ejecutando el siguiente comando:
sudo mkfs.ext4 -L boot2docker-data /dev/sda1

8- El commando ejecutado en el punto 7 nos permitirá tener el disco que usaremos para almacenar las aplicaciones dockerizadas listo, el siguiente paso será reiniciar la máquina virtual y volver a conectarnos por ssh para tener la opción montar el disco

9- Una vez reiniciada la máquina el siguiente paso será montar el disco ejecutando el siguiente comando.
mount | grep sda

10- Llegados a este punto ya tendremos nuestra vm lista para desplegar aplicaciones dockerizadas, para poder asegurarnos que realmente es así ejecutaremos el siguiente comando.
docker version

Con nuestra máquina virtual totalmente preparada para correr aplicaciones dockerizadas ahora procederemos a descargar una aplicación de ejemplo la cual desplegaremos en nuestra máquina virtual siguiendo los siguientes pasos:

11- Descargamos el paquete de aplicación de ejmeplo en formato zip desde la siguiente página
https://github.com/tutumcloud/docker-hello-world

12- Descomprimimos el contenido del zip

13- Seguidamente debemos copiar los archivos descargados en la máquina virtual. Esta opción se puede realizar de diferentes maneras pero para mi las mas cómoda es usar filezilla para crear una conexión ssh de transferencia de ficheros, la cual nos permitirá copiar los archivos a la máquina virtual.

14- Posteriormente navegamos en nuestra sesión ssh al directorio donde hemos copiado la aplicación y ejecutamos el siguiente comando para crear la imagen de aplicación dockerizada:
docker build -t tutum/hello-world .

15- Una vez desplegada la imagen ejecutaremos el siguiente commando para hacer un push de la misma en el registro.
sudo docker push tutum/hello-world

16- Llegados a este punto debemos ejecutar la aplicación con el siguiente comando
sudo docker run -d -p 80 tutum/hello-world

17- La ejecución del comando anterior nos mostrará un container ID el cual referenciaremos en el siguiente comando para asignarle un puerto externo
sudo docker port container_id 80

18- Ya tenemos todos listo. Como podemos observar en el pantallazo anterior nuestra aplicación está corriendo por el puerto 49153. Para testear que la misma funciona correctamente abriremos una navegador y nos conectaremos por http a la ip de la máquina virtual y puerto indicado.

Todos estos serían los pasos necesarios para desplegar una aplicación dockerizada en local usando boot2docker, en el siguiente post de la serie veremos como desplegarla en azure.

Espero que os resulte de interés

Un saludo

Docker Containers – ¿Que son?, despliegue en local y Azure (1 de 3)

Buenas,

Tras la reciente anuncio de partnership que Microsoft Corp y Docker Inc hicieron el paso 15 de octubre de 2014 el termino containers irrumpiendo con fuerza tanto en el mundo itpro como en el de desarrollo.

En este primer artículo de la serie que hoy comienzo me gustaría explicar ¿Qué son los costainers? y en que se diferencian de las máquinas virtuales. En el segundo artículo de la serie explicaremos como desplegar localmente una aplicación web basada en containers usando boot2docker y terminaremos la serie explicando como desplegar esta misma aplicación en Azure.

Una vez hecha esta pequeña introducción sobre el contenido que cubriremos en la serie pasaremos a explicar que es Docker.

Docker nace como una plataforma abierta basada en Linux y que está especialmente pensada para ejecutar aplicaciones distribuidas. La plataforma docker está formada por un engine, un runtime, un herramienta de packaging, un hub y un cloud service que nos permite compartir aplicaciones y automatizar workflows. Entre las principales virtudes de la plataforma cabe destacar las siguientes:

– Las aplicaciones dockerizadas se crean con una capa de abstracción que aísla totalmente la capa de aplicación y sus dependencias del sistemas operativo en el que se ejecuta lo que nos permite crear entornos standard de desarrollo, calidad y producción sin demasiados esfuerzos

– Las aplicaciones dockerizadas están basadas en un engine standard dándonos total flexibilidad a la hora de elegir donde correr nuestras aplicaciones ya sea en on-promise o en cualquier nube pública.

– La infraestructura que soporta las aplicaciones basadas en docker es fácilmente escalable dependiendo de la demanda.

– Las aplicaciones basadas en docker se pueden desarrollar usando cualquier lenguaje de desarrollo y son totalmente portables.

– Docker ofrece un hub con más 13.000 aplicaciones que puede ser un punto de partida perfecto para los profesionales que empiezan a tomar contacto con esta tecnología

Referente a las diferencias principales entre máquinas virtuales y containers basados en docker creo que queda bastante bien explicada en la siguiente imagen.

Como se puede observar las aplicaciones basadas en docker comparten únicamente el engine y cada aplicación y sus dependencias corre en procesos aislados y hace uso de recursos dedicados aunque comparten el kernel del host con otros containers.

Espero que os resulte de utilidad, en el siguiente post veremos como usar boot2docker y desplegaremos una aplicación dockerizada en local.

Un saludo.

Procedimiento de instalación y requerimientos de Netwrix Auditor 6.5

Buenas,

En este post pretendo cubrir el procedimiento de instalación así como los requisitos mínimos de sistema para la plataforma de Netwrix Auditor la cual ya detalle como configurar de manera básica para la supervisión, auditoría y monitorización de Active Directory en este otro post

Antes de descargar Netwrix Auditor y comenzar con la instalación del mismo es importante revisar que la máquina en la que instalaremos la herramienta cumple los requisitos mínimos de software y hardware para ejecutar la misma. Dichos requisitos son los siguientes:

- Hardware

- Software

Igualmente es importante mencionar que si pretendemos usar Netwrix Auditor for Active Directory los controladores de dominio a auditar deben correr bajo Windows Server 2003, Windows Server 2008/R2 o Windows Server 2012/R2. Por lo tanto se soportan todas las versiones de Windows Server para las que Microsoft actualmente ofrece soporte.

Tras comprobar que la máquina en la que instalaremos Netwrix Auditor cumple los requisitos de software y hardware, el siguiente paso será descargar la herramienta y probarla de manera gratuita tras pasar por el siguiente link:

Link de descarga

Una vez descargados y descomprimidos los instalables ejecutamos el fichero Netwrix_Auditor para lanzar el instalador y seguimos los siguientes pasos:

1- En este primera pantalla del asistente pulsaremos en Install para instalar todas soluciones de Netwrix:

2- Aceptamos los términos del acuerdo licencia y pulsamos en Next

3- Elegimos el directorio de instalación y pulsamos en Install. En este momento se realizará la instalación de la plataforma de Netwrix:

4- Una vez terminada la instalación el asistente nos pregunta si queremos ejecutar la aplicación, aquí pincharemos en Yes

5- El siguiente paso, ya dentro de la consola será configurar la base de datos y las opciones de los informes (reports), para ellos seleccionamos cualquier report y pinchamos en Click here para habilitar los mismos

6- Seguidamente pinchamos en Configure

7- En este pantalla del wizard debemos especificar si queremos usar una instancia de sql existe o permitir a la herramienta que nos configure una nueva instancia de SQL 2012 express edition. En nuestro caso instalaremos una nueva instancia.

8- Seguidamente indicamos si queremos que el asiste descargue SQL o por el contrario somos nosotros quien le indicamos el path de un instalador previamente descartado. En mi caso eligiere la segunda opción y pulsamos en Next

9- Seguidamente verificamos que las opciones de sql y reporting services sean correctas y pulsamos en Next

10- Finalizamos las opciones de configuración de reporting pulsando en Finish

Estos serían todos los pasos a realizar para instalar Netwrix Auditor y configurar las opciones de reporting, las cuales como podéis observar se apoyan en una instancia de sql express.

Espero que os resulte de utilidad y prometo seguir escribiendo sobre las funcionalidades de auditoría y reporting que nos ofrecen los productos de Netwrix.

Un saludo

Dos scripts de power shell imprescindibles para monitorizar tu Hyper-V

Buenas,

Simplemente publicar los links de descarga a dos scripts que nos permiten monitorizar nuestro Hyper-V los cuales considero imprescindibles y de gran ayuda para conocer de un vistazo la salud del hypervirsor, máquinas virtuales y replicación.

El primer de los script mencionados ha sido creado por Serhat Akinci, MVP de virtuallization. Este script examina nuestro entorno de hyper-v y nos generar un reporte html indicándonos el status de la salud del mismo. Este script puede ser personalizado igualmente para enviar los reports via mail.

Adjunto os dejo el link de descarga del script y un link dentro del blog de Serhat donde podréis encontrar un ejemplo de un report generado por la herraminta.

Link de descarga:
https://gallery.technet.microsoft.com/Hyper-V-Reporting-Script-4adaf5d0

Report de ejemplo:
http://www.serhatakinci.com/files/get-hypervreport-v1-0-demo-output.html

El segundo de los scripts que considero de gran utilidad cuando trabajamos con Hyper-V replica fue creado hace ya algún tiempo por Sangeeth, ingeniero de virtualization en Microsot. Este Script nos permite monitorizar el estado de replicación de nuestras vms tanto en entornos de cluster como de single node y también nos genera un report en formato html el cual se puede distribuir fácilmente por mail.

El formato de salida del reporte tiene el siguiente aspecto.

Y el script se puede descargar desde aquí.
https://gallery.technet.microsoft.com/Replication-Health-Mailer-4066632c#content

Espero que os resulte de utilidad.

Un saludo

Auditando los cambios en directorio activo con Netwrix Auditor

Buenas,

Hoy me gustaría contaros como utilizar la herramienta Netwrix Auditor for Active directory, la cual me parece muy interesante, para auditar las acciones que se realizan a nivel de administración de directorio activo como pueden ser modificaciones en la membresía de grupos o eliminación de objetos.

El procedimiento de instalación de la herramienta será cubierto en otro post y este es el principal motivo por el cual no voy a detallar el mismo en este, para instalar el aplicativo debemos seguir los pasos del wizard de instalación y seleccionar la instancia de Base de datos que usara la herramienta, dicha instancia puede ser una instancia de SQL existente o bien una nueva instalación de sql express edition 2012 la cual podemos lanzar desde el mismo wizard de instalación.

Una vez con la herramienta instalada y con la consola de gestión de la misma abierta vamos a detallar los pasos que debemos seguir para añadir el dominio que queremos gestionar.

1-Pinchamos en Managed Object – Create a New Managed Object

2- Elegimos domain como objeto a gestionar

3- Elegimos el nombre del dominio a gestionar y la cuenta de servicio que usaremos para leer la información, la cual debe tener privilegios de Domain administrator.

4- Seleccionamos el target que queremos auditar, en esta demo solamente Active Directory.

5- Indicamos al asistente que queremos habilitar los reports y el mismo nos detecta los parámetros de configuración teniendo en cuenta los datos de la instancia definida en la instalación.

6- Esta siguiente pantalla del asistente nos pregunta si queremos habilitar State-in time reports, esta funcionalidad crear una instancia del estado del sistema cada día y nos permite generar reportes los cuales nos permiten realizar comparaciones con el estado de los objetos en el pasado, al no ser el objetivo principal de nuestro demo, no habilitaré esta funcionalidad.

7- Indicamos que queremos usar ligthweight agent y avanzamos en nuestro asistente, este tipo de agentes reducen drásticamente el tiempo necesario a la hora de capturar logs.

8- Dejamos el asistente que nos seleccione automáticamente los objetos a Auditar y pinchamos en Next

9- El asistente nos permite añadir un remitente para enviarle los cambios realizados en el asistente de configuración, no lo haremos en nuestro caso y pulsaremos en Next

10- Este paso del asistente nos permitirá configurar si queremos definir alertas en tiempo real via correo electrónico si sucede alguno de los los eventos detallados en el pantallazo adjunto

11- Por último pinchamos en Finalizar y ya tendremos configurado Netwrix Auditor para auditar los cambios realizados en nuestro directorio Activo.

Una vez configurada en la herramienta ejecutaremos un reporte para verificar que la misma es capaz de detectar y leer los cambios realizados en Active directorio

Como podéis observar, en nuestro ejemplo se ha detectado perfectamente que el usuario testing fue eliminado por el usuario administrador.

Espero que os resulte de utilidad y que os animes a probar esta herramienta de cual escribiré más artículos relacionados con alguna otra de las múltiples funcionalidades que ofrece.

Un saludo

Hyper-V Vnext, production o standard checkpoints

Buenas tardes
Hoy me gustaría hablaros sobre production checkpoints la cual es una de las funcionalidades anunciadas en Vnext sobre la que ya he recibido alguna que otra consulta.

Primero que todo, me gustaría recordar que los checkpoint standard las cuales se incorporan desde las primeras versiones del hypervisor y nos permitan capturar el estado de una determinada máquina virtual (memoria, cpu y estado de discos) en un determinado momento al cual podremos revertir la máquina en caso de ser necesario, para ello Hyper-V utiliza los servicios de VSS que incorpora el propio hypervisor.

Por otro lado,Los production checkpoints utilizan tecnología de backup a nivel de sistema operativo guest para crear el checkpoint o Snapshot de la máquina virtual, cuando iniciamos un production checkpoint el hypervisor hacer una llamada a los servicios VSS del sistema operativo guest, los cuales serán los encargados de crear dicho checkpoint, como podéis imaginar al ser el guest quien se encarga de realizar la instantánea los datos que se encuentran en memoria cuando tomamos la instantánea no son capturados.

Una vez explicadas las diferencias entre production y standard checkpoint mi recomendación será usar production checkpoint siempre que sea posible, de hecho esta en la configuración por defecto en Vnext como se puede ver en el pantallazo adjunto. Los production checkpoint nos permiten tener checkpoint consistentes de aplicaciones que hacen uso intensivo de memoria como pueden ser Sql o Exchange, los cuales tendríamos grandes dificultades para revertir a un estado consistente usando checkpoint standard

Espero que os sirva de utilidad.

Un saludo

Azure Site Recovery, configuración sin SCVMM

Buenas,

Durante el verano escribí una seríe de tres artículos en los que explicaba como configurar disaster recovery to azure para máquinas virtuales que estaban corriendo en nuestros hyper-v on-premises, o lo que es lo mismo como replicar nuestras máquinas virtuales corriendo en hyper-v en azure con el objetivo de habilitar un escenario de disaster recovery en caso de tener una catástrofe en el sitio donde corren los hyper-v. Estos tres árticulos los podéis encontrar aquí.

Azure Site Recovery (1 de 3 configuración de azure)
https://blogs.itpro.es/samuellt/2014/08/21/azure-site-recovery-1-de-3-configuracion-de-azure

Azure Site Recovery (2 de 3 configuración de SCVVM)
https://blogs.itpro.es/samuellt/2014/09/01/azure-site-recovery-2-de-3-configuracion-de-scvvm

Azure Site Recovery (3 de 3 Configuración final y replicación de máquinas)
https://blogs.itpro.es/samuellt/2014/09/08/azure-site-recovery-3-de-3-configuracion-final-y-replicacion-de-maquinas

En estos tres artículos se detallada como implementar dicha configuración usando SCVMM el cual era un prerequisito cuando se lanzó Azure site Recovery en version Beta. Sin embargo hoy me gustaría comentaros que SCVMM ha pasado a ser un componente opcional a la hora de desplegar este escenario y por lo tanto ya es posible repicar nuestras máquinas virtuales a Azure simplemente disponiendo de un host con Hyper-V, para ello deberemos seguir los siguientes pasos:

1- Confirguramos un Vault en Azure exactamente igual que detallábamos en el post 1 de la serie

2- En el Dashboard de site recovery dentro de azure indicamos que la replicación será “between azure an on-premises Hyper-V site and azure”

3- Posteriormente en la parte de preparación de Hyper-v Server, descargamos la clave de registro de nuestros hyper-v y el provider.

4- Ejecutamos el asistente de instalación del provider en nuestro servidor de hyper-V. El asistente de instalación es bastante sencillo y en el mismo deberemos especificar los datos de conexión con el vault de azure en el que se almacenarán nuestras máquinas.

5- Por último simplemente crear los grupos de protección en azure y replicar las máquinas cuyo procedimiento es idéntico al detallado en el post 3 de la serie.

Espero que resulte de utilidad.
Feliz Navidad.
Un saludo

RDCMan V 2.7 y Veeam task manager for Hyper-V

Buenas

Hoy me gustaría daros a conocer dos herramientas muy ligeritas y muy facilitas de usar que se han liberado esta semana y que son de gran utilidad para administrar para administrar entornos de Hyper-V.

RDCMan V.2.7 es la última versión de la herramienta de gestión de escritorio remotos de Microsoft. Este herramienta nos permite establecer una conexión por rdp contra una máquina virtual que este corriendo en un host de Hyper-V aunque dicha máquina virtual no este conectada la red. Para definir dicho conexión tendremos que definir la dirección de conexión del host al igual que el id de la máquina virtual a la que queremos saltar como se puede ver en el pantallazo adjunto.

Esta versión de RDCMan la podéis descargar desde el siguiente link

http://www.microsoft.com/en-us/download/details.aspx?id=44989

Veeam task manager for Hyper-V Esta herramienta es sencilla de usar y útil en parte iguales :-) Como nos podemos imaginar por su nombre esta herramienta nos permite monitorizar de manera conjunta y usando una única consola el consumo de cpu y de ram de nuestras vms y del host.

El link de descarga de esta herramienta es el siguiente.

http://hyperv.veeam.com/free-task-manager-hyper-v-performance-monitoring/

Espero que os resulte de útilidad.

Un saludo

Virtual Machine Configuration version en HyperV Vnext

Buenas,

Una de la funcionalidades que más me gusta de las que incorporará la próxima versión de hyperV y con la que estoy jugando actualmente es virtual machine configuration version. Esta funcionalidad nos permitirá trabajar con máquinas virtuales version 5 (compatibles con hyperV 2012 r2 e Hyper-v Vnext) y versión 6 (compatibles únicamente con Hyper-v Vnext). Cuando nosotros movemos (live migration) o hacemos un export/import desde una máquina que viene de HyperV 2012 r2 a un host corriendo con HyperV vnext esta permanece en versión 5 dicho estado nos permite hacer un movimiento de vuelta o un rollback de la máquina a un host con la versión 2012 r2.

Sin embargo cuando creamos una nueva máquina virtual desde cero en un host corriendo bajo Vnext esta se crea directamente en versión 6 lo cual significa que la misma es una únicamente compatible con host corriendo HyperV Vnext.

Para comprobar en que versión están corriendo nuestra máquinas virtuales lo haremos ejecutando el siguiente comando de PowerShell.

Get-VM * | Format-Table Name, Version

Como podéis ver en el pantallazo adjunto, en mi caso tengo corriendo una vm en versión cinco que proviene de un host con HyperV server 2012 R2 y otra corriendo en versión seis que ha sido creada desde 0 en un host de Vnext.

Una vez que tengamos nuestros hosts corriendo en vnext y estemos seguros que nuestra máquinas no correrán de nuevo en host que ejecuten Hyper-V server 2012 R2 podemos actualizar la versión de lás vm ejecutando el siguiente comando.

Update-VmConfigurationVersion vmname

Que en nuestro caso sería

Está ultima instrucción requiere confirmación y que la vm no este en ejecución.

Espero que os resulte de interés.

Un saludo