Cómo utilizar los módulos Ansible para las tareas de administración del sistema-Parte 6

Cómo utilizar los módulos Ansible para las tareas de administración del sistema-Parte 6

En esta Parte 6. de la serie Ansible, hemos cubierto algunos módulos de Ansible en temas anteriores, ahora profundizaremos y descubriremos módulos adicionales que son útiles para realizar una serie de tareas de administración del sistema. .

Obtendrá una idea básica de cada módulo y verá las opciones disponibles para realizar ciertas tareas.

En esta página:

  1. Administrar paquetes de software y repositorios en Ansible
  2. Administrar servicios usando Ansible
  3. Administrar firewall con Ansible
  4. Archivar archivos o carpetas con Ansible
  5. Programar tareas con Ansible
  6. Administrar usuarios y grupos con Ansible
  7. Crear archivos y directorios con Ansible
  8. Administrar el almacenamiento con Ansible
  9. Administrar sistemas de archivos con Ansible

1. Administrar paquetes de software y repositorios en Ansible

Al instalar paquetes en sistemas Linux, las diferentes distribuciones vienen con diferentes administradores de paquetes. Para las distribuciones de RedHat. tenemos yum & dnf, mientras que para los sabores de Debian. hay apt.

Ansible viene con un módulo llamado paquete. que elimina la necesidad de utilizar diferentes administradores de paquetes para diferentes sistemas. Utiliza automáticamente el administrador de paquetes correspondiente del sistema host, lo que facilita el trabajo.

Instalar paquetes de software

Por ejemplo, para instalar htop en un grupo de hosts. que comprenden ambos Las distribuciones Debian. y RedHat. utilizan el módulo paquete. como se muestra en el libro de estrategias install_htop.yml. a continuación.

—-nombre: Instale htop en los hosts de Ubuntu y CentOS: todas las tareas:-paquete: nombre: estado de htop: instalado Instalar software usando el módulo de paquete Ansible  Instalar software usando Ansible Package Module Instalar software usando el módulo de paquete Ansible freestar.config.enabled_slots.push (LocationName:” tecmint_incontent “, slotId:” tecmint_incontent “);

NOTA. Los nombres de los paquetes pueden diferir de un sistema operativo a otro. Por ejemplo, tenemos httpd. en distribuciones Redhat. y Apache2. para sistemas Debian/Ubuntu. todos los cuales denotan Apache Servidor web. Por lo tanto, se debe tener especial cuidado al pasar estos paquetes. Por lo general, es mejor usar variables o declaraciones condicionales.

2. Administración de servicios usando Ansible

A continuación, tenemos un módulo servicio. que se usa para administrar servicios en sistemas Linux. Se utiliza para iniciar, detener o reiniciar un servicio. También puede usarlo para habilitar un servicio para que cuando un sistema se inicie, inicie automáticamente el servicio.

Iniciar y habilitar un servicio

Por ejemplo, para iniciar y habilitar el servidor web Apache en RHEL 8. use el servicio como se muestra.

—-nombre: inicia y habilita el servicio httpd hosts: tareas del servidor web:-servicio: nombre: estado httpd: iniciado habilitado: sí  Administrar servicios con Ansible  Administrar servicios con Ansible Gestionar servicios con Ansible Stop un servicio

Para detener el servicio httpd. pase el atributo detenido.

—-nombre: Detener el servicio httpd hosts: tareas del servidor web:-servicio: nombre: httpd estado: detenido. Detener el servicio con Ansible  Detener el servicio con Ansible Detener el servicio con Ansible Reiniciar un servicio

Para reiniciar el servicio httpd. pase el reiniciado.

—-nombre: reinicia el servicio httpd hosts: tareas del servidor web:-servicio: nombre: httpd estado: reiniciado.  Reiniciar el servicio con Ansible  Reiniciar el servicio con Ansible Reinicie el servicio con Ansible

3. Gestión del cortafuegos con Ansible

Otra tarea importante que realizan los administradores del sistema es la gestión del cortafuegos. En los libros de jugadas de Ansible, esto se ha hecho mucho más fácil con los módulos firewalld. y ufw. Puede configurar el cortafuegos para permitir o bloquear un puerto o servicio o incluso una dirección de origen.

Entremos y echemos un vistazo a algunos ejemplos:

Abrir/bloquear el puerto 80 en firewalld—nombre: Permitir hosts del puerto 80: tareas del servidor web:-firewalld: puerto: 80/tcp permanente: sí. estado: habilitado

En el libro de jugadas anterior, puerto 80 está permitido a través del cortafuegos.

La opción permanente: sí refuerza la regla del cortafuegos y la hace persistente tras reiniciar. Sin embargo, esta regla no se aplica de inmediato. Solo entra en vigor después de reiniciar. Para hacer cumplir la regla de inmediato, use la opción inmediata: sí.

Para especificar las direcciones permitidas, use la instrucción fuente: 0.0.0.0/0.

-firewalld : fuente: 192.168.0.0/24. zona: estado público: habilitado

Para especificar un rango de puertos que se les permitirá usar la opción de puerto de la siguiente manera:

-firewalld: puerto: 213-567/udp permanente: sí estado: habilitado

Para bloquear el puerto, cambie la opción de estado a deshabilitado. como se muestra:

-firewalld: puerto: 80/tcp permanente: sí estado: deshabilitado Agregar/bloquear un servicio en firewalld

Además de agregar/bloquear un puerto, también puede aplicar las mismas reglas a un servicio. Y es bastante simple. Simplemente use el módulo servicio. y agregue el servicio que se agregará y asegúrese de que la opción de estado esté configurada en habilitado.

-firewalld: servicio: https permanente: verdadero estado: habilitado.

Para bloquear el servicio, establezca la opción estado. en inhabilitado.

-firewalld: servicio: https permanente: verdadero estado: inhabilitado.

4. Archivar archivos o carpetas con Ansible

Archivar se refiere a la compresión de un archivo o carpeta a un formato que es fácilmente portátil y de menor tamaño. Ansible se envía con un módulo llamado archivo. Comprimir un archivo es tan fácil como parece. Todo lo que se requiere es especificar la ruta de origen del archivo y el destino del archivo comprimido.

Comprimir un directorio

Considere un libro de jugadas compress.yml. a continuación.

—-hosts: tareas del servidor web: • nombre: comprime un archivo de carpeta: ruta:/opt/data/web dest:/tmp/web.gz

El libro de jugadas anterior comprime /opt/data/web. y lo guarda en /tmp/web.gz.

 Crear archivo con Ansible  Crear archivo con Ansible Crear archivo con Ansible Compress a Directo ry con formato

El formato de compresión predeterminado es .gz, sin embargo, esto se puede especificar usando el atributo de formato. Muestra el siguiente Playbook.

—-hosts: webservers Tareas:-nombre: Crear un archivo zip archive: ruta:/opt/data/web dest:/tmp/formato web: zip

El playbook anterior comprime el directorio /opt/data/web. en /tmp/web.zip.

Descomprime un archivo

También puedes descomprimir un archivo comprimido usando el desarchivar. Considere el libro de jugadas a continuación.

—-hosts: tareas del servidor web:-nombre: Descomprima/tmp/web.gz en el directorio/opt en el controlador Ansible unarchive: src:/tmp/web.bz2 dest:/opt/

El libro de jugadas anterior descomprime el archivo /opt/data/web.gz. a /opt. en el controlador Ansible.

Descomprime un archivo en el nodo remoto

Para especificar el sistema de origen remoto, use la opción remote_src = yes.

—-hosts: tareas del servidor web:-nombre: Descomprimir/tmp/web.bz2 para/optar por desarchivar host remoto: src:/tmp/web.bz2 dest:/opt/ remote_src = yes.

El libro de jugadas anterior descomprime el archivo /tmp/web.bz2. en el nodo remoto al directorio/opt/.

5. Programe tareas con Ansible

El módulo cron. ayuda a programar trabajos en Ansible Playbooks.

Cree una tarea programada

Considere la siguiente guía.

—hosts: tareas del servidor web:-nombre: crear una tarea programada cron: nombre: ejecutar el trabajo de asistencia del empleado: sh/opt/scripts/attendace.sh mes: 4 día: 5 horas: 17 minutos: 00

El libro de jugadas ejecuta la secuencia de comandos de asistencia el 5 de abril a las 5:00 p. m.

Programe una secuencia de comandos en una fecha específica

Si desea programar esta secuencia de comandos para que se ejecute solo si el día 5 de abril es lunes, utilice el día de la semana : 1 atributo. 0 denota domingo y 6 denota sábado según la notación cron.

mes: 4 día: 5 hora: 17 minuto: 00 día de la semana: 1

Un asterisco (*). en cualquiera de estos Los campos indican cualquier valor.

Ejecutar un trabajo en una fecha

Para ejecutar el trabajo el 5 de abril a las 5:00 p. m. sin importar el día de la semana, use los parámetros de tiempo como se muestra.

mes: 4 días: 5 horas: 17 minutos: 00 días de la semana: * Ejecutar un trabajo en un día específico todos los meses

Para ejecutar el trabajo cron el quinto día de cada mes a las 5:00 pm, utilice la siguiente configuración.

mes: * día: 5 horas: 17 minutos: 00 día de la semana: * Ejecutar un trabajo diariamente

Para ejecutar el trabajo cron diariamente a las 5:00 pm, establezca la configuración de hora como se muestra:

mes: * día : * hora: 17 minuto: 00 día de la semana: * Ejecutar un trabajo cada 5 horas

Para ejecutar el trabajo cron cada 5 horas, use el valor de paso */5 como se muestra.

mes: * día: * hora: */5 minutos: * día de la semana: *

6. Administre usuarios y grupos con Ansible

También puede administrar usuarios y grupos dentro de los libros de jugadas de Ansible sin esfuerzo.

Crear un nuevo usuario

Para crear un nuevo usuario, use el usuario. como se muestra.

—-hosts: tareas del servidor web:-nombre: crea un nuevo usuario usuario: nombre: Jack

También puede agregar opciones adicionales como UID, grupos.

-nombre: Crear un nuevo usuario usuario: nombre: comentario de Jack: Jack Peters uid: 1002 grupo: administradores shell:/bin/bash Eliminar un usuario

Para eliminar el usuario, utilice la declaración remove: yes.

-nombre: eliminar el usuario ‘Jack’ usuario: nombre: estado Jack: ausente eliminar: sí. Crear un grupo nuevo

Para crear un grupo nuevo, use el grupo. módulo.

-nombre: Crea un grupo grupo: nombre: desarrolladores

7. Cree archivos y directorios con Ansible

Para crear archivos de directorios, use el módulo archivo.

Cree un nuevo directorio

Por ejemplo, para crear un nuevo directorio .

—-hosts: tareas del servidor web:-nombre: crea un nuevo directorio archivo: ruta:/opt/estado de la aplicación: directorio

Puede agregar otros atributos como propietario, grupo y permisos de archivo.

-hosts: tareas del servidor web:-nombre: crear un nuevo archivo de directorio: ruta:/opt/estado web: propietario del directorio: www-data group: www-data mode: 0644

Además, puede crear directorios de forma recursiva usando la instrucción recurse: yes.

—-hosts: tareas del servidor web:-nombre: crear directorios de forma recursiva archivo: ruta:/opt/web/estado de la aplicación: propietario del directorio: www-grupo de datos: www-modo de datos: 0644 recurse: sí Crear un archivo

Para crear un archivo, use la opción state: touch.

—-hosts: webs Tareas de ervers:-nombre: crea un nuevo archivo file: ruta:/opt/web/index.html estado: táctil. propietario: grupo de datos www: modo de datos www: 0644

8. Administrar el almacenamiento con Ansible

El módulo lvg. se usa para configurar volúmenes y grupos LVM.

Cree un grupo de volúmenes LVM

Considere el siguiente manual de estrategias:

—-hosts: tareas de servidores web: • nombre: crear un grupo de volúmenes LVM lvg: vg: vg1 pvs:/dev/sda1 pesize: 32

Esto crea un grupo de volúmenes en la parte superior de la partición/dev/sda1 con una partición física tamaño de extensión de 32 MB.

Una vez creado, use el módulo lvol. para crear un volumen lógico como se muestra

Cree un volumen lógico—hosts: tareas del servidor web:-nombre: crear volumen lVM lvol: vg: vg1 lv: lvol1 pvs:/dev/sda1

9. Administrar sistemas de archivos con Ansible

Para crear un sistema de archivos en un dispositivo de bloque, use el módulo sistema de archivos.

Cree un sistema de archivos

El siguiente libro de jugadas crea el sistema de archivos tipo de xfs. en el volumen del bloque.

—-hosts: tareas del servidor web:-nombre: crear un sistema de archivos sistema de archivos: fstype: xfs dev:/dev/vg1/lvol1 Montar un sistema de archivos

A continuación, puede proceder a montar el volumen del bloque utilizando el módulo montar. como se muestra en el libro de estrategias a continuación:

—-hosts: tareas de los servidores web:-nombre: montar un montaje del sistema de archivos : fstype: xfs src:/dev/vg1/lvol1 ruta:/opt/web estado: montado Conclusión

Esto concluye el tema. Hemos cubierto varias tareas de administración del sistema que se pueden realizar mediante módulos integrados específicos en Ansible Playbooks.