Treo Blog

En este espacio puedes explorar las últimas tendencias y noticias en tecnología, seguridad informática e infraestructura TI.

  • Jonathan Rodriguez Paipa

Consejos sobre la gestión de dispositivos IoT en el perímetro con Red Hat Ansible Automation

Por Matthew Taylor



Crédito: Pexels

Los dispositivos de Internet de las cosas (IoT) son geniales. Se pueden implementar en el campo adjuntos a un edificio o camión y enviar todos estos datos asombrosos. Si las cosas van muy bien, es posible que tenga cientos o miles de dispositivos implementados.


Genial, tenemos miles de dispositivos implementados, pero ¿cómo los administramos? ¿Cómo los configuramos y actualizamos sin tener que enviar a alguien y tocar el dispositivo? Con Red Hat Ansible Automation Platform y Red Hat Ansible Tower, podemos administrar de forma centralizada estos dispositivos implementados de forma remota.





Ansible a través de conexiones celulares


Si tiene suerte, sus dispositivos implementados tendrán conexiones de red cableadas y podrá tratar el dispositivo como lo haría con cualquier otro servidor o dispositivo de red.


Lo más probable es que este no sea el caso y su conectividad sea a través de una red celular. Las redes celulares pueden presentar varios desafíos al intentar administrar un dispositivo con Ansible. Las redes celulares pueden interrumpir las conexiones, pueden tener una latencia inconsistente, las tasas de transferencia de datos varían de un dispositivo a otro. Todos estos problemas potenciales pueden afectar el rendimiento de sus libros de jugadas de Ansible.


Sintonización SSH


En el corazón de cada libro de jugadas de Ansible hay una conexión SSH a un dispositivo. Hay algunas opciones de SSH que se pueden usar para mejorar la solidez de la conexión SSH en una red celular.


Keep Alives


Un problema que puede suceder es que cuando se interrumpe una conexión celular, la conexión de red subyacente no se cierra correctamente, SSH cree que la conexión aún está activa y el libro de jugadas se bloquea hasta que el kernel finalmente cierra la conexión, pero eso puede llevar horas. Para evitar que el libro de jugadas se cuelgue, se debe configurar el mantenimiento del cliente SSH.


Las opciones de SSH ServerAliveInterval establecen el intervalo entre el envío de Keep Alives en segundos y ServerAliveCountMax establece el número de Keep Alives que el servidor puede perder antes de que el cliente interrumpa la conexión. Me gusta configurar estas opciones SSH en ansible.cfg


Aquí configuramos el intervalo de mantenimiento activo para que sea cada 5 minutos y permitimos que el servidor pierda 2 mantenimiento activo. Con esta configuración, la conexión SSH del cliente tardaría aproximadamente 15 minutos en cerrarse.


Canalización Ansible


Una recomendación general de rendimiento de Ansible es habilitar la canalización. La canalización reduce la cantidad de conexiones SSH realizadas durante la ejecución de un libro de jugadas.


Diseño de libro de jugadas


Al diseñar libros de jugadas para administrar dispositivos a través de conexiones celulares, hay algunas consideraciones adicionales que deben tenerse en cuenta.


Almacenamiento en caché de hechos


Habilitar el almacenamiento en caché de datos puede acelerar los libros de jugadas al no tener que ejecutar la configuración en cada ejecución del libro de jugadas, pero también ahorra en el uso de datos al no tener que extraer los mismos datos en cada ejecución del libro de jugadas. Aquí es donde Red Hat Ansible Tower realmente ayuda.


Se puede programar un trabajo una vez al día para ejecutar la configuración en todos los hosts y almacenar en caché los datos para su uso en ejecuciones posteriores del trabajo. Entonces, todos sus libros de jugadas pueden establecer collect_facts: false. Si un libro de jugadas necesita tener los datos más recientes, puede habilitar collect_facts en ese libro de jugadas específico.


Datos de la etapa


Un escenario es la necesidad de actualizar el firmware del dispositivo. Un libro de jugadas típico puede copiar el firmware y luego ejecutar la actualización como un libro de jugadas. El nuevo enfoque sería tener un libro de jugadas para copiar el firmware al dispositivo y tener otro para ejecutar la instalación.