Posts Tagged “administración delegada”

    En esta entrada vamos a ver cómo automatizar con Ansible información 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 todos los servidores (excepto los que aparezcan en el grupo nocommon) de manera centralizada y, además, de poder realizar estos cambios de una sóla vez (en lugar de realizarlo para cada servidor, aunque también es posible modificar sólo un servidor o un grupo, con el parámetro –limit nombreServidor o nombreGrupo). De las tareas a realizar se encargan los ficheros de la tabla 1.

    Tarea Descripción
    manager.yml Gestión del usuario manager. Comprueba su existencia y lo crea y añade a grupos específicos (variable managerGroups), si es necesario.
    group.yml Gestión de grupos. Añade grupos de trabajo y los configura con los usuarios de la variable groupRoot
    repos.yml Gestión de los repositorios Con reposUpdate=y añadirá los repos necesarios para el sistema
    dselect.yml Instalación de dselect (en debian)
    concurrency.yml Asignación de concurrency=NONE (en debian)
    services.yml  Parada de servicios no requeridos indicados por la variable stopServices
    resolv.yml Gestión del cliente DNS /etc/resolv.conf para añadir el valor de domain, search y nameserver, usando respectivamente, las variables domain, search y nameservers.
    nscd.yml Instalación y configuración del servicio NSCD
    securetty.yml Gestión de los permisos de acceso /etc/securetty a partir del fichero estático files/etc/securetty
    locales.yml Gestión de las locales. Configura el fichero apropiado a cada distribución a partir de ficheros estáticos situados dentro de files/etc
    profile.yml Gestión del profile general /etc/profile según la variable profileEtc
    nvi.yml Instalación de nvi y configuración por defecto como vi
    utils.yml Instalación de software adicional
    pam-ldap.yml Instalación y configuración de las PAM con LDAP a partir de templates situados en el directorio templates/etc/ y las variables ldapA, ldapB y ldapC que indican 3 servidores LDAP diferentes
    syslog.yml Configuración del envío de logs a servidores remotos utilizando la variable syslog
    sshd.yml Configuración del servicio sshd usando la variable sshdConfig y sus atributos: permitRootLogin, clienteAliveInterval, clientAliveCountMax, matchGroup, logLvel y subsystemSftp.
    ntp.yml Instalación y configuración del servicio NTP
    muni-node.yml Instalación y configuración del cliente Munin-Node utilizando la variable muninMaster para indicar la lista de IPs de los servidores maestros de Munin.
    nrpe.yml  Instalación y configuración del cliente Nagios-NRPE, configurando /etc/hosts.allow a partir de la variable nagiosMaster
    bacula-df.yml  Instalación y configuración del cliente Bacula-FD a partir del template templates/etc/bacula/bacula.conf.XX.j2 y /etc/hosts.allow a partir de la variable baculaMaster
    ossec.yml  Instalación y configuración del cliente Ossec utilizando la variable ossecMaster y el template templates/var/ossec/etc/ossec.conf.XX.j2

    Tabla 1.- Lista de tareas del playbook common

    Los cambios se realizan modificando las variables apropiadas que, a través de las tareas correspondientes, terminarán realizando las operaciones necesarias para cumplir su función. Las variables para todas las tareas se declaran principalmente en el fichero general group_vars/all, aunque se pueden sobreescribir los valores en los ficheros de grupo o de host, según las necesidades específicas de cada servidor. Así mismo, si las variables dependen de la distribución, pueden estar declaradas en los ficheros específicos de cada distribución y versión.

    ¡Esperamos que os sea útil!

    Comments No Hay Comentarios »

    Las copias de seguridad son un elemento importante dentro de las técnicas de seguridad pasiva que nos permiten, ante un incidente de seguridad, recuperarnos de él minimizando el riesgo de pérdida de información. Básicamente consisten en decidir de qué queremos guardar una copia y cada cuánto tiempo (y por cuánto tiempo la mantendremos). Las repuestas a estas preguntas dependen de la importancia de los datos, de la frecuencia de cambio y de los recursos que tengamos para almacenar las copias. Una vez tomadas estas decisiones, deberemos ejecutar el plan de copias, con la herramienta elegida (en nuestro caso, Bacula) en todos y cada uno de los equipos (servidores o no) afectados por el plan.

    Bacula es una herramienta de copias de seguridad compuesta por diversos elementos que deben configurarse y, en concreto, Bacula-file debe instalarse en todos los nodos en los que se quiera realizar copias. En otra entrada posterior (la que hace referencia el playbook common) se explicará cómo se realiza dicha instalación. Para minimizar las tareas de administración y gestión del sistema de copias de seguridad, en la infraestructura IT de la EPS hemos desarrollado el playbook de Ansible baculaAdmon (baculaAdmon.yml) de la infraestructura de ejemplo descrita aquí y aquí. Este playbook permite realizar la configuración del servicio Bacula de manera centralizada para todos los elementos que intervienen en el servicio, además de poder:

    • realizar los cambios una sola vez (en lugar de realizarlo para cada servidor) y
    • comprobar la sintaxis antes de ejecutarlo en cada servidor y en caso de error, deshacer los cambios y continuar ejecutando la configuración anterior.

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    En la administración de sistemas y servicios existen muchas tareas repetitivas y periódicas cuya ejecución programamos haciendo uso del crontab. Muchas de estas, como las copias de seguridad, debemos hacerla en todos y cada uno de los servidores que administramos. Dentro de la gestión automatizada de la infraestructura IT de la EPS hemos automatizado esta tarea (la de programar tareas del cron) con el playbook crontab.yml (no se debe confundir con programar las tareas de Ansible que vimos en esta entrada)

    Este playbook permite realizar la configuración de las tareas de cualquier usuario para cualquiera de los servidores (excepto los que aparezcan en el grupo nocrontab) de manera centralizada y, además de poder realizar los cambios una sola vez (en lugar de realizarlo para cada servidor) también es posible modificar solo un servidor o un grupo (utilizando el parámetro –limit nombreServidor o nombreGrupo).

    La información de este playbook reside en el fichero crontab.yml y tiene la siguiente estructura:

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    Como vimos en el primer post dedicado a la gestión automatizada de infraestructua IT de la EPS disponemos de una colección de playbooks de Ansible que se encargan, cada uno de ellos, de realizar una serie de tareas concretas (sobre 1, todos o cualquier subconjunto de servidores). La ejecución de estos playbooks se realiza periódicamente para lo cual necesitaremos añadir las tareas al cron del servidor Ansible que gestiona la infraestructura (ver este ejemplo de infraestructura).
    En este post vamos explicar cómo realizamos esta tarea con Ansible y que, para nuestro ejemplo, será el playbook cron.

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    Como vimos en la entrada anterior, AnsibleEPS es una colección de playbooks de Ansible de la EPS que permite centralizar y automatizar las configuraciones de la infraestructura IT del centro. Para su instalación lo primero que debemos realizar es la descarga del contenido del directorio install El contenido del fichero ansibleEPS.tgz es el mismo que encontramos en el directorio de la aplicación en el repositorio  El fichero install.py es un guión de Python que nos permitirá instalar los playbooks de Ansible en nuestro equipo que actuará de servidor central de configuraciones que mencionábamos anteriormente (servidor Ansible).

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    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

    Lee el resto de esta entrada »

    Comments 1 Comentario »