Cómo usar módulos Ansible para tareas de administración del sistema - Parte 6
- 4373
- 766
- Eduardo Tapia
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:
- Administración de paquetes y repositorios de software en Ansible
- Gestión de servicios utilizando Ansible
- Gestionar el firewall con Ansible
- Archivar archivos o carpetas con Ansible
- Programar tareas con Ansible
- Administrar usuarios y grupos con Ansible
- Crear archivos y directorios con Ansible
- Administrar el almacenamiento con Ansible
- 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: InstaladoInstalar 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: detenidoDetener 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: reiniciadoReiniciar 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 ansibleComprimir 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.
- « Cómo crear plantillas en Ansible para crear configuraciones en nodos administrados - Parte 7
- Polo un administrador de archivos de peso ligero moderno para Linux »