Debería utilizar Ansible para la automatización

Articulos tematica Microsoft

¿Ansible es el sistema de aprovisionamiento de software que estaba buscando? Aquí hay un vistazo a cómo configurarlo en Linux.

¿Cómo se sentiría si todo lo que necesitara fuera presionar un botón y todos sus sistemas estuvieran actualizados, todos los paquetes necesarios instalados y listos para funcionar? Suena fantástico, ¿verdad?

En el mundo moderno de la TI, los ingenieros de DevOps están haciendo realidad este sueño. Ahora tenemos herramientas como Ansible, que hace que los procesos de administración de TI sean más manejables y rápidos a través de unos pocos clics, lo que reduce los errores y la entrada manual de un humano.

Siga leyendo para aprender todo lo que necesita saber sobre Ansible, incluida una breve descripción general de cómo usarlo.

¿Qué es Ansible?

Ansible es un potente motor de automatización de código abierto. Es multiplataforma, lo que permite a los desarrolladores administrar dispositivos desde cualquier sistema operativo, incluidos Windows, macOS y Linux.

Ansible ofrece una variedad de características: administración de la configuración, aprovisionamiento en la nube de implementación de aplicaciones, actualizaciones del sistema, automatización de la seguridad, entrega continua y muchas más. Es una herramienta liviana y no requiere software o paquetes adicionales para ejecutarse, lo que facilita su implementación.

Funciones principales de Ansible

Las siguientes son algunas de las características que ofrece Ansible como herramienta de automatización.

Implementación de aplicaciones

Ansible permite a los desarrolladores implementar aplicaciones en servidores de forma rápida y sencilla. Elimina la necesidad de escribir código personalizado o realizar la administración de paquetes manualmente. En su lugar, define las tareas necesarias para que una aplicación se ejecute y las ejecute de forma remota en el sistema de destino en lugar de utilizar los libros de jugadas de Ansible. Puede enviar un solo Playbook a varios dispositivos simultáneamente y ejecutar la aplicación en numerosos servidores.

Aprovisionamiento en la nube

El aprovisionamiento en la nube es el método que utiliza la instalación, la configuración y la gestión de los recursos informáticos en la nube.

Ansible le permite automatizar las tareas de aprovisionamiento en la nube, incluida la configuración de la infraestructura, la configuración de hosts, la administración de interfaces de red, la administración de firewalls y usuarios en los hosts remotos.

Gestión de la configuración

La gestión de la configuración es otra característica de Ansible. Con los libros de jugadas de Ansible o los comandos ad-hoc, puede poner en funcionamiento rápidamente sus sistemas con unos pocos comandos. Dado que Ansible usa YAML como el lenguaje de configuración predeterminado, es fácil crear tareas en un formato legible por humanos y ejecutarlas en máquinas remotas.

Por ejemplo, si tiene un servidor recién aprovisionado, puede usar Ansible para actualizar el sistema, instalar los paquetes necesarios e iniciar los servicios en el servidor.

Automatización de seguridad

Ansible es útil en tareas de automatización de seguridad. Por ejemplo, con algunos comandos de Ansible, puede configurar reglas de firewall personalizadas, verificar si hay malware, limpiar su sistema con herramientas personalizadas y más. También le permite monitorear el estado de su sistema y realizar rápidamente copias de seguridad de su sistema en caso de falla.

Arquitectura Ansible

Aprendamos más sobre las partes que componen Ansible Engine.

Inventarios

Ansible gestiona hosts remotos mediante el uso de inventarios. Un inventario es un archivo de texto simple que contiene direcciones IP y nombres de host de máquinas remotas. Los hosts del archivo de inventario se pueden organizar en varios grupos, como servidores web, bases de datos, copias de seguridad, etc. La organización de hosts en grupos ayuda a los usuarios a ejecutar comandos en un grupo específico de máquinas.

Nota: Debe completar el archivo de inventario de Ansible con al menos un host antes de ejecutar cualquier tarea.

Playbooks

Los libros de jugadas de Ansible son archivos de texto simples escritos en YAML (YAML no es un lenguaje de marcado). Contienen instrucciones o comandos para ejecutar en un host remoto para realizar una tarea específica.

Dado que los libros de jugadas de Ansible están escritos en YAML, están en formato legible por humanos. Esto hace que Ansible sea muy fácil de usar y comprender, ya que los usuarios no necesitan dominar la nueva sintaxis. Cada libro de jugadas comprende al menos una o más tareas ejecutadas en todos o en hosts específicos.

Módulos

Ansible proporciona módulos a los usuarios. Los módulos son comandos que ayudan a administrar un host remoto desde el nodo de control. Estos módulos permiten a Ansible administrar usuarios, instalar y desinstalar paquetes, actualizar sistemas, etc. Se ejecutan en Playbooks para tareas específicas según sea necesario. Ansible proporciona más de 4600 módulos. Consulte todos los módulos de Ansible.

Complementos

La arquitectura de Ansible permite complementos personalizados. Ayudan a ampliar o mejorar la funcionalidad básica del motor Ansible. Aunque viene con varios complementos de forma predeterminada, también puede crear complementos personalizados para satisfacer sus necesidades.

API

Ansible amplía la funcionalidad al proporcionar a los usuarios varios puntos finales de API para depurar, ejecutar comandos, devoluciones de llamada y más.

Introducción a Ansible

Ansible es fácil y rápido de configurar y usar. Esta sección demostrará cómo instalar Ansible en una máquina host, configurar hosts remotos y realizar tareas básicas de automatización.

Ansible es multiplataforma y, por lo tanto, es compatible con los principales sistemas operativos. Para simplificar, esta guía discutirá la instalación de Ansible en una distribución de Linux basada en Debian. Verifique el proceso de instalación de Ansible para otros sistemas operativos.

Empiece por editar el archivo /etc/apt/sources.list

sudo vim /etc/apt/sources.list

Dentro del archivo, agregue las siguientes entradas:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

La entrada anterior agregará Ubuntu PPA a los repositorios de Debian, lo que le permitirá instalar Ansible.

A continuación, ejecute los siguientes comandos:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

$ sudo apt update

$ sudo apt install ansible -y

El primer comando agrega las claves requeridas.

Los siguientes comandos actualizan los repositorios de software y finalmente instalan Ansible.

Instalación de Ansible

Ahora que tiene Ansible instalado en su sistema, continúe.

Creando un Inventario

El primer paso antes de realizar cualquier tarea de automatización de Ansible es configurar un archivo de inventario de host.

El archivo de inventario predeterminado se encuentra en / etc / ansible / hosts . Con su editor de texto favorito, agregue las direcciones IP de los hosts remotos que desea automatizar.

$ sudo vim /etc/apt/hosts

Guarde el archivo y cierre.

Crear un libro de jugadas simple

Los libros de jugadas de Ansible permiten a los usuarios automatizar tareas configurando los comandos que se ejecutan en el host remoto.

Creará un libro de jugadas simple de Ansible que instale Apache Web Server, creará una regla de firewall para permitir Apache y reiniciará el servicio.

Ansible usa YAML como el idioma de configuración predeterminado para sus libros de jugadas.

Cree un archivo YAML usando el comando táctil como:

$ touch first-playbook.yaml

Usando su editor de texto, agregue las entradas como se muestra en el libro de jugadas de ejemplo a continuación:

$ vim first-ansible-playbook.yaml

- hosts: all

become: true

tasks:

- name: Update apt packages

apt:

state: latest

update_cache: yes

- name: Install Apache

apt:

name: apache2

state: latest

- name: Install UFW Firewall

apt:

name: ufw

state: latest

- name: Allow HTTP ufw

ufw:

state: enabled

rule: allow

port: "80"

proto: tcp

- name: Restart Apache

service:

name: apache2

state: restarted

En el libro de jugadas anterior, comience especificando los hosts que desea ejecutar en el libro de jugadas. Dado que solo hay un host en el archivo de inventario, configure los hosts en todos.

A continuación, configure la declaración de convertirse, que permite que las tareas del libro de jugadas se ejecuten como root.

Las líneas anteriores definen las tareas que se realizarán en el host remoto. Incluyen un nombre que describe las funciones y las tareas reales que se ejecutarán en el host.

El primero le dice a Ansible que actualice la caché del repositorio; esto corresponde al comando:

$ sudo apt-get update

La siguiente instrucción instala la última versión del servidor web Apache.

A continuación, está la tarea de instalar el cortafuegos UFW. Esto requiere habilitar y permitir el puerto 80, que Apache usa en el protocolo TCP.

Finalmente, la última declaración reinicia el servidor web Apache.

Ejecutar libros de jugadas de Ansible

Para ejecutar el libro de jugadas de Ansible, necesitamos usar el comando ansible-playbook , que viene con Ansible en la instalación.

Para ejecutar el archivo first-playbook.yaml, use el comando:

$ ansible-playbook --user=ubuntu first-playbook.yaml

En el comando anterior, se pasa la opción --user , que especifica el usuario en el host remoto.

Asegúrese de tener las claves SSH instaladas en el host remoto.

Fecha actualización el 2021-06-21. Fecha publicación el 2021-06-21. Categoría: aplicaciones Autor: Oscar olg Mapa del sitio Fuente: thewindowsclub