¿Puede Ansible crear instancias EC2??

¿Puede Ansible crear instancias EC2??
Lo más probable es que, si está mirando este tutorial, no necesita una introducción a Ansible. Sin embargo, no está de más hacer un resumen rápido.

Ansible es la herramienta de gestión de configuración más popular y probablemente potente. Se crea para facilitar la administración y la configuración de hosts remotos utilizando un conjunto de comandos definidos como tareas.

Funciona utilizando módulos desarrollados para tareas específicas, como administrar usuarios, administrar archivos, instalar y eliminar paquetes de software, y muchos más.

Esta guía utilizará el módulo AWS Ansible para suministrar y administrar una instancia de EC2. Comenzaremos con los conceptos básicos de configurar una cuenta de AWS, instalar Ansible, y finalmente cubriremos cómo trabajar con el módulo AWS Ansible.

¿Qué es una instancia de EC2??

La primera pregunta que debe abordar es: ¿Qué es un EC2?? Si eres nuevo en la computación en la nube y AWS, esto puede sonar nuevo para ti.

Amazon Elastic Compute Cloud, o Amazon EC2 para abreviar, es un servicio proporcionado por Amazon Web Services (AWS) para permitirle crear y administrar instancias de servidor en la nube de AWS.

La capacidad de girar servidores remotos configurados con características como CPU, memoria, disco, redes, sistema operativo y más por unos pocos clics es muy beneficioso. Elimina la necesidad de invertir en hardware y elimina preocuparse por el cableado de los dispositivos.

Las instancias de Amazon EC2 son uno de los componentes básicos más fundamentales de AWS Cloud Computing.

No nos sumergiremos profundamente en cómo funciona o los modelos de precios y configuración para AWS. Consulte el sitio de AWS para obtener más información.

Configuración del medio ambiente

El primer paso es configurar nuestros entornos. Necesitaremos una cuenta de AWS, Ansible y Python para esta guía.

Recomendamos usar la última versión de Ansible y Python.

Instalar Ansible

Este tutorial mostrará la instalación y la configuración de Ansible en un sistema basado en Debian. Consulte nuestros otros tutoriales para aprender a instalarlo en otras distribuciones.

Abra el terminal y edite sus repositorios de software.

sudo vim/etc/apt/fuentes.lista

Agregue la siguiente entrada al archivo:

Deb http: // ppa.plataforma de lanzamiento.net/ansible/ansible/ubuntu focal main

A continuación, ejecute los comandos como se muestra a continuación:

sudo apt-get install gnupg
sudo apt-key adv-keyserver keyserver.ubuntu.com--recv-keys 93c4a3fd7bb9c367
actualización de sudo apt-get
sudo apt-get install ansible

Una vez que haya instalado Ansible, podemos configurar y configurar Python.

Instalar python3, python3-pip

Para instalar Python3 y Pip en Debian 11, ejecute los comandos como se muestra:

actualización de sudo apt-get
sudo apt-get install python3.9 Python3 -PIP -y

Los comandos de arriba instalarán Python versión 3.9 y el pip3 en su sistema.

Instalar boto

El siguiente paso es instalar Boto. Boto es un poderoso paquete de Python que proporciona una interfaz para interactuar con los servicios de AWS utilizando Python.

Para instalar la última versión del paquete BOTO usando PIP como se muestra en el comando a continuación:

sudo pip3 instalar boto3

Una vez que todas las herramientas y paquetes se han instalado correctamente, podemos crear libros de jugadas Ansible para inicializar una instancia de EC2.

Crear libro de jugadas de EC2 Ansible

Abra la terminal y cree un libro de jugadas Ansible que termine con un .extensión YML. Edite el archivo con su editor de texto favorito y agregue el libro de jugadas como se muestra a continuación:

---
- Nombre: Ansible Crear instancia EC2
Anfitriones: localhost
gather_facts: falso
tareas:
- Nombre: provisión una instancia de EC2
EC2:
Región: US-East-2
Nombre de la llave: Ansible-EC2-SSH-Key
instance_type: t2.micro
Imagen: AM1-123456
Espera: si
Conde: 1
Grupo: Sample_Servers
asigne_public_ip: sí
Registrarse: Amazon_ec2
Delegate_to: localhost

Crear un par de claves SSH

Una vez que el libro de jugadas esté configurado, cree un par de claves SSH para iniciar sesión en la instancia de EC2 una vez aprovechado. Asegúrese de crear una clave con un nombre similar al definido en el parámetro de nombre de tecla en el libro de jugadas anterior.

ssh -keygen -t rsa -b 4096 -f ~/.SSH/Ansible-EC2-SSH-Key

Agregar acceso de AWS y clave secreta

El siguiente paso es agregar nuestras credenciales de AWS a nuestro libro de jugadas. Para simplificar, agregaremos las credenciales al libro de jugadas en formato simple.

Nota: No exponga su acceso de AWS y la llave secreta dentro de un libro de jugadas en la vida real. Considere el uso de variables o herramientas de entorno como Ansible Vault.

---
- Nombre: Ansible Crear instancia EC2
Anfitriones: localhost
gather_facts: falso
tareas:
- Nombre: provisión una instancia de EC2
EC2:
Región: US-East-2
Nombre de la llave: Ansible-EC2-SSH-Key
instance_type: t2.micro
Imagen: AM1-123456
Espera: si
Conde: 1the
Grupo: Sample_Servers
asigne_public_ip: sí
vpc_subnet_id: predeterminado
aws_access_key: *************** XXXX
aws_secret_key: ********************
Registrarse: Amazon_ec2
Delegate_to: localhost

Lo anterior muestra el nuevo libro de jugadas con las credenciales de AWS expuestas. Evitar esto!!

Una vez que tenga el libro de jugadas de configuración, ejecutelo usando el comando:

Ansible-Playbook Create-EC2.YML

El comando anterior debe ejecutar el libro de jugadas anterior y crear una instancia de EC2.

Comprender el libro de jugadas

Entendamos ahora el libro de jugadas proporcionado en los ejemplos anteriores. Tenga en cuenta que solo nos centraremos en la parte de EC2 del libro de jugadas.

  1. Región: este parámetro define la región de AWS al crear la instancia. Puede consultar las regiones disponibles para usar en el siguiente recurso.
  2. El nombre de la tecla define el par de claves SSH para usar en la instancia creada. Asegúrese de que la clave ya exista.
  3. Instance_type: define el tipo de instancia para crear. Consulte el siguiente recurso para obtener más información.
  4. Imagen: establece la ID de AMI para usar al crear la instancia.
  5. Espere: un valor booleano para determinar si Ansible debe esperar a que la instancia esté en el estado deseado antes de devolver.
  6. Recuento: el número total de instancias para crear.
  7. Grupo: establece los grupos de seguridad para la instancia de EC2.
  8. Asigne_public_ip: valor booleano para definir si a las instancias se les debe asignar una dirección IP pública dentro de la VPC.
  9. VPC_SUBNET_ID - Define la ID de subred debajo de la cual se debe iniciar la instancia de EC2.

Usando el módulo AWS Ansible, puede usar los argumentos anteriores para crear una instancia de EC2.

Clausura

Esta guía proporciona un tutorial sobre la creación de una instancia de Amazon EC2 utilizando el módulo AWS Ansible.