Reintentos ansibles

Reintentos ansibles

En este artículo, vamos a aprender sobre una de las tareas importantes de Ansible, que es la tarea de "reintentar" que enumeraremos en el libro de jugadas para realizar comandos. Aprenderemos cómo funciona la tarea de reintento en Ansible.

Reinty es una tarea ansible utilizada para intentar ejecutar cualquier libro de jugadas problemático repetidamente. El terminal de salida ansible mostrará los errores en esa falla. Debido a esto, a veces es difícil comprender estos problemas cuando intentamos solucionarlos usando Ansible. Sin embargo, Ansible proporciona una opción de "volver a intentar" que nos permite realizar el comando más de una vez.

Tome el escenario Cuando tenemos una tarea en nuestro libro de playbook de "todos", algunos de los anfitriones están atacados debido a ciertas condiciones de tarea, su ejecución exitosa en el primer intento una vez que se ha ejecutado el libro de jugadas. Sin embargo, a veces los anfitriones restantes tendrán éxito en el segundo intento de la tarea. Ahora, hay varios métodos en los que podemos tratar de resolver este problema, pero también a veces es posible que no tengamos el tiempo o el control del sistema para lograr esto.

Volver a intentar la tarea en esta situación podría ser el curso de acción más simple y efectivo. El libro de jugadas se volverá a ejecutar en un estado de falla de ejecución, y de manera predeterminada, seguirá intentando hasta que genera el resultado deseado o detiene los errores de informes. No podemos afirmar que la opción de reintento ansible es un sustituto del bucle estándar que ejecuta el trabajo repetidamente hasta que se cumpla la condición. Por lo tanto, no podemos usar reintentos ansibles para tareas para las cuales no tenemos forma de predecir o estimar cuánto tiempo tomarían. Por lo tanto, esto no puede ser un sustituto del bucle estándar. Sin embargo, evita el problema grave de un bucle infinito al retirar el trabajo después de un número predeterminado de intentos.

Prerrequisitos de las tareas de reintento en Ansible

En esta sesión se proporcionan ejemplos prácticos de Ansible. Suponemos que siempre ha tenido los siguientes requisitos previos si tiene la intención de seguir cuando usa la opción de reintento Ansible:

  • Antes de que podamos utilizar la herramienta Ansible e implementar la opción de reintento, requerimos aplicaciones relacionadas con Ansible en su sistema. Este tutorial hace uso de Ansible 2.12 o una versión posterior.
  • Debido a esto, necesitamos un controlador Ansible para ejecutar los comandos en hosts remotos y los hosts remotos en los que nos gustaría concentrarnos para implementaciones.

Pasemos por la idea de la opción de reintento en profundidad y miremos cómo Ansible la pone en vigencia usando un ejemplo.

Ejemplo: Vuelva a intentar las tareas 5 veces en Ansible Playbooks

Antes de implementar el ejemplo, una comprensión profunda de una variedad de tareas contenidas en la herramienta de configuración Ansible es un requisito para cualquier aspirante a maestro ansible o proveedor calificado, como un controlador Ansible para realizar cambios en el dispositivo de host remoto. Tomemos el escenario donde intentamos implementar la opción de reintento. Aquí está el ejemplo en Ansible que vamos a implementar para ejecutar las tareas del libro de jugadas varias veces.

Para comenzar a implementar los comandos, primero, tendremos que hacer el libro de jugadas utilizando la herramienta Ansible. A continuación se muestra la declaración que ejecutaremos para crear el libro de jugadas en Ansible.

[root@master ansible]# nano reintenta.YML

Después de escribir el comando anterior, los reintentos.YML Playbook se creará y se abrirá en una nueva terminal Ansible. En el libro de jugadas, siempre definimos primero la implementación que vamos a implementar en el parámetro de "nombre". A continuación, utilizaremos el parámetro "Hosts" para que podamos proporcionar la dirección IP o la información relacionada del host remoto a través del cual vamos a conectarnos. Usaremos "localhost" como servidor remoto de destino en este ejemplo.

Utilizando el componente ansible de "recopilación de datos", recopilaremos información sobre el host local objetivo. Estos datos se describen comúnmente como "hechos" o "parámetros" en el software ansible. Al utilizar el comando particular "configuración" en el software Ansible, podemos recopilar la información de Localhost. Sin embargo, Ansible Playbooks generalmente llaman a este parámetro de configuración de forma predeterminada para lograr el parámetro de datos de recopilación. Proporcionaremos el valor "verdadero" o "falso" para recopilar los datos del host local. Como se muestra a continuación en el libro de jugadas, no queremos obtener la información de Target LocalHost, por lo tanto, proporcionamos un valor "falso" al parámetro gateo_factor.

Después de declarar los parámetros que se requerirán para que el libro de jugadas configure el dispositivo de host local, enumeraremos las tareas en el libro de jugadas que queremos implementar en la máquina host local. En la lista de tareas, primero proporcionaremos el nombre de la tarea que vamos a hacer, es decir, verificar que la validez del archivo esté presente o no en la máquina localhost. Estamos utilizando el parámetro de shell ansible que ejecuta los comandos de shell en el dispositivo localhost.

En Ansible, el parámetro Shell tiene una ruta predeterminada en la que /bin /sh ejecuta comandos, pero en este ejemplo, hemos dado el "ls -lst /tmp /myprocess.ruta PID "donde el controlador Ansible hizo los cambios en el dispositivo localhost. Luego, para monitorear y guardar la salida en este parámetro Ansible, utilizamos el parámetro "Registro".

A continuación, utilizamos el parámetro "hasta" que se usa para volver a intentar las tareas del libro de jugadas 5 veces durante 2 segundos. Para definir el intervalo, hemos utilizado el parámetro predeterminado de Ansible, que es "retraso" y el número de veces que se ejecutarán las tareas del libro de jugadas se ejecutarán en el parámetro "reintentos" de Ansible.

Ahora, terminaremos los reintentos.Libro de jugadas YML golpeando Ctrl+X. Ahora queremos ejecutar el libro de jugadas. Entonces, usaremos el comando a continuación:

[root@maestro ansible]# reintentos.YML

Obtendremos el resultado a continuación después de ejecutar el comando anterior. Como se muestra en la salida, el libro de jugadas se ejecuta 5 veces con éxito con un tiempo de ejecución de 2 segundos.

Conclusión

Este artículo ha cubierto cómo funciona las funciones de los parámetros de reintento del libro de jugadas de Ansible. Hemos dominado a fondo la teoría de los parámetros de reintento. Luego, para comprender mejor el concepto de reintento, ponemos en práctica un ejemplo.