Una breve introducción a los roles de Ansible para la administración del sistema Linux

Ansible es una plataforma de automatización de código abierto que incluye administración de configuración, implementación de aplicaciones y orquestación de infraestructura. Es una herramienta de automatización popular para ingenieros de DevOps y administradores de sistemas. Los administradores de sistemas a menudo se enfrentan al agotamiento debido a las largas horas de trabajo y el desempeño de tareas repetitivas en muchos sistemas, pero Ansible facilita la realización de estas tareas. Las tareas como la creación de usuarios, la administración de servicios y la instalación de software se pueden realizar con Ansible. Ansible se basa en procedimientos en lugar de declarativo, lo que significa que escribe todos los pasos necesarios en un archivo YAML y luego los ejecuta secuencialmente en todos los sistemas de destino.

Índice

nudos

En la arquitectura de Ansible, tiene un nodo de controlador y nodos administrados. Ansible se instala solo en el nodo del controlador. Es una herramienta sin agentes que no necesita instalarse en los nodos administrados. El controlador y los nodos administrados están conectados mediante el protocolo SSH. Todas las tareas están escritas en un "libro de jugadas" utilizando el lenguaje YAML. Cada libro de jugadas puede contener varios que contienen y tareas que contienen. Los módulos son scripts independientes y reutilizables que manejan ciertos aspectos del comportamiento de un sistema. Los módulos de Ansible también se conocen como complementos de tareas o complementos de biblioteca.

Los roles

Los manuales para tareas complejas pueden volverse largos y, por lo tanto, difíciles de leer y comprender. La solución a este problema es Ansible. Al usar roles, puede dividir libros de jugadas largos en varios archivos, lo que hace que cada libro de jugadas sea fácil de leer y comprender. Los roles son una colección de modelos, archivos, variables, módulos y tareas. El objetivo principal de los roles es reutilizar el código de Ansible. Los ingenieros de DevOps y los administradores de sistemas siempre deben intentar reutilizar su código. Un rol de Ansible puede contener varios playbooks. Puede reutilizar fácilmente el código escrito por cualquier persona si el rol es adecuado para un caso determinado. Por ejemplo, puede escribir un libro de jugadas para el alojamiento de Apache y luego reutilizar ese código modificando el contenido de index.html para cambiar las opciones de otra aplicación o servicio.

La siguiente es una descripción general de la estructura de funciones de Ansible. Consta de muchos subdirectorios, tales como:

|-- README.md
|-- defaults
|-------main.yml
|-- files
|-- handlers
|-------main.yml
|-- meta
|-------main.yml
|-- tasks
|-------main.yml
|-- templates
|-- tests
|-------inventory
|-- vars
|-------main.yml

Inicialmente, todos los archivos se crean vacíos utilizando el ansible-galaxy pedido. Entonces, dependiendo de la tarea, puede usar estos directorios. por ejemplo, el vars el directorio almacena las variables. En el tasks directorio, tienes main.yml, que es el libro de jugadas principal. el templates El directorio se utiliza para almacenar modelos de Jinja. el handlers El directorio es para almacenar administradores.

Beneficios de los roles de Ansible:

  • Permitir la reutilización del contenido
  • Haga que los proyectos grandes sean manejables

Los roles de Ansible son directorios estructurados que contienen subdirectorios.

Pero, ¿sabía que Red Hat Enterprise Linux también proporciona algunos Ansible Funciones del sistema administrar las tareas del sistema operativo?

Funciones del sistema

el rhel-system-roles está disponible en el canal Extras (EPEL). el rhel-system-roles El paquete se utiliza para configurar hosts RHEL. Hay siete faltas rhel-system-roles disponible:

  • rhel-system-roles.kdump: esta función configura el servicio de recuperación ante desastres de kdump. Kdump es una característica del kernel de Linux y es útil cuando se analiza la causa de un bloqueo del kernel.
  • rhel-system-roles.network: esta función está dedicada a las interfaces de red. Ayuda a configurar interfaces de red en sistemas Linux.
  • rhel-system-roles.selinux: este rol administra SELinux. Esto le permite configurar el modo SELinux, los archivos, el contexto del puerto, etc.
  • rhel-system-roles.timesync: esta función se usa para configurar NTP o PTP en su sistema Linux.
  • rhel-system-roles.postfix: esta función está dedicada a administrar el agente de transferencia de correo de Postfix.
  • rhel-system-roles.firewall: como sugiere el nombre, esta función es administrar la configuración del firewall del sistema host.
  • rhel-system-roles.tuned: Tuned es un servicio de ajuste del sistema Linux para monitorear dispositivos conectados. Este rol consiste por tanto en configurar el servicio optimizado para el rendimiento del sistema.

el rhel-system-roles el paquete se deriva de código abierto Funciones del sistema Linux. Esta función del sistema Linux está disponible en Ansible Galaxy. el rhel-system-roles es compatible con Red Hat, por lo que puede pensar en ello como si rhel-system-roles están aguas abajo de los roles del sistema Linux. Instalar rhel-system-roles en su máquina, use:

$ sudo yum -y install rhel-system-roles
or
$ sudo dnf -y install rhel-system-roles

Estos roles se encuentran en el /usr/share/ansible/roles/ directorio telefónico.

Esta es la ruta predeterminada, por lo que cada vez que use libros de jugadas para hacer referencia a estos roles, no necesita incluir explícitamente la ruta absoluta. También puede consultar la documentación para usar roles de Ansible. La ruta de la documentación es /usr/share/doc/rhel-system-roles

El directorio de documentación de cada rol contiene información detallada sobre ese rol. Por ejemplo, el archivo README.md es un ejemplo de este rol, etc. La documentación se explica por sí misma.

Aquí hay un ejemplo de rol.

Ejemplo

Si desea cambiar el modo SELinux de la máquina host local o de cualquier máquina host, use los roles del sistema. Para esta tarea, utilice rhel-system-roles.selinux

Para esta tarea, el libro de jugadas de ansible tiene este aspecto:

---

- name: a playbook for SELinux mode
 hosts: localhost
 roles:

- rhel-system-roles.selinux
 vars:

- selinux_state: disabled

Después de ejecutar el libro de jugadas, puede verificar si el modo SELinux ha cambiado o no.

Conclusión

Esta breve introducción a los roles de Ansible debería ser suficiente para comenzar a usarlos en sus libros de jugadas. Recuerde, Ansible está diseñado para agilizar y simplificar estas tareas repetitivas y facilitarle la vida al administrador de su sistema.

Artículos de interés

Subir