En esta publicación, llevaremos la automatización a un nivel superior al abordar la implementación de Elastic Cloud Enterprise (ECE) en la nube con Terraform y Ansible. Esta secuela de nuestra primera entrada detalla cómo extender la automatización a la provisión en la nube con Terraform, superando la manualidad en la provisión de instancias EC2 y la configuración de grupos de seguridad.
Mejorando la Metodología con Terraform
En la primera parte, cubrimos la implementación y configuración de ECE en tres zonas de disponibilidad en AWS utilizando Ansible. Sin embargo, la creación de instancias EC2 y la configuración de grupos de seguridad eran procesos manuales. En esta entrada, elevamos nuestra metodología al utilizar Terraform para automatizar tanto la provisión como la configuración de estas instancias y grupos de seguridad. Además, aprovecharemos Terraform para automatizar la instalación, configuración y ejecución del playbook Ansible desarrollado anteriormente.
Terraform: Más que una Herramienta, una Filosofía
Aclarando malentendidos, Terraform no tiene nada que ver con el dispositivo Genesis, como podría pensarse inicialmente. Según HashiCorp, los desarrolladores, es una herramienta para construir, cambiar y versionar infraestructuras mediante configuraciones de alto nivel: infraestructura como código. Esta característica resulta invaluable, ya que permite tener toda la configuración necesaria para poner en marcha y configurar la infraestructura en archivos de texto que pueden ser controlados por versiones y manipulados programáticamente.
Aplicabilidad en Diversos Proveedores de Nube
Aunque nos enfocamos en AWS en esta entrada, es importante destacar que Terraform no se limita a un único proveedor de nube. Puedes utilizar Terraform para aprovisionar y gestionar recursos en cualquier proveedor de nube. Asegúrate de explorar su lista de proveedores principales y no tan principales. Incluso tenemos un ejemplo utilizando GCP en nuestro repositorio de ejemplos en GitHub.
Pasos a Seguir
Siguiendo el ejemplo de instalación básica en la documentación de ECE, nuestros pasos difieren significativamente. Vamos a resumirlos de la siguiente manera:
Instalar Terraform
Consulta la documentación de HashiCorp para obtener las instrucciones detalladas. Asegúrate también de tener Ansible instalado, como se detalló en la primera entrada.
brew install terraform
brew install ansible
Es importante destacar que la configuración que utilizamos es compatible con la versión 0.12 de Terraform, específicamente la versión 0.12.19.
Definir la Infraestructura
Los pasos en esta tarea son:
- Iniciar tu configuración de Terraform.
- Explorar los archivos para comprender la configuración.
- Establecer algunas variables únicas para tu entorno.
Iniciar tu Configuración de Terraform
Para facilitar el proceso, clona nuestro repositorio de ejemplos en GitHub o descarga los archivos desde allí. Todos los cambios se realizarán en estos archivos.
git clone https://github.com/elastic/examples.git
cd /workspace/github/elastic/examples
cd Cloud\ Enterprise/Getting\ Started\ Examples/aws/terraform
Continuará...