Ansible: virtualización y nube
Objetivos del capítulo y requisitos
1. Contexto y requisitos
Este capítulo tratará los problemas de creación de máquinas presentando dos ejemplos: las máquinas virtuales “clásicas” en ESX y las máquinas virtuales en la nube con AWS.
Se recomienda tener algunos conocimientos en estos temas para poder implementar los ejemplos que serán explicados. Si no tiene estos conocimientos, no dude en hacerse ayudar por sus compañeros.
2. Archivos para descargar
Puede encontrar los ejemplos de los directorios inventarios y variables en el archivo comprimido capitulo-15.tar.gz que se encuentra en la página del libro en el sitio de Ediciones ENI.
Gestión de máquinas virtuales en ESX/VMware
1. Contexto y requisitos
Usted tiene un hipervisor ESX y no ha previsto migrar su infraestructura a la nube. Nada le impide continuar trabajando de esta manera.
Abordará algunos módulos Ansible que le permitirán gestionar la creación de máquinas virtuales con ESX. El capítulo no tratará la instalación de un ESX ni la creación de usuarios que serán necesarios para llevar a cabo los ejemplos.
2. Instalación de las bibliotecas necesarias
Tendrá que instalar unas cuantas bibliotecas Python para hacer funcionar esos módulos. He aquí el comando pip que le permitirá obtener todas las dependencias necesarias:
$ pip3 install pyvmomi
3. Características del ESX
Usará un pool de servidores ESX accesible a través del VCenter en la dirección «vcenter». La cuenta «ansible» podrá crear máquinas virtuales (VM). También tendrá una plantilla llamada «RHEL73» lista para ser usada para la creación de las VM.
4. Creación de la VM
El módulo que usará para realizar esta operación será vmware_guest. Necesitará proporcionar un cierto número de elementos a Ansible. En este caso, usará los campos siguientes:
-
El nombre de la VM con el campo name.
-
El campo hostname para indicar la dirección del servidor VCenter.
-
Los campos username y password para indicar quién será el usuario que tendrá los permisos necesarios para ejecutar las distintas operaciones.
-
El campo datacenter.
-
El campo folder para indicar dónde guardará su máquina.
-
El campo hardware para indicar las características técnicas de la VM (memoria, CPU, etc.).
-
El campo template para precisar la plantilla para la VM.
-
El campo state tendrá el valor poweredon para indicar que la VM será iniciada en el momento de su creación.
-
Finalmente, usará el campo validate_certs: no para evitar problemas relacionados con los certificados SSL. Si sus certificados son correctos, podrá omitir este campo.
Para simplificar la reutilización de esos elementos, externalizará los valores en un archivo llamado esx.yml. He aquí un ejemplo de la declaración de variables necesarias:
vmware_hostname:...
Gestión de la nube AWS
1. Contexto
Como vio anteriormente, las máquinas están alojadas en datacenters a disposición de la empresa que las utiliza. Esta gestión tiene distintas consecuencias. Cada empresa, ya sea una PYME o una multinacional, tiene que gestionar su parque informático. Esto comprende distintos aspectos:
-
Creación de los locales para alojar los servidores teniendo en cuenta los problemas intrínsecos a este alojamiento (climatización, electricidad, etc.).
-
Gestión de la red para estar conectado con el resto del mundo.
-
Gestión del dimensionamiento con respecto a las necesidades internas.
-
Gestión de la obsolescencia del parque informático.
-
Viabilidad de la plataforma (monitoreo, copia de seguridad, etc.).
No obstante, estos gastos están, a menudo, mal planificados. A veces es difícil gestionar algunas situaciones (especialmente la gestión de la obsolescencia).
Se puede entender la necesidad de tener un servidor dedicado para una aplicación, pero los gastos generales de funcionamiento serán demasiado importantes. Otro punto muy importante: disponer rápidamente de plataformas para las nuevas necesidades, las cuales todavía no han sido claramente identificadas.
La llegada de la nube ha solucionado en parte muchos de estos problemas. A partir de ahora se pueden crear servidores cuando sea necesario, ya no hace falta construir el datacenter. Y, como de costumbre, el uso de este nuevo tipo de herramientas puede tener consecuencias importantes:
-
La cuestión de la confidencialidad: a algunos clientes no les hará ninguna gracia no saber exactamente dónde se encuentran sus datos en la nube, ni quién podría tener acceso a ellos.
-
El control de las operaciones de instalación.
-
Y el problema de la facturación: como es muy fácil crear instancias, los gastos pueden ser muy importantes sin que los administradores se den cuenta.
Ansible podrá ayudarle en la gestión de estos dos últimos puntos. Ahora verá las operaciones siguientes:
-
Creación de instancias EC2.
-
Modificación a través de playbook de las VM EC2.
-
Supresión de las instancias al final del ejercicio.
2. Configuración de los accesos a la API de Amazon
Antes de lanzarse a la creación de los playbooks de gestión...