AnsibleEPS es una colección de playbooks de Ansible desarrollada en la Unidad de Laboratorios de la EPS para automatizar la infraestructura IT del centro. Nos permite gestionar la gran cantidad de servicios y servidores que tenemos, automatizando las principales tareas de administración de sistemas y centralizando toda la información relacionada con configuraciones en un único repositorio.

    Figura 1. Esquema de funcionamiento de AnsibleEPS

    Las tareas que hemos automatizado, por tanto, son la instalación, configuración y chequeo de software, servicios, usuarios, aspectos de seguridad, etc (aquí para más detalles) de sistemas GNU/Linux, en concreto, Debian, Ubuntu Server 14.04 y CentOS, en los cuales se configura la gestión de usuarios del sistema con LDAP y PAM y los clientes DNS (/etc/resolv.conf),  Bácula para copias de seguridad, OSSEC, Munin, Nagios y NTP para el tiempo del sistema; así como servicios como DHCP, Syslog, Nagios, Munin, filtros de red con iptables, etc. La configuración está personalizada para cada servidor dependiendo de sus características (distribución, emplazamiento lógico…) y los servicios que proporciona.
    Las tareas se realizan a partir de ficheros de control situados en el repositorio central mencionado (ver figura 1). Desde él se ejecutan los playbooks encargados de realizar las tareas deseadas permitiéndonos controlar los cambios que se han realizado en las configuraciones, proporcionando así una comprobación extra de seguridad. Estas tareas de administración se pueden realizar de una de estas formas (o ambas) y cuya explicación gráfica se puede ver en la figura 2:

    • De modo directo: usando el menú proporcionado y seleccionando la opción adecuada. Podemos usar esta forma para cambiar la configuración de cientos de servidores en unos segundos, simplemente modificando los ficheros de centrales de control y ejecutando los playbooks correspondientes.
    • Periódicamente, programando (mediante cron) cuándo queremos ejecutarlas (por ejemplo, a las 2 de la madrugada).Con esta forma, podemos tener la seguridad de que los servidores están correctamente configurados ya que, en el caso de que alguno ‘se desconfigure’, la administración ‘en background‘ lo devuelve al estado correcto (e informando de los cambios realizados).

    Figura 2. Modos de funcionamiento

    Todos los cambios realizados y errores producidos se registran para poder ser consultados.

    Su funcionamiento está probado para: CentOS 6, Debian 4, 6, 7 y 8 y para Ubuntu 14. Hay un fichero específico para cada sistema operativo y versión en el directorio ‘/etc/ansibleEPS/group_vars’.

    AnsibleEPS se puede descargar (la instalación es muy sencilla) con un inventario básico y variables creadas para la infraestructura de ejemplo mostrada en la figura 3:

    Figura 3. Infraestructura de ejemplo

    Los playbooks desarrollados1 para la infraestructura de ejemplo proporcionada con los servicios indicados (ver figura 3) son los siguientes:

    Playbook Descripción Servidores afectados
     baculaAdmon.yml  Configuración de los servidores baculaAdmon  baculadmon1
     common.yml  Configuración básica de servidores: usuarios, grupos, software, PAM, etc.  Todos
     cron.yml  Configuración del crontab del servidor Ansible para lanzar todos los playbooks diariamente.  ansible_server
     crontab.yml  Configuración del crontab en los servidores  Todos
     dhcp.yml  Configuración de los servidores DHCP  server_12, server_22, server_32
     hostsFile.yml  Configuración de /etc/hosts en los servidores  Todos
     iptables.yml   Configuración de las Iptables en los servidores  Todos
     listaCorreos.yml  Configuración lista de correos (locales y alias)  hermes
     munin.yml  Configuración lista de hosts de los servidores maestros de Munin  server_22
     nagios.yml  Configuración Nagios de los servidores maestros de Nagios  sentinel, server_12
     nrpe.yml  Configuración del Nagios NRPE en los servidores  Todos
     pamAccess.yml  Configuración de la PAM Access (/etc/security/access.conf) en los servidores  Todos
     proxmox.yml  Configuración de los servidores Proxmox  proxmox
     sudo.yml  Configuración del Sudo en los servidores  Todos
     update.yml  Actualización de software en los servidores  Todos
     wrappers.yml  Configuración de TCP Wrappers (/etc/hosts.deny y /etc/hosts.allow) en los servidores  Todos

    Tabla 1.- Lista de playbooks de la infraestructura de ejemplo

    En la tabla 1 iremos enlazando las entradas que publicaremos con la explicación de cada playbook.

    ¡Esperamos que os sea útil!

    (1) No es necesario utilizar todos los playbooks como ‘un todo, un programa’. Se puede utilizar los playbooks que nos interesen, juntos o por por separado.

    Be Sociable, Share!
    Una Respuesta a “AnsibleEPS: Colección de playbooks de Ansible”
    1. […] básica de servidores como la gestión de usuarios, grupos, etc (ver tabla 1). Todas estas tareas, en nuestro ejemplo, se realiza con el playbook common. common.yml se encarga de realizar la configuración básica de […]

    2.  
    Deja una Respuesta

    Debes estar identificado para dejar un comentario. Identifícate »