Treo Blog

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

  • Jonathan Rodriguez Paipa

Cinco consejos clave para comenzar su viaje de adopción de la automatización de redes

Por Landon Holley



Crédito: Pexels

Comenzar con un proyecto de automatización puede ser una tarea abrumadora, por decir lo menos. Como consultor y arquitecto de Red Hat, la pregunta que me hacen con más frecuencia es: "¿Cómo empiezo a hacer un proyecto de automatización de redes?" En esta publicación, compartiré cinco cosas que debe hacer para comenzar.


Hablo con todo tipo de personas sobre la automatización de redes. Después de pasar años desarrollando proyectos masivos de automatización de redes con decenas de miles y cientos de miles de dispositivos, creo que la administración de dispositivos es más fácil y accesible que nunca.





Ansible ha evolucionado rápidamente y, en muchos sentidos, la configuración del dispositivo es un problema que se ha resuelto de varias formas. A menudo, el mayor obstáculo es a menudo concentrarse en las diversas opciones e ideas sobre cómo hacer las cosas de una forma u otra.


Y luego, ¿cómo empezar a pensar siquiera en pasar de un pequeño laboratorio con unos pocos o tal vez una docena de dispositivos a una red de producción real con decenas, cientos o posiblemente miles y miles de dispositivos, que se supone que debe administrar y automatizar?


Esta es mi opinión sobre la forma más fácil para que las personas comiencen a administrar su red de una manera práctica.


Solo los hechos


La automatización de la red de Ansible comienza y termina con Ansible Facts: variables / detalles simples sobre sus dispositivos de inventario. Los "hechos" pueden ser casi cualquier cosa. Desde la salida de comandos predefinidos hasta la configuración en ejecución completa, almacenada línea por línea. Podemos recopilar hechos automáticamente o crearlos y configurarlos nosotros mismos.


De cualquier manera, Ansible Facts es la columna vertebral de todo lo que construimos. Desde la orquestación de comandos y la gestión del estado hasta la realización de copias de seguridad y restauraciones, y la creación o sincronización de una CMDB. ¡Y buenas noticias! ¡Existen numerosas opciones para recopilar datos de la red!


Lo primero que hago es usar los analizadores de configuración nativos de Ansible (Módulos de recursos de red, más sobre estos pronto) para analizar las configuraciones del dispositivo sin procesar en un modelo de datos. Para Cisco, Arista y JunOS, es así de simple:



gather_facts: true   
    # or #
- name: ios facts  
   ios_facts:    
     gather_subset: min  # compatible w/ Ansible <= 2.8
     gather_network_resources: all # network resource modules (2.9+)

El resultado:


ansible_net_version = 14.22.0F

Y en Ansible <2.8, utilizo una combinación de los módulos de hechos predeterminados y hechos personalizados que establezco al obtener el resultado de mis propios comandos ad-hoc:


name: collect output from ios device  
   ios_command:    
     commands:      
        - show version  
    register: output
name: set version fact  
 set_fact:    
   ansible_net_version: "{{ output.stdout[0] | regex_search('Version (\\S+)', '\\1') | first }}"

El resultado:

ansible_net_version = 14.22.0F

Los hechos también se pueden almacenar en caché. Las opciones incluyen almacenar datos cifrados en la base de datos de Red Hat Ansible Tower, o puede almacenar datos en caché en disco / memoria, o en un servicio de almacenamiento en caché externo (por ejemplo, memcached o redis). Hay muchas opciones: encuentre la que mejor se adapte a usted y a su entorno.


Comience con la gestión de estado y configuración


La creación de manuales de automatización de redes nunca ha sido tan rápida y sencilla. Además de almacenar información útil del dispositivo, Ansible también utiliza los hechos para crear un modelo de datos independiente del proveedor. Los módulos de recursos de red le permitirán publicar esos datos en Ansible para crear el mismo estado del dispositivo. Config-to code, y viceversa!



ansible_facts:  
  ansible_net_fqdn: rtr2  
  ansible_net_gather_subset:  
  - interfaces  ansible_net_hostname: rtr2  
  ansible_net_serialnum: D01E1309…  
  ansible_net_system: nxos  
  ansible_net_model: 93180yc-ex  
  ansible_net_version: 14.22.0F  
  ansible_network_resources:    
    interfaces:    
      - name: Ethernet1/1      
        enabled: true      
        mode: trunk    
      - name: Ethernet1/2      
        enabled: false

Identifique variables, defina el estado de su dispositivo deseado y los módulos harán el resto. Estos módulos saben cómo ejecutar los comandos detrás de escena que le dan el estado de configuración deseado. Con estos, Ansible determinará qué comandos deben enviarse y en qué orden, si ciertas líneas deben eliminarse primero, etc. Los módulos de recursos tienen la lógica incorporada para saber cómo se deben orquestar las propiedades de configuración y de qué formas específicas .


Utilice los datos de su red para crear o mejorar su base de datos de administración de configuración (CMDB)


Establecer una CMDB es el requisito previo para establecer la estabilidad a largo plazo en su infraestructura. Y con todos estos nuevos y elegantes detalles de inventario, tenemos todo lo que necesitamos para construir una CMDB a partir de Ansible Facts, no se requiere nada más. Reúna datos y configuraciones de todo en la red y guárdelos en algún lugar, como una pila ELK o repositorios Git.


Tenga en cuenta que Tower en sí no suele ser el mejor lugar para realizar búsquedas exhaustivas y análisis de registros / trabajos. En general, le recomendamos que descargue la búsqueda y el análisis a un servicio externo. Y a gran escala, y ciertamente a gran volumen, los hechos y el registro son la puerta de entrada a un proyecto de big data.


Para comenzar rápidamente, Netbox es una CMDB liviana que uso cada vez que tengo la opción. Consulte esta publicación en Ansible.com para obtener más información al respecto: Uso de NetBox para Ansible Source of Truth


Empiece a pensar en la escala y el rendimiento


Ahora que tenemos todas estas funciones básicas implementadas, es hora de comenzar a considerar las pruebas de escala y rendimiento. Simplemente anotar los tiempos de ejecución de Ansible CLI o Tower Job es el lugar más rápido para comenzar. Además, podemos analizar el tiempo de las tareas individuales.


Para ayudarnos en el proceso, hay una serie de complementos de devolución de llamada de Ansible que ayudarán con el ajuste del rendimiento. El primero, profile_tasks, imprime un desglose detallado de los tiempos de ejecución de las tareas, ordenados del más largo al más corto, así como un temporizador durante la ejecución del juego. Hablando de eso, el temporizador es otro complemento útil que nos muestra el tiempo total de ejecución:


callback_whitelist = profile_tasks, timer

Habilite los complementos profile_tasks y timer callback en su ansible.cfg, ejecute su libro de jugadas nuevamente y verá más resultados. Por ejemplo, perfilar las tareas de recopilación de datos en un solo host de inventario de Cisco:



ansible-playbook facts.yml

ansible_facts : collect output from ios device ------1.94s
ansible_facts : include cisco-ios tasks -------------0.50s
ansible_facts : set config_lines fact ---------------0.26s
ansible_facts : set version fact --------------------0.07s
ansible_facts : set management interface name fact --0.07s
ansible_facts : set model number --------------------0.07s
ansible_facts : set config fact -------------------- 0.07s

La automatización será única para cada organización y es importante realizar un seguimiento regular de los parámetros de rendimiento a medida que evolucionan sus funciones. Más allá del beneficio obvio de poder estimar con precisión los tiempos de ejecución de la automatización, puede determinar dónde se pueden realizar mejoras mientras monitorea proactivamente el código / lógica defectuosa que inevitablemente pasará por revisiones de pares.


No empieces de cero, usa Ansible Universe


Lleva tiempo construir a escala completa en una red grande, pero es una forma probada, verdadera y práctica de comenzar la adopción de la automatización de la red. La recopilación de datos y el registro que estamos haciendo a través de Ansible y Tower se prestan bien a una implementación rápida y una ampliación gradual para ejecutar en redes de todos los tamaños.


Este marco, y el objetivo fundamental de saber qué se está ejecutando en su red en un momento dado, se ha implementado con tremendo éxito en todos los proyectos de infraestructura de red en los que he trabajado. Los resultados del primer día son inmediatos y la base para su futura automatización se puede construir en el tiempo que lleva hacer una prueba de concepto (POC).


Para obtener más información, vea este seminario web donde exploramos algunos de los primeros pasos y desafíos clave en la aplicación de la automatización más allá de la infraestructura. También puede obtener más información viendo una grabación sobre este tema de Ansible Automates Tokyo 2020 a continuación.




Fuente: Blog de Red Hat

4 vistas0 comentarios
D&S colores.png

Un Servidor en Quien Confiar

CONTACTO

contactodirecto@datayservice.com

PBX + 57 6 8812277

Calle 54 # 26-60

ZIP 170004

Manizales, Colombia

REDES

logo-facebook.png
linkedin_circle-512.webp
logo-instagram-1.png

 © Data&Service, todos los derechos reservados.