Ejecutar scripts con el módulo cron ansible

Ejecutar scripts con el módulo cron ansible
Ansible es una herramienta simple utilizada para automatizar diversas tareas y procesos de TI manuales. Actúa como un administrador de nodos sobre SSH y puede compartir automatización en organizaciones enteras como tareas diarias automatizadas, instalación de software, implementación, gestión de configuración y muchos más.

Módulos ansibles

Ansible contiene módulos que son una parte del script ejecutado por Ansible en nombre del usuario para interactuar con el sistema y realizar tareas específicas que involucran controles o automatización. Estos módulos pueden interactuar con un sistema remoto o local para realizar los cambios deseados. Ansible contiene un gran conjunto de módulos, más de 800.

En este artículo, arrojamos algo de luz sobre el módulo cron y su uso. Este módulo, junto con otros, puede usarse desde la CLI (terminal) o en una tarea de libro de jugadas. Cabe señalar que los módulos se pueden escribir en cualquier editor de texto de la elección de los usuarios siempre que admitan el formato YAML y devuelve datos de formato JSON.

Módulo cron

En varios sistemas operativos de Linux, un cron es una herramienta utilizada para ejecutar un conjunto de scripts o comandos en un momento predefinido. Esta ejecución programada a menudo se conoce como un "trabajo cron."

Este módulo puede usarse como una herramienta independiente en Linux sin la necesidad de Ansible; Sin embargo, para facilitar el usuario en términos de provisión y plataforma, se prefiere Ansible, ya que puede facilitar nuestra accesibilidad, dándonos toneladas de otras características en forma de varios módulos.

Por ejemplo, para administrar varios trabajos de Cron, tendríamos que escribir el código manualmente en la terminal; Sin embargo, con Ansible, podemos deshacernos del trabajo tedioso y reducir sustancialmente los errores utilizando el libro de jugadas para configurar los trabajos cron para los servidores que deseamos configurar.

Como se mencionó anteriormente, Ansible usa módulos en el terminal o en el libro de jugadas. El módulo cron puede administrar entradas del crontab utilizando el libro de jugadas.

El módulo cron administra el crontab, específicamente las entradas de Crontab. Tiene varios parámetros, que se discuten brevemente a continuación.

Parámetros

Cadena como nombre: Esta es la cadena que actúa como un nombre para un crontab dado. Este parámetro debe ser único. En caso de que no lo sea, tendremos nuestra tarea cron anterior reemplazada por las más nuevas con el mismo nombre.

Cadena como estado: Esta cadena especifica si la función está presente o ausente. Por ejemplo, queremos eliminar una tarea antigua que ya no se requiere. Podemos eliminar el trabajo prefijado como "#Asible: trabajo anterior" de nuestro crontab. Ahora el estado aparecerá como ausente.

Cadena como un trabajo: Esta cadena suele ser el comando que estamos a punto de ejecutar. No es necesariamente necesario si nuestro estado está ausente; Sin embargo, en el caso de un estado actual, necesitamos la entrada de trabajo en nuestro crontab. Esta cadena no puede tener espacios.

Cadena como usuario: Esta cadena es para el usuario específico cuyo crontab debe ser modificado.

Tiempo: Esta cadena incluye la marca de tiempo que contiene varios parámetros relacionados con el tiempo como una semana, día, mes, año, hora, minuto. Su entrada puede escribirse como "0,7,6 ** ls-alh>/dev/null" para implicar el trabajo que funciona en las horas 6 y 7.

Tiempo especial. Este parámetro contiene valores de tiempo especiales como anual, semanal, por hora, mensual, reiniciado, etc., Para hacer que los trabajos sean más periódicos.

Ejemplos

Hagamos una nueva entrada en nuestro sistema Linux como un libro de jugadas Ansible.

$ CD ~
$ mkdir ansible-workspace
$ CD Ansible-Workspace

A continuación, nombramos nuestro libro Ansible (debe tenerse en cuenta que el libro de jugadas tiene .Extensión Yaml).

$ vim crontest.YML

Con esto, lo siguiente debe abrirse.

Ahora que estamos en el libro de jugadas, podemos agregar los siguientes contenidos.

-Anfitriones: todos
hecho realidad
tareas:
-Nombre: "Demostración de Cronmodule"
Ansible.incorporado.cron
Nombre: "Prueba"
Estado: presente
día laborable: "*"
mes: "*"
día: "*"
hora: "*"
minuto: "*"
Trabajo: "Cache = Clare"

Ahora, ejecute este libro de jugadas escribiendo el siguiente comando en el shell de Linux:

Ansible-Playbook Testbook.YML

El código descrito anteriormente usa Cronjob para programar un tiempo específico para realizar su trabajo. En este caso, el trabajo es borrar los datos de las aplicaciones de fondo. Esta memoria se conoce como caché, y se recomienda limpiarla regularmente, para que nuestro sistema pueda funcionar sin una carga innecesaria. El Cronjob descrito anteriormente tiene hosts establecidos en "Todos."Esto significa que todos los sistemas remotos tendrán el Cronjob realizado en ellos, y la condición sigue siendo cierta siempre que el libro de jugadas se ejecute.

La tercera línea describe la tarea del Cronjob, el nombre de la tarea se muestra como "demostración de Cronjob", que aparecerá en el registro de ejecución de Ansible. La siguiente línea muestra el módulo incorporado "Ansible. incorporado.Cron "

Varias cadenas de tiempo se marcan como "*" que denota la operación predeterminada de Cron. Los datos anteriores muestran que el Cronjob se realizará el miércoles a las 5 am del mes actual; El trabajo es borrar el caché.

Ventajas

El módulo cron nos ofrece varias ventajas, incluida.

  • No hay recuerdo de ocupación mientras se ejecuta.
  • Transferencia de control más fácil al usuario cuando Cronjob está ejecutando.
  • Incluso si el Cronjob no se ejecuta por alguna razón desconocida, se iniciará nuevamente dentro de la cadena de tiempo designada.

Conclusión

En este artículo, repasamos el módulo cron para Ansible, responsable de los horarios de varios trabajos que queremos asignar a nuestro sistema. Es un comando central importante cuando se trata de automatizar varios trabajos en un marco de tiempo específico. Esperamos que haya podido comprender el funcionamiento del módulo cron y aclarar sus consultas después de leer este artículo.