Chef y Azure
Chef, qué es?
Para los que pensaban que Chef y Azure no tenian conexión alguna en este nuevo mundo que está imponiendo el término DevOps, les comento que se pueden hacer muchas cosas utilizando ambas herramientas, obteniendo el mejor potencial de cada una.
Chef es una plataforma de automatización, de gran alcance, que transforma infraestructura compleja en código. Ya sea que esté operativo en la nube, on-premises, o híbrido, Chef automatiza cómo se configuran, implementan y administran las aplicaciones a través de la red, sin importar el tamaño de las mismas.
Forma de trabajo
En primer lugar el ciclo de funcionamiento de Chef lo desencadena el usuario escribiendo “ recetas” que especifican como Chef gestiona las aplicaciones de servidor y los servicios (como IIS, SQL, etc.), y de que manera se pretenden configurar.
Estas recetas, que pueden agruparse para facilitar la gestión en cookbooks (libros de cocina), describen una serie de instrucciones que deben ejecutarse: que paquetes se deben instalar, que servicios deben estar en ejecución, o que archivos tienen que ser modificados. Todas estas instrucciones diversas pueden configurarse para versiones específicas de software y pueden asegurar que el software va a estar instalado de forma correcta, basado en las dependencias establecidas.
Requisitos
Vamos a comenzar a detallar que vamos a necesitar para estos ejemplos:
Azure: Obviamente vamos a tener que tener una suscripción de Azure para poder utilizar. En caso de que no tengan ninguna, accediendo al siguiente enlace pueden crear una trial.
Text Editor: Un editor de texto que ustedes prefieran (VS Code, Atom, Sublime, Notepad++, etc).
PuTTTY: Cliente SSH y Telnet para Windows.
Environment setup
En esta parte del ejemplo vamos a detallar como obtener un Chef server desde Azure y cómo descargar algunas de las herramientas para poder comenzar a trabajar con chef y Azure.
Comenzaremos accediendo al portal de Azure (http://portal.azure.com/).
Para crear el servidor de Chef desde Azure, vamos a +New e ingresar en el cuadro de busqueda: Chef Server 12, BYOL, para después seleccionar el resultado:
Luego seleccionar el modo Classic, y por último Create:
Después nos toca definir el Hostname, la Password, el tipo de vm y el resource group:
También podemos como configuración opcional definir la parte de networking:
Y al finalizar los requerimientos de configuración, vamos a poder acceder a crear nuestro recurso y realizar la implementación:
Ahora vamos a ver desde el portal el proceso de creación y nos va a alertar al momento de finalizar:
Completando la implementación de Chef
Teniendo el servidor implementado en Azure, continuando con esta pequeña introducción de Chef y Azure, vamos a conectarnos con nuestro servidor por medio del cliente PuTTY.
Para conectarnos debemos acceder usando el DNS externo de nuestro servidor Chef. Éste dato lo encontramos accediendo al Resource Group creado para este fin, luego seleccionamos el cloud service y ahí lo obtenemos de la siguiente columna:
Sólo hay que utilizar el nombre sin el http:// adelante y la barra (/) al final:
Al abrir la sesión contra el servidor, nos va a aparecer una advertencia de seguridad. Simplemente le damos que sí:
Ingresamos las credenciales que definimos cuando creamos la VM, para luego comenzar a ejecutar algunos comandos.
El primero, va a actualizar el hostname:
sudo chef-marketplace-ctl hostname chef-XXXX.cloudapp.net
Luego de haber configurado el nombre, debemos terminar la instalación ejecutando lo siguiente:
sudo chef-server-ctl marketplace-setup -u chefAdmin -p XXXX
(Cambiar los datos por los ingresados anteriormente)
Al finalizar el proceso, nos va a solicitar ingresar:
- Nombre
- Apellido
- Organización
Después nos va a consultar si aceptamos el Chef License Agreement y al finalizar esta etapa tenemos nuestro servidor Chef implementado en Azure listo para usar!
Accedemos a la dirección del servidor, ingoramos la advertencia de seguridad y listo! Podemos acceder al portal:
En próximas entregas vamos a ver que podemos hacer con Chef y Azure para poder administrar y configurar nuestros servidores.
Saludos,
Comments