notas ansibles (7): módulos del sistema de módulos de uso común
En el artículo anterior, presentamos algunos módulos de archivos y módulos de comando de uso común. En este artículo, presentaremos algunos módulos de operación del sistema de uso común.
El módulo cron puede ayudarnos a gestionar tareas programadas en hosts remotos, y su función es equivalente al comando crontab.
Antes de comprender los parámetros del módulo cron, primero escriba algunos ejemplos de tareas programadas. Los ejemplos son los siguientes
#Ejemplo 1
5 1 * *. * prueba de eco
#Ejemplo 2
1 1 */3 * * prueba de eco
#Ejemplo 3
@reboot prueba de eco
#Ejemplo 4
Prueba de eco @hourly
El ejemplo 1 anterior indica que el carácter de prueba se emite a la 1:05 todos los días
El ejemplo 2 anterior indica que cada Una tarea programada se ejecuta una vez cada 3 días y se ejecuta a la 1:01 del día. La tarea específica es generar el carácter de prueba
El ejemplo 3 anterior. indica que una tarea programada debe ejecutarse después de cada inicio del sistema, y la tarea específica es generar el carácter de prueba.
El ejemplo 4 anterior indica que una tarea programada se ejecuta cada hora y la tarea específica. es generar el carácter de prueba
Según el ejemplo anterior, puede comprender mejor los parámetros del módulo cron
Los parámetros comúnmente utilizados por el módulo cron son los siguientes. Primero tenga una comprensión general de estos parámetros y luego combínelos con los siguientes ejemplos para comprenderlos:
Parámetro de minutos: este parámetro se utiliza para establecer el bit de configuración de minutos en la tarea programada. En el ejemplo 1 anterior, el valor del bit de configuración de minutos es 5, es decir, minuto = 5. Cuando no se utiliza este parámetro, el valor del bit de configuración de minutos por defecto es "*"
parámetro de hora: Este parámetro se utiliza para establecer el valor del bit de configuración de hora en la tarea programada. Por ejemplo, en el ejemplo 1 anterior, el valor del bit de configuración de hora es 1, es decir, hora = 1. , el valor predeterminado del bit de configuración de hora es "*"
parámetro de día: este parámetro se utiliza para establecer el valor del bit de configuración de día en la tarea programada. Cuando no se utiliza este parámetro, el valor. del bit de configuración del día el valor predeterminado es "*"
parámetro de mes: este parámetro se utiliza para establecer el valor de la posición de configuración del mes en la tarea programada. Cuando no se utiliza este parámetro, el valor del mes. la posición de configuración está predeterminada en "*"
parámetro de día de la semana: este parámetro se utiliza para establecer el valor del dígito de configuración del día de la semana en la tarea programada. Cuando no se utiliza este parámetro, el valor del día. del dígito de configuración de la semana el valor predeterminado es "*"
parámetro de tiempo especial: en el ejemplo 3 anterior y en el ejemplo 4, el formato de configuración de hora de la tarea programada es @reboot o @hourly @reboot significa ejecutar. al reiniciar, y @hourly significa ejecutarse una vez cada hora, lo que equivale a configurarlo en "0 * * * *". Este tipo de @ comienza con El formato de configuración de hora debe configurarse utilizando el parámetro special_time. del parámetro special_time son reinicio (después de reiniciar), anual (cada año), anual (cada año, igual que anual), mensual (mensual), semanal (semanal), diario (todos los días), cada hora (cada hora). ).
Nota: Cuando no se especifica ninguno de los parámetros de configuración de unidad de tiempo anteriores, la configuración de tiempo de la tarea programada se establecerá en "* * * * *" de forma predeterminada, lo que significa que la tarea programada se ejecuta cada minuto. , por lo que al usar el módulo cron, debemos asegurarnos de que los parámetros de tiempo correspondientes estén configurados correctamente.
Parámetro de usuario: este parámetro se utiliza para establecer a qué usuario pertenece la tarea programada actual. Cuando no se utiliza este parámetro, el valor predeterminado es el usuario administrador.
Parámetro de trabajo: este parámetro. se utiliza para especificar el plan o el comando que realmente debe ejecutarse en la tarea, como el comando "prueba de eco" en el ejemplo anterior.
parámetro de nombre: este parámetro se utiliza para establecer el nombre de la tarea programada. El nombre de la tarea programada se mostrará en el comentario. Cuando no se especifica el nombre de la tarea programada, ansible lo agregará. comentarios a la tarea programada de forma predeterminada. El contenido es #Ansible: Ninguno. Suponga que el nombre de la tarea programada especificada es prueba, entonces el contenido del comentario es #Ansible: prueba. debe ser único, para que podamos modificar o eliminar el plan según el nombre de la tarea en el futuro.
parámetro de estado: cuando la tarea programada tiene un nombre, podemos modificar o eliminar la tarea correspondiente según el nombre. Al eliminar la tarea programada, el valor del estado debe establecerse en ausente
.Parámetros deshabilitados: Cuando la tarea programada tiene un nombre, podemos "invalidar" la tarea correspondiente según el nombre (comentar la tarea correspondiente. Tenga en cuenta que al usar este parámetro, además de especificar el nombre de la tarea). , también debe especificar el trabajo de la tarea y la configuración de tiempo de la tarea, y la configuración de tiempo de la tarea debe ser exactamente la misma que la tarea correspondiente; de lo contrario, la configuración de tiempo de la tarea se modificará al anotar la tarea. , a menos que esté seguro de hacerlo, si no comprende el significado de este párrafo, puede consultar los ejemplos a continuación.
parámetro de copia de seguridad: si el valor de este parámetro se establece en sí, cuando se modifique o elimine la tarea programada correspondiente, primero se realizará una copia de seguridad de la tarea programada y luego se modificará o se eliminará la tarea programada. eliminado, módulo cron Se creará un archivo de copia de seguridad en el directorio /tmp del host remoto, comenzando con crontab y agregando aleatoriamente algunos caracteres. Se recomienda ver el nombre del archivo de copia de seguridad específico en el campo backup_file de la información devuelta. establezca este parámetro en sí.
El comando de ejemplo ad-hoc del módulo cron es el siguiente:
Cree una tarea programada en el host test70. El nombre de la tarea es "test crontab". a la 1:05 todos los días El contenido es para generar caracteres de prueba
Después de ejecutar el comando anterior, se crearán las siguientes tareas programadas bajo el usuario root en el host test70
#. Ansible: prueba crontab
5 1 * * * prueba de eco
Cree una tarea programada en el host test70. El nombre de la tarea es "crontab day test". días y comienza a la 1:01 del día de ejecución. La tarea El contenido es generar caracteres de prueba
Después de ejecutar el comando anterior, se crearán las siguientes tareas programadas bajo el usuario raíz en el host test70.
#Ansible: prueba del día de crontab
1 1 */3 * * prueba de eco
Crea una tarea programada en el host test70 El nombre de la tarea es ". prueba tiempo especial". La tarea se ejecutará al reiniciar. El contenido de la tarea es generar caracteres de prueba
Después de ejecutar el comando anterior, las siguientes tareas programadas se crearán bajo el usuario raíz en el host test70
#Ansible: prueba de tiempo especial
@reboot echo test
Cree una tarea programada en el host test70. El nombre de la tarea es "prueba de tiempo especial". La tarea se ejecutará al reiniciar. El contenido de la tarea es generar caracteres de prueba.
Después de ejecutar el comando anterior, en el host test70 se crearán las siguientes tareas programadas bajo el usuario raíz.
#Ansible: prueba de tiempo especial
@reboot echo test
Dado que el "tiempo especial de prueba" ya existe, por lo tanto, cuando volvamos a operar la tarea con el mismo nombre, ansible pensará que se modifica la tarea original.
Cuando ya exista un "tiempo especial de prueba", ejecute el siguiente comando y se modificará la tarea planificada original. Debido a que la copia de seguridad está habilitada, se realizará una copia de seguridad de la tarea antes de la modificación.
Después de ejecutar el comando anterior, puede ver la ubicación del archivo de copia de seguridad en el host remoto en el campo backup_file de la información devuelta. La tarea original de "tiempo especial de prueba" se convertirá en la siguiente configuración p>
#Ansible: prueba de hora especial
@hourly echo test
La tarea "prueba de hora especial" ya existe en el host test70 si queremos eliminar esta programada. tarea, podemos ejecutarla. El siguiente comando se puede utilizar para eliminar tareas y realizar copias de seguridad al mismo tiempo.
Después de ejecutar el comando, puede ver la ubicación del archivo de copia de seguridad en el host remoto desde el campo backup_file de la información devuelta.
De forma predeterminada, las tareas programadas del. Se opera con el usuario root. Si desea operar el host remoto Para las tareas programadas de otros usuarios, puede especificar el usuario a operar.
Después de ejecutar el comando anterior, puede usar crontab -lu zsy en el. host remoto para ver las tareas programadas correspondientes.
Anteriormente se creó una tarea programada llamada test crontab. Si queremos anotar temporalmente esta tarea programada, podemos usar el siguiente comando. Sin embargo, debe tenerse en cuenta que al anotar la tarea, se necesitan todas las configuraciones. para ser iguales a los originales deben ser consistentes; de lo contrario, la configuración de las tareas programadas cambiará. El ejemplo es el siguiente
Por ejemplo, si queremos comentar la tarea de prueba del día crontab, Necesitamos usar el siguiente comando. Tenga en cuenta que es mejor hacer coincidir el parámetro de copia de seguridad. Al mismo tiempo, use
Después de ejecutar el comando anterior, la tarea programada correspondiente se comentará de la siguiente manera
#Ansible: prueba de día de crontab
#1 1 */3 * * prueba de eco
Si configura la hora incorrecta cuando usa el parámetro deshabilitado, la configuración de hora también cambia cuando se comenta la tarea correspondiente. Por ejemplo, si ejecuta el siguiente comando
Luego, cuando se comenta la tarea correspondiente, también se realizarán las siguientes configuraciones
#Ansible: prueba del día de crontab
#55 * * * * prueba de eco
p>
Si olvida alguna configuración de tiempo, cuando se comente la tarea, también se establecerá en el configuración de tiempo predeterminada, que es "* * * * *"
Entonces, cuando use el parámetro deshabilitado, finalmente utilícelo junto con el parámetro de respaldo. Si es descuidado, todavía hay margen de maniobra.
El módulo de servicio puede ayudarnos a administrar servicios en el host remoto, como iniciar o detener el servicio nginx en el host remoto.
Nota: Si desea administrar un servicio en el host remoto, entonces el servicio debe ser administrado por cualquiera de BSD init, OpenRC, SysV, Solaris SMF, systemd y upstart; de lo contrario, el módulo de servicio No puede administrar los servicios correspondientes del host remoto. Esto puede no ser fácil de entender. Explíquelo de otra manera. Supongamos que está utilizando centos6, entonces nginx en su centos6 debe iniciarse a través del "servicio nginx start". no se puede iniciar a través del "servicio nginx start", tampoco se podrá iniciar a través del módulo de servicio de ansible. Suponiendo que esté utilizando centos7, entonces nginx en su centos7 debe poder iniciarse a través de "systemctl start nginx". No se puede iniciar a través de "systemctl start nginx", entonces tampoco se podrá iniciar a través del módulo de servicio de ansible. Centos6 administra los servicios a través de sysv de forma predeterminada y centos7 administra los servicios a través de systemd de forma predeterminada. OpenRC, SysV, Solaris SMF, systemd, upstart, entonces no puede ser administrado por el módulo de servicio de ansible.
Los parámetros que suele utilizar el módulo de servicio son los siguientes. Primero puede tener una comprensión general de estos parámetros y luego combinarlos con los siguientes ejemplos para comprenderlos:
Nombre del parámetro. : Este parámetro se usa para especificar las necesidades El nombre del servicio de la operación, como nginx
parámetro de estado: Este parámetro se usa para especificar el estado del servicio Por ejemplo, si queremos iniciar nginx. en el host remoto, podemos establecer el valor de estado en iniciado. Si queremos detener el servicio en el host remoto, podemos establecer el valor de estado en detenido. Los valores disponibles de este parámetro son iniciado, detenido. reiniciado y recargado.
parámetro habilitado: este parámetro se utiliza para especificar si se configura el servicio como un elemento de inicio. Configurarlo en sí significa que el servicio correspondiente se configurará para iniciarse al inicio. no comienza al inicio.
El comando de muestra ad-hoc del módulo de servicio es el siguiente:
Iniciar el servicio nginx en test70
Detener el servicio nginx en test70
>Configure el servicio nginx en test70 como un elemento de inicio automático