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

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

En esto Parte 6 De la serie Ansible, hemos cubierto algunos módulos Ansible en los temas pasados, 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. Administración de paquetes y repositorios de software en Ansible
  2. Gestión de servicios utilizando Ansible
  3. Gestionar el 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. Administración de paquetes y repositorios de software en Ansible

Al instalar paquetes en sistemas Linux, diferentes distribuciones vienen con diferentes administradores de paquetes. Para Sombrero rojo distribuciones, tenemos yum & dnf mientras Debian sabores, hay apto.

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

Instalar paquetes de software

Por ejemplo, para instalar HTOP en un grupo de Hospedadores compuesto por ambos Debian Y Sombrero rojo distribuciones usa el paquete módulo como se muestra en el install_htop.YML Libro de jugadas a continuación.

--- - Nombre: Instale HTOP en Ubuntu y Centos Hosts: Todas las tareas: - Paquete: Nombre: HTOP Estado: Instalado 
Instalar software utilizando el módulo de paquete Ansible

NOTA: Los nombres de los paquetes pueden diferir de un sistema operativo a otro. Por ejemplo, tenemos httpd en Sombrero rojo distribuciones y Apache2 para Debian/Ubuntu sistemas todos los cuales denotan el servidor web de Apache. Por lo tanto, se debe tener una precaución adicional al pasar estos paquetes. Por lo general, es mejor usar variables o declaraciones condicionales.

2. Gestión de servicios utilizando Ansible

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

Iniciar y habilitar un servicio

Por ejemplo, para iniciar y habilitar Apache Webserver en Rhel 8, Use el servicio como se muestra.

--- - Nombre: Inicio y habilitar HTTPD Hosts de servicio: Tareas de servidores web: - Servicio: Nombre: Httpd Estado: Comenzó habilitado: Sí 
Administrar servicios con Ansible

Detener un servicio

Para detener httpd servicio, pasar el interrumpido atributo.

--- - Nombre: Detener httpd Hosts de servicio: Tareas de servidores web: - Servicio: Nombre: httpd Estado: detenido 
Detener el servicio con Ansible

Reiniciar un servicio

Para reiniciar httpd servicio, pasar el reiniciado atributo.

--- - Nombre: Reiniciar HTTPD Servicio Hosts: WebServers Tareas: - Servicio: Nombre: Httpd Estado: reiniciado 
Reiniciar el servicio con Ansible

3. Gestionar el firewall con Ansible

Otro importante sistema de sistemas de tareas que realizan los administradores es la gestión del firewall. En Ansible Playbooks, esto se ha hecho mucho más fácil con cortafuegos y UFW módulos. Puede configurar el firewall para permitir o bloquear un puerto o servicio o incluso una dirección de origen.

Vamos a entrar y echar un vistazo a algunos ejemplos:

Puerto de Abrir/Bloquear 80 en Firewalld

--- - Nombre: Permitir el puerto 80 Hosts: Tareas de servidores web: -fireWalld: Port: 80/TCP Permanente: si Estado: habilitado 

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

La opción Permanente: si aplica la regla del firewall y la hace persistente a través de los reinicios. Sin embargo, esta regla no se aplica de inmediato. Solo entra en vigencia después de un reinicio. Para hacer cumplir la regla de inmediato, use la opción Inmediato: si.

Para especificar las direcciones permitidas, use el Fuente: 0.0.0.0/0 declaración.

- Firewalld: Fuente: 192.168.0.24/04 Zona: Estado público: habilitado 

Para especificar una gama de puertos que se 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 desactivado como se muestra:

-Firewalld: Puerto: 80/TCP Permanente: Sí Estado: Desactivado 

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. Solo usa el servicio módulo y agregar el servicio a agregar y asegurarse de que la opción de estado esté configurada en activado.

- Firewalld: Servicio: HTTPS Permanente: Verdadero Estado: habilitado 

Para bloquear el servicio establece el estado opción para desactivado.

- Firewalld: Servicio: HTTPS Permanente: Verdadero Estado: discapacitado 

4. Archivar archivos o carpetas con Ansible

El archivo se refiere a la compresión de un archivo o carpeta a un formato que sea fácilmente portátil y de menor tamaño. Envíe ansible con un módulo llamado archivo. Compresar un archivo es tan fácil como es. 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 comprimir.YML abajo.

--- - Hosts: Tareas de servidores web: • Nombre: Comprimir un archivo de carpeta: ruta:/opt/data/web des:/tmp/web.GZ 

El libro de jugadas anterior comprime el /opt/data/web directorio y lo guarda para /TMP/Web.GZ.

Crear archivo con ansible

Comprimir un directorio con formato

El formato de compresión predeterminado es .GZ, Sin embargo, esto se puede especificar utilizando el atributo de formato. Muestra el próximo libro de jugadas.

--- - Hosts: WebServer Tareas: - Nombre: Crear un archivo de archivo ZIP: ruta:/opt/data/web des:/tmp/formato web: zip 

El libro de jugadas de arriba se comprime /opt/data/web directorio /TMP/Web.cremallera.

Uncomprimir un archivo

También puede desenredar un archivo comprimido utilizando el desinfectante atributo. Considere el libro de jugadas a continuación.

--- - Hosts: Tareas de servidores web: - Nombre: Uncompress /TMP /Web.Directorio GZ TO/OPT en el controlador Ansible Unarchive: src:/tmp/web.BZ2 Dest: /Opt / 

El libro de jugadas arriba incomprime el archivo /opt/data/web.GZ a /optar en el controlador ansible.

Uncomprimir un archivo en el nodo remoto

Para especificar el sistema de origen remoto, use el remota_src = sí opción.

--- - Hosts: Tareas de servidores web: - Nombre: Uncompress /TMP /Web.BZ2 a/OPT en el host remoto Unarquivo: src:/tmp/web.BZ2 Dest: /Opt / remota_src = sí 

El libro de jugadas arriba incomprime el archivo /TMP/Web.bz2 en el nodo remoto al /optar/ directorio.

5. Programar tareas con Ansible

El cron módulo Ayuda a programar trabajos en libros de jugadas Ansible.

Crear una tarea programada

Considere el libro de jugadas a continuación.

--- - Hosts: WebServer Tareas: - Nombre: Crear una tarea programada Cron: Nombre: Ejecutar la asistencia de los empleados Trabajo: SH/Opt/Scripts/Assisterace.SH MES: 4 DÍA: 5 horas: 17 minutos: 00 

El libro de jugadas ejecuta el guión de asistencia el 5 de abril a las 5:00 p.m.

Programe un script en una fecha específica

Si desea programar este script para que se ejecute solo si el quinto día de abril es un lunes, use el atributo del día de la semana: 1. 0 denota el domingo y 6 denotos el sábado según la notación de Cron.

Mes: 4 días: 5 horas: 17 minutos: 00 lunes a la semana: 1 

Un asterisco (*) En cualquiera de estos campos indica cualquier valor.

Ejecutar un trabajo en una cita

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

Mes: 4 días: 5 horas: 17 minutos: 00 lunes a la semana: * 

Ejecutar un trabajo en un día específico cada mes

Para ejecutar el trabajo cron el quinto día de cada mes a las 5:00 p.m., use la configuración a continuación.

Mes: * Día: 5 horas: 17 minutos: 00 lunes a la semana: * 

Ejecutar un trabajo diariamente

Para ejecutar el trabajo de Cron diariamente a las 5:00 p.m., configure la configuración de tiempo como se muestra:

Mes: * Día: * Hora: 17 minutos: 00 Lunes de 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 minuto: * Día de la semana: * 

6. Administrar usuarios y grupos con Ansible

También puede administrar usuarios y grupos dentro de Ansible Playbooks con bastante esfuerzo.

Crear un nuevo usuario

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

--- - Hosts: Tareas de servidores web: - Nombre: Crear un nuevo usuario de usuario: Nombre: Jack 

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

- Nombre: Crear un nuevo usuario Usuario: Nombre: Jack Comentario: Jack Peters UID: 1002 Grupo: Administradores Shell: /bin /Bash 

Eliminar un usuario

Para eliminar al usuario, use el Eliminar: si declaración.

- Nombre: Eliminar el usuario del usuario 'Jack': Nombre: Jack State: Ausente Eliminar: si 

Crea un nuevo grupo

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

- Nombre: Crear un grupo Grupo: Nombre: Desarrolladores 

7. Crear archivos y directorios con Ansible

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

Crear un nuevo directorio

Por ejemplo, para crear un nuevo directorio.

--- - Hosts: WebServer Tasks: - Nombre: Crear un nuevo archivo de directorio: ruta: /opt /app state: directorio 

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

- Hosts: WebServer Tasks:-Nombre: Cree un nuevo archivo de directorio: ruta: /opt /estado web: propietario del directorio: www-data Group: www-data Modo: 0644 

Además, puede crear directorios recursivamente utilizando el Recurse: si declaración.

--- - Hosts: Tareas de servidores web:-Nombre: Crear directorios Archivo recursivamente: ruta:/opt/web/estado de aplicación Estado: Directorio propietario: www-data Group: www-data Modo: 0644 RECURSO: Sí 

Crear un archivo

Para crear un archivo, use el Estado: tocar opción.

--- - Hosts: WebServer Tasks: - Nombre: Cree un archivo nuevo archivo: ruta:/opt/web/index.html Estado: tocar Propietario: Grupo WWW-Data: Modo de datos www: 0644 

8. Administrar el almacenamiento con Ansible

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

Crear un grupo de volumen LVM

Considere el libro de jugadas a continuación:

--- - Hosts: Tareas de servidores web: • Nombre: Crear grupo de volumen LVM LVG: VG: VG1 PVS: /dev /SDA1 Pesize: 32 

Esto crea un grupo de volumen encima de /dev/sda1 partición con un tamaño físico de tamaño de 32 MB.

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

Crear un volumen lógico

--- - Hosts: WebServer Tareas: - Nombre: Crear volumen LVM lvol: vg: vg1 lv: lvol1 pvs: /dev /sda1 

9. Administrar sistemas de archivos con Ansible

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

Crear un sistema de archivos

El libro de jugadas a continuación crea el tipo de sistema de archivos de XFS en el volumen del bloque.

--- - Hosts: WebServer Tasks: - Nombre: Crear un sistema de archivos del 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 montar Módulo como se muestra en el siguiente libro de jugadas:

--- - Hosts: Tareas de servidores web: - Nombre: Monte un sistema de sistema Montaje: Fstype: XFS src:/dev/vg1/lvol1 ruta:/opt/estado web: montado 
Conclusión

Esto concluye el tema. Hemos cubierto varias tareas de administración del sistema que se pueden lograr mediante módulos incorporados específicos en libros de jugadas Ansible.