Comprender los componentes centrales de Ansible - Parte 1

Comprender los componentes centrales de Ansible - Parte 1

El especialista certificado por Red Hat en el examen de automatización Ansible (EX407) es un nuevo programa de certificación por sombrero rojo que prueba tus habilidades para usar Ansible Para automatizar la configuración de sistemas y aplicaciones.

La serie se titulará "El especialista certificado por Red Hat en el examen de automatización Ansible (EX407)”Y cubre los siguientes objetivos del examen basados ​​en Red Hat Enterprise Linux 7.5 y Ansible 2.7, que vamos a cubrir en este Ansible serie:

Para ver las tarifas y registrarse para un examen en su país, consulte la página del examen de automatización de Ansible.

Parte 1: Comprender los componentes centrales de Ansible Parte 2: Instalar y configurar un nodo de control Ansible Parte 3: Cómo configurar nodos administrados Ansible y ejecutar comandos ad-hoc Parte 4: Cómo crear inventarios estáticos y dinámicos para definir grupos de huéspedes Parte 5: Cómo crear jugadas y libros de jugadas Ansible Parte 6: Cómo usar módulos Ansible para tareas de administración del sistema Parte 7: Cómo crear y usar plantillas para crear archivos de configuración personalizados Parte 8: Cómo trabajar con variables y hechos de Ansible Parte 9: Cómo crear y descargar roles una galaxia ansible y usarlos Parte 10: Cómo usar la bóveda ansible en los libros de jugadas para proteger los datos confidenciales

En esto Parte 1 del Ansible Serie, discutiremos una descripción general básica de los componentes centrales en Ansible.

Comprender los componentes centrales de Ansible

Ansible es una plataforma de automatización gratuita y de abreSource por Sombrero rojo que le permite administrar y controlar múltiples servidores desde una ubicación central. Es especialmente ideal cuando tiene tareas múltiples y repetitivas que deben realizarse. Entonces, en lugar de iniciar sesión en cada uno de estos nodos remotos y llevar a cabo sus tareas, puede hacerlo cómodamente desde una ubicación central y administrar cómodamente sus servidores.

Esto es beneficioso cuando desea mantener la consistencia en la implementación de la aplicación, reducir el error humano y la automatización de tareas repetitivas y algo mundanas.

Por supuesto, hay otras alternativas a Ansible como Marioneta, Cocinero, y Sal. Sin embargo, Ansible se prefiere principalmente porque es fácil de usar y fácil de aprender.

¿Por qué es simple aprender que podría preguntar?? Esto es porque Ansible usos Yaml (Otro lenguaje de marcado más) en sus trabajos de configuración y automatización que son legibles por humanos y son bastante fáciles de seguir. Yaml usos Ssh Protocolo para comunicarse con servidores remotos, a diferencia de otras plataformas de automatización que requieren instalar un agente en nodos remotos para comunicarse con ellos.

Antes de comenzar con Ansible, Es importante que se familiarice con algunas terminologías básicas para que no se pierda o confunda a medida que avanzamos.

Inventario

Un inventario es un archivo de texto que contiene una lista de servidores o nodos que está administrando y configurando. Por lo general, los servidores se enumeran en función de sus nombres de host o direcciones IP.

Un inventario El archivo puede contener sistemas remotos definidos por sus direcciones IP como se muestra:

10.200.50.50 10.200.50.51 10.200.50.52 

Alternativamente, se pueden enumerar de acuerdo con los grupos. En el ejemplo a continuación, tenemos servidores colocados en 2 grupos - servidores web y bases de datos. De esta manera, se pueden hacer referencia de acuerdo con los nombres de sus grupos y no sus direcciones IP. Esto simplifica aún más los procesos de operación.

[servidores web] 10.200.50.60 10.200.50.61 [bases de datos] 10.200.50.70 10.200.50.71 

Puede tener múltiples grupos con múltiples servidores si se encuentra en un gran entorno de producción.

Libro de jugadas

A libro de jugadas es un conjunto de scripts de administración de configuración que definen cómo se ejecutarán las tareas en hosts remotos o un grupo de máquinas host. Los scripts o instrucciones se escriben en Yaml formato.

Por ejemplo, puedes tener un libro de jugadas Archivo para instalar el servidor web de Apache en CentOS 7 y llamarlo httpd.YML.

Para crear el libro de jugadas Ejecutar el comando.

$ touch playbook_name.YML 

Por ejemplo, para crear un libro de jugadas llamado httpd, Ejecutar el comando.

$ touch httpd.YML 

Un archivo Yaml comienza con 3 guiones como se muestra. Dentro del archivo, agregue las siguientes instrucciones.

--- - Nombre: Esto instala e inicia el servidor web de Apache Hosts: WebServers Tareas: - Nombre: Instale Apache WebServer Yum: Name = Httpd State = Último - Nombre: Verifique el servicio de estado httpd: name = httpd state = iniciado 

Lo anterior libro de jugadas instalaciones Servidor web de Apache en sistemas remotos definidos como servidores web En el archivo de inventario. Después de la instalación del servidor web, Ansible luego verifica si el servidor web de Apache se inicia y se está ejecutando.

Módulos

Módulos son unidades discretas de código utilizadas en libros de jugadas para ejecutar comandos en hosts o servidores remotos. Cada módulo es seguido por un argumento.

El formato básico de un módulo es valor clave.

- Nombre: Instale los paquetes Apache Yum: Name = Httpd State = Present 

En lo anterior Yaml fragmento de código, -nombre y beque son módulos.

Obras de teatro

Un ansible jugar es un script o una instrucción que define la tarea que se llevará a cabo en un servidor. Una colección de obras constituye un libro de jugadas. En otras palabras, un libro de jugadas es una colección de múltiples jugadas, cada una de las cuales estipula claramente la tarea que se llevará a cabo en un servidor. Existen obras de teatro en formato Yaml.

Variables

Si tiene experiencia en programación, lo más probable es que haya usado variables. Básicamente, una variable representa un valor. Una variable puede incluir letras, números y subrayados, pero siempre debe comenzar con letras.

Las variables se utilizan cuando las instrucciones varían de un sistema a otro. Esto es especialmente cierto durante la configuración o varios servicios y características.

Hay 3 tipos principales de variables:

  • Variables del libro de jugadas
  • Variables de inventario
  • Variables especiales

En Ansible, Las variables se definen primero utilizando el vars k, luego seguido por el nombre de la variable y el valor.

La sintaxis es como se muestra:

vars: var name1: 'mi primera variable' var name2: 'mi segunda variable' 

Considere el código a continuación.

- Hosts: WebServers vars: - web_directory:/var/www/html/ 

En el ejemplo anterior, la variable aquí es directorio Web y le indica a Ansible crear un directorio en el /var/www/html/ camino.

Hechos

Hechos ¿Están las propiedades del sistema recopiladas por Ansible cuando ejecuta un libro de jugadas en un sistema de host. Las propiedades incluyen nombre de host, familia OS, tipo CPU y núcleos de CPU para mencionar algunos.

Tener una idea de la cantidad de hechos disponibles para su uso, emita el comando.

$ ansible localhost -m configuración 
Lista de hechos ansibles disponibles

Como puede ver, una gran cantidad de hechos se han mostrado de forma predeterminada. Puede reducir aún más los resultados utilizando el parámetro del filtro como se muestra.

$ ansible localhost -m setup -a "filtre =*ipv4" 
Lista de hechos IPv4 Ansible

Archivos de configuración

En Ansible, Un archivo de configuración es un archivo que contiene diferentes configuraciones de parámetros que determinan cómo se ejecuta Ansible. El archivo de configuración predeterminado es el ansible.CFG archivo ubicado en /etc/ansible/ directorio.

Puede ver el archivo de configuración ejecutando:

$ cat/etc/ansible/ansible.CFG 
Archivo de configuración ansible

Como puede observar, se incluyen varios parámetros, como inventario y biblioteca rutas de archivo, usuario de sudo, filtros de complementos, módulos, etc. Estos parámetros se pueden ajustar simplemente comentándolos y modificando los valores en el mismo.

Además, puede tener múltiples archivos de configuración que funcionan con Ansible aparte de su archivo de configuración predeterminado.

Resumen

Habiendo mirado los componentes centrales en Ansible, Esperamos que esté en condiciones de mantenerlos a su alcance y elegirlos a medida que avanzamos. Únase a nosotros en su próximo tema.