Tutorial de Ansible - Aprenda a escribir manuales de Ansible



En este blog de tutoriales de Ansible, aprenderá a escribir libros de jugadas de Ansible, comandos adhoc y realizar prácticas para implementar Nginx en su máquina host.

Tutorial de Ansible

Espero que hayas leído mi blog anterior para aprender y las terminologías más utilizadas de Ansible. En caso de que no lo haya hecho, compruébelo para que pueda comprender mejor este tutorial de Ansible.También debe saber que Ansible constituye una parte crucial de como herramienta para la gestión, implementación y organización de la configuración.

Déjame darte una descripción general de este 'Tutorial de Ansible':





Tutorial de Ansible Playbook | Entrenamiento DevOps | Edureka

Tutorial de Ansible - Cómo escribir libros de jugadas de Ansible

Los libros de jugadas en Ansible están escritos en formato YAML. Es un lenguaje de serialización de datos legible por humanos. Se usa comúnmente para archivos de configuración. También se puede utilizar en muchas aplicaciones donde se almacenan datos.



Para Ansible, casi todos los archivos YAML comienzan con una lista. Cada elemento de la lista es una lista de pares clave / valor, comúnmente llamado 'hash' o 'diccionario'. Entonces, necesitamos saber cómo escribir listas y diccionarios en YAML.

Todos los miembros de una lista son líneas que comienzan en el mismo nivel de sangría que comienzan con un '-' (guión y espacio). Son posibles estructuras de datos más complicadas, como listas de diccionarios o diccionarios mixtos cuyos valores son listas o una combinación de ambos.

cómo usar anaconda python

p.ej. Para obtener una lista de departamentos en edureka:



departamentos: - marketing - ventas - soluciones - redacción de contenido - soporte - producto

Ahora déjame darte un ejemplo de diccionario:

-EE.UU. -Continente: Norteamérica -capital: Washington DC -población: 319 millones

Hosts y usuarios:

Para cada jugada en un libro de jugadas, puede elegir a qué máquinas de su infraestructura apuntar y a qué usuario remoto completar las tareas. Para incluir hosts en el inventario de Ansible, usaremos las direcciones IP de las máquinas host.

Generalmente, los hosts son una lista de uno o más grupos o patrones de host, separados por dos puntos. El usuario remoto es solo el nombre de la cuenta de usuario.

Variables:

Ansible utiliza variables que se definen previamente para permitir una mayor flexibilidad en los libros de jugadas y los roles. Se pueden usar para recorrer un conjunto de valores dados, acceder a información diversa como el nombre de host de un sistema y reemplazar ciertas cadenas en plantillas con valores específicos.

Ansible ya define un rico conjunto de variables, individuales para cada sistema. Siempre que Ansible se ejecute en un sistema, todos los hechos y la información sobre el sistema se recopilan y configuran como variables.

Pero hay un regla para nombrar variables. Los nombres de las variables deben ser letras, números y guiones bajos. Las variables siempre deben comenzar con una letra. P.ej. wamp_21, port5 son nombres de variable válidos, mientras que 01_port, _server no son válidos.

Tareas:

Las tareas le permiten dividir partes de la política de configuración en archivos más pequeños. La tarea incluye la extracción de otros archivos. Las tareas en Ansible se adaptan prácticamente al significado en inglés.

Por ejemplo: instalar, actualizar, etc.

Manejadores:

Los controladores son como tareas normales en un libro de jugadas de Ansible, pero solo se ejecutan si la tarea contiene una directiva de notificación y también indica que cambió algo. Por ejemplo, si se cambia un archivo de configuración, entonces la tarea que hace referencia al archivo de configuración puede notificar a un administrador de reinicio del servicio.

Déjame darte un ejemplo de un libro de jugadas que iniciará el programa del servidor httpd Apache:

----Hospedadores: servidores web cuyo: http_port: 80 clientes maximos: 200 usuario_remoto: raíz Tareas: - nombre: asegúrese de que apache tenga la última versión mmm: nombre = estado httpd = último - nombre: escribe el archivo de configuración de apache modelo: src = / srv / httpd.j2 dest = / etc / httpd.conf notificar: - reiniciar apache - nombre: asegúrese de que apache se esté ejecutando (y habilítelo en el arranque) Servicio: nombre = estado httpd = iniciado habilitado = sí manipuladores: - nombre: reiniciar apache Servicio: nombre = estado httpd = reiniciado

Espero que el ejemplo lo relacione con toda la descripción de los componentes del libro de jugadas que mencioné anteriormente. Si aún no lo tiene claro, no se preocupe, todas sus dudas quedarán claras en la parte posterior de este blog.

Se trata de libros de jugadas. Los libros de jugadas que escribirás tú. Pero Ansible también le proporciona una amplia gama de módulos, que puede usar.

Tutorial de Ansible - Módulos

Los módulos en Ansible son idempotentes. Desde el punto de vista del servicio RESTful, para que una operación (o llamada de servicio) sea idempotente, los clientes pueden realizar la misma llamada repetidamente mientras producen el mismo resultado. En otras palabras, realizar varias solicitudes idénticas tiene el mismo efecto que realizar una sola solicitud.

Hay diferentes tipos de módulos en Ansible

  • Módulos centrales
  • módulos extras

Módulos centrales

Estos son módulos que mantiene el equipo principal de Ansible y que siempre se enviarán con Ansible. También recibirán una prioridad ligeramente más alta para todas las solicitudes que las de los repositorios 'extras'.

La fuente de estos módulos está alojada en Ansible en GitHub en Ansible-modules-core.

Módulos extras

Estos módulos se envían actualmente con Ansible, pero es posible que se envíen por separado en el futuro. También son mantenidos principalmente por la comunidad Ansible. Los módulos no centrales aún se pueden utilizar por completo, pero pueden recibir tasas de respuesta ligeramente más bajas para problemas y solicitudes de extracción.

Los módulos 'extras' populares se pueden promover a módulos centrales con el tiempo.

La fuente de estos módulos está alojada en Ansible en GitHub en Ansible-modules-extras.

Por ejemplo: uno de los módulos adicionales en los Módulos de administración remota es el módulo ipmi_power, que es un administrador de energía para las máquinas remotas. Requiere python 2.6 o posterior y pyghmi para ejecutarse.

Puede usar este módulo escribiendo un comando ad hoc como el que he escrito a continuación:

ipmi_power: name = 'test.domain.com' user = 'localhost' password = 'xyz' state = 'on'

Tutorial de Ansible - Valores devueltos

Los módulos Ansible normalmente devuelven una estructura de datos que se puede registrar en una variable o ver directamente cuando el programa Ansible genera la salida. Cada módulo puede documentar opcionalmente sus propios valores de retorno únicos.

Algunos ejemplos de valores devueltos son:

  • cambiado: regresa con un valor booleano siempre que la tarea realiza algún cambio.
  • fallado: devuelve un valor booleano, si la tarea falla
  • msg: devuelve una cadena con un mensaje genérico transmitido al usuario.

Tutorial de Ansible - Comandos AdHoc

Los comandos ad hoc son simples comandos de una línea para realizar alguna acción. Los módulos en ejecución con comandos de Ansible son comandos ad hoc.

P.ej:

ansible host -m netscaler -a 'nsc_host = nsc.example.com usuario = contraseña de usuario = apipass' 

El comando adhoc anterior usa el módulo netscaler para deshabilitar el servidor. Hay cientos de módulos disponibles en Ansible desde donde puede consultar y escribir comandos ad hoc.

Bueno, basta con todas las explicaciones teóricas, déjame explicarte Ansible con algunas manos.

Tutorial de Ansible - Práctico

Voy a escribir un libro de jugadas para instalar Nginx en mi nodo / máquina host.

Vamos a empezar :)

Paso 1: Conéctese a sus hosts mediante SSH. Para eso, necesita generar una clave SSH pública.

Utilice el siguiente comando:

ssh-keygen

Generar clave SSH - Tutorial de Ansible - Edureka

Como puede ver en la instantánea anterior, el comando ssh-keygen generó una clave SSH pública.

Paso 2: Su próxima tarea es copiar la clave SSH pública en sus hosts. Para hacer eso, use el siguiente comando:

ssh-copy-id -i root @

La instantánea de arriba muestra la clave SSH que se está copiando en los hosts.

Paso 3: Enumere las direcciones IP de sus hosts / nodos en su inventario.

Utilice el siguiente comando:

vi / etc / ansible / hosts

Esto abrirá un editor vi donde puede enumerar las direcciones IP de sus hosts. Este es ahora tu inventario.

Etapa 4: Hagamos ping para asegurarnos de que se ha establecido una conexión.

La instantánea anterior confirma que se ha realizado la conexión entre su máquina de control y el host.

Paso 5: Escribamos ahora un libro de jugadas para instalar Nginx en la máquina host. Puede escribir su libro de jugadas en el editor vi. Para eso, simplemente cree su libro de jugadas, usando el comando:

vi

La siguiente instantánea muestra mi libro de jugadas para instalar Nginx escrito en formato YAML.

Las tareas de un libro de jugadas se definen en YAML como una lista de diccionarios y se ejecutan de arriba a abajo. Si tenemos varios hosts, se intenta cada tarea para cada host antes de pasar a la siguiente. Cada tarea se define como un diccionario que puede tener varias claves, como 'nombre' o 'sudo', que significan el nombre de la tarea y si requiere privilegios de sudo.

Una variable Puerto de servicio está configurado que escucha en el puerto TCP 8080 para solicitudes entrantes.

Aquí, la primera tarea es obtener el paquete necesario para la instalación de Nginx y luego instalarlo.Internamente, Ansible verificará si el directorio existe y lo creará si no lo está; de lo contrario, no hará nada.

La siguiente tarea es configurar Nginx.En Nginx, los contextos contienen detalles de configuración.

Aquí, la plantilla es un archivo que puede implementar en los hosts. Sin embargo, los archivos de plantilla también incluyen algunas variables de referencia que se extraen de variables definidas como parte de un libro de jugadas de Ansible o hechos recopilados de los hosts. Los datos que contienen los detalles de configuración se extraen de un directorio de origen y se copian en un directorio de destino.

Los controladores aquí definen la acción que se realizará solo tras la notificación de tareas o cambios de estado. En este libro de jugadas, definimos notificar: reiniciar el controlador de Nginx, que reiniciará Nginx una vez que los archivos y las plantillas se copien en los hosts.

implementar una cola de prioridad en java

Ahora, guarde el archivo y salga.

Paso 6: Ahora ejecutemos este libro de jugadas, usando el siguiente comando:

ansible-playbook .yml

Podemos ver en la captura de pantalla anterior que nuestra tarea se está ejecutando Nginx instalando.

Paso 7: Verifiquemos si Nginx está instalado en mi máquina host. Utilice el siguiente comando:

ps waux | grep nginx

Puede ver en la captura de pantalla anterior que se están ejecutando diferentes identificadores de proceso 3555 y 103316, lo que garantiza que Nginx se esté ejecutando en sus máquinas host.

¡Felicidades! Ha implementado con éxito Nginx en su host utilizando los libros de jugadas de Ansible. Espero que hayas disfrutado leyendo este blog de tutoriales de Ansible. Por favor, avíseme si tiene alguna pregunta en la sección de comentarios a continuación.

Si encontraste esto ' Tutorial de Ansible 'Relevante, revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka DevOps ayuda a los alumnos a adquirir experiencia en varios procesos y herramientas de DevOps como Puppet, Jenkins, Ansible, Nagios y Git para automatizar varios pasos en SDLC.