Posts Tagged “sistemas”

    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 No Hay Comentarios »

    En una entrada anterior ya explicamos brevemente el funcionamiento de Nagios para monitorizar el estado de nuestros servidores y servicios, y recibir alertas ante cualquier problema detectado.

    También hablamos del software NRPE (Nagios Remote Plugin Executor) que complementaba el uso de Nagios para poder realizar los chequeos internamente. Es decir, Nagios no sólo comprueba el servicio desde fuera (conectándose al servicio), sino que puede conectarse al software NRPE del servidor chequeado, y una vez dentro realiza comprobaciones internas utilizando cualquier lenguaje de programación o scripting.

    Utilizando estas dos herramientas tenemos un completo sistema de monitorización que nos avisa casi inmediatamente de cualquier error que se produzca. De esta manera reducimos los tiempos de caída de nuestros servicios, al detectar los problemas con mayor rapidez.

    Además, con Nagios, podemos ir un poco más allá y configurarlo de tal manera que sea el propio Nagios (con ayuda de NRPE) el que responda automáticamente ante un problema de un servicio, y esté programado para resolverlo inmediatamente de manera desatendida.

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    En ocasiones puede ocurrir que necesitemos acceder a ciertas tablas de nuestra base de datos desde una red poco segura. Por supuesto, siempre podemos crear una base de datos con las tablas replicadas que necesitemos. De esta manera podremos leer toda la información de esas tablas sin necesidad de acceder a la base de datos central.

    ¿Pero qué ocurre si además de poder leer esas tablas necesitamos insertar o actualizar datos?

    Siempre podríamos hacer una doble replicación, pero el sistema se vuelve demasiado complicado, además de de no tener toda la información ‘de primera mano’ en la base de datos central, ya que parte de la información viene ‘replicada’, con lo que no podremos replicar toda la base de datos a otro lugar (por ejemplo para tener una copia como espejo, o simplemente para balancear las lecturas entre varias bases de datos).
    No es muy aconsejable realizar una doble replicación a no ser que sea absolutamente necesario y no haya otra posibilidad.

    Pero hay otra posibilidad mucho más sencilla y elegante. Se trata de las tablas federadas, un tipo de motor de Mysql ‘FEDERATED’ en las que se crea un enlace entre la tabla ‘federada’ y la tabla principal de la base de datos central. Es por ello que esta tabla no contiene datos, sólo el enlace mencionado.

    Por ejemplo si tenemos en la base de datos central (de un servidor principal) una tabla:

    CREATE TABLE prueba (
    idTabla INT(5) NOT NULL AUTO_INCREMENT,
    dato VARCHAR(20) NOT NULL DEFAULT ”,
    PRIMARY KEY (idTabla)
    )
    ENGINE=MyISAM

    En la base de datos secundaria (de otro servidor) la tabla federada sería:

    CREATE TABLE prueba (
    idTabla INT(5) NOT NULL,
    dato VARCHAR(20) NOT NULL DEFAULT ”
    )
    ENGINE=FEDERATED
    CONNECTION=’mysql://usuario_de_conexión@IP_del_servidor:3306/base_de_datos/prueba’;

    Evidentemente, la tabla principal y la tabla federada tendrán la misma estructura, aunque la tabla federada no necesita AUTO_INCREMENT ni índices, ya que no almacena datos, sólo funciona como una interfaz.

    ¿Cómo funciona exactamente una tabla federada?

    se-federated-structure

    Imaginemos que tenemos una base de datos central en un servidor principal, y otra base de datos secundaria en otro servidor donde crearemos nuestra tabla federada. En este caso, la cadena ‘CONNECTION’ de la tabla federada apuntará a la tabla real de la base de datos central (necesitaremos un usuario de conexión que se creará en la base de datos central para tal menester).

    Cuando se lleva a cabo una operación de escritura en la tabla federada, ésta se conectará a la base de datos central, y le enviará la operación a realizar sobre la tabla real. La base de datos central realizará la operación y devolverá el resultado a la base de datos secundaria que informará al usuario.

    El uso de tablas federadas es totalmente transparente para el usuario (el funcionamiento es igual que si fuese real), y de esta manera nos permite crear bases de datos secundarias sólo con las tablas necesarias y con posibilidad de escritura.

    Más información en la web de Mysql

    Comments No Hay Comentarios »

    La unidad de laboratorios de la EPS ha utilizado a lo largo de estos años (y sigue utilizando) GNU/Linux como el sistema operativo principal para la gran mayoría de servidores a su cargo. Hemos usado diferentes distribuciones, según sus características y las necesidades propias del servicio en ese momento, pero intentando que hubiese una distribución ‘base’ que estuviese instalada en la mayoría de servidores, para facilitar así su administración.

    La primera distribución utilizada, allá por 1996 fue la Slackware 3.1 (también llamada Slackware 96). Slackware es una de las distribuciones más antiguas (todavía sigue vigente), y era por entonces una de las distribuciones más importantes (si no la más).

    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    Si eres usuario de esta Mysql puede que en algún momento te hayas olvidado de la contraseña de tu usuario. No hay problema, siempre puedes acceder como root (o pedir al usuario root que acceda al mysql) y cambiar la contraseña. Pero ¿qué pasa si el usuario root olvida su contraseña?

    Mysql deja una puerta trasera (realmente hay más de una) por la que poder acceder y resolver este tipo de problema. Estos son los pasos a seguir para poder cambiar la contraseña de root de mysql bajo Linux (en Windows los pasos son muy similares):

    • El primer paso será acceder al equipo como usuario root del sistema.
    • Escribimos el comando de cambio de contraseña. Por ejemplo:

    SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘nuevo password’);

    y lo guardamos en un fichero de texto con cualquier nombre (por ejemplo nuevopasswd.sql), teniendo en cuenta que debemos darle permiso de lectura al usuario mysql que es el que ejecuta el servicio mysql.

    • Modificamos el fichero de configuración de mysql (my.cnf) para añadirle en el apartado [mysqld] la opción:

    init-file = /path_al_fichero/nuevopasswd.sql

    Esta opción hará que Mysql ejecute el comando del fichero en el arranque, antes de permitir ninguna conexión.

    • Reiniciamos el servicio mysql y comprobamos que ya podemos conectarnos como root con la nueva contraseña.
    • El último paso será borrar el fichero de texto con la nueva contraseña así como la línea ‘init-file’ de my.cnf, para que no la tenga en cuenta en futuros reinicios.

    De esta sencilla manera podemos solucionar un grave problema de una manera rápida y segura, con tan sólo un reinicio del servicio.

    Comments 1 Comentario »

    Si queremos enviar los logs de las consultas que recibe nuestra base de datos Mysql a un servidor de logs remoto, ya que esto no es posible mediante directivas de configuración en el fichero my.cnf, podemos hacer uso de las funcionalidades del servicio rsyslog, en concreto las que nos ofrecen los módulos imfile y omrelp para monitorizar los cambios que se produzcan en ficheros y reenviar dichos cambios al sistema remoto de logs.

    Para ello, vamos a suponer que tenemos configurado el fichero my.cnf de nuestro servidor de base de datos (BBDD) para que genere los siguientes logs:
    Lee el resto de esta entrada »

    Comments No Hay Comentarios »

    Las conexiones Ethernet que se han implementado en el edificio Politécnica I para los equipos personales del alumnado, profesorado y personal de la Universidad de Alicante se han configurado mediante la norma IEEE 802.1X,  la misma que soporta la red wifi de la UA (EDUROAM). A continuación, se explica cómo se ha llevado a cabo desde el punto de vista técnico.

    La norma IEEE 802.1X es válida tanto para redes inalámbricas como para redes cableadas y consiste, en resumen, en que los usuarios deben autenticarse antes de obtener acceso a los recursos de red con sus equipos.802.1x-wifiycable

    Para la autenticación de los usuarios se utiliza un servidor RADIUS (Remote Authentication Dial-In User Services) estándar basado en el método cliente/servidor de intercambio de información entre un dispositivo de acceso remoto (RAS), el cliente y un servidor que contiene información sobre los perfiles individuales de usuarios, como los nombres de usuario, contraseñas y privilegios de acceso así como proporciona autentificación centralizada, autorización, cuentas y auditoría de información sobre el acceso a la red. RADIUS puede obtener la información sobre estos perfiles personalizados de los usuarios desde un servidor de directorio LDAP.

    802.1x-switchyRADIUS
    En concreto, durante la autenticación del usuario en la red Ethernet de EPSAlicante mediante IEEE 802.1X, el conmutador actúa como agente entre el cliente y el servidor RADIUS solicitándole el acceso a la red. El cliente y el servidor RADIUS intercambian información de autenticación a través de mensajes Extensible Authentication Protocol (EAP).  El conmutador no interpreta los mensajes del protocolo EAP ni tampoco recopila información del perfil del usuario sino que recibe una indicación de autorización o desautorización desde el servidor RADIUS y configura ese puerto Ethernet donde está conectado el cliente para pasar o filtrar tráfico (según haya tenido éxito o no la autenticación).
    En la red Ethernet de EPSAlicante además se configura el puerto Ethernet del conmutador para que pertenezca a la misma VLAN en la que está físicamente el cliente, es decir, si está en el laboratorio de docencia L24, estará en la VLAN del laboratorio L24 y se le asignará direccionamiento IP de ese mismo laboratorio exactamente igual y sin ninguna diferencia a nivel de red a los equipos fijos instalados en el laboratorio.
    802.1x-EAP
    Las tramas EAPOL  (EAP over LAN) son mensajes EAP que son los únicos admitidos durante el proceso de autenticación entre el conmutador y el cliente. Una vez el cliente se ha autenticado con éxito, el conmutador autoriza el tráfico en ese puerto Ethernet para ese cliente y lo incluye en la VLAN del laboratorio en el que se encuentre y, a continuación, la red de EPSAlicante le asigna el direccionamiento IP correspondiente a ese laboratorio de manera automática mediante DHCP.
    Se muestra a continuación el proceso de interacción entre el cliente, el conmutador y el servidor RADIUS:
    802.1x - Esquema interacciones

    Comments No Hay Comentarios »

    Partiendo de una instalación típica de Ubuntu 12.04, instalamos el paquete wicd-gtk (wicd con frontend Gnome/Gtk):

     

    instalarWicd-gtk

    Lee el resto de esta entrada »

    Comments 1 Comentario »