Ansible | Ejecutar comandos CLI en multiples dispositivos Cisco IOS con cisco.ios.ios_config

Anteriormente, he mostrado varios playbooks sencillos con Ansible para realizar comandos del tipo show para mostrar configuración de los routers y switches. 

Ahora os mostraré como ejecutar comandos CLI en multiples dispositivos Cisco IOS con la ayuda del módulo de Ansible llamado cisco.ios.ios_config.

Básicamente con este módulo lo que conseguiremos es entrar en modo de configuración global dentro de un router o un switch (lo mismo a hacer un conf t) y luego ejecutariamos los comandos de configuración de Cisco.

 

Para entenderlo mejoren el siguiente ejemplo, ejecutariamos los siguientes comandos CLI:

Router#conf t
Router(config)# snmp-server host 192.168.1.50 version 2c <communitystring>
Router(config)# snmp-server host 192.168.1.50 version 2c <communitystring>
Router(config)# snmp-server host 192.168.1.50 version 2c <communitystring>
Router(config)# end
Router#copy run start (enter)

Para hacer lo mismo en Ansible y a su vez ejecutarlo en multiples dispositivos (definidos en el archivo de hosts), seugiriamos los siguientes pasos:

Paso 1. Confgurar el archivo de Hosts

 root@angel-pc:/etc/ansible# nano hosts

[devices]
192.168.1.10
192.168.1.20

[devices:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_connection=network_cli
ansible_network_os=ios
ansible_ssh_user=usuario_ssh
ansible_ssh_pass=password_ssh


Paso 2. Configurar el playbook donde invocaremos al modulo de Ansible cisco.ios.ios_config

 root@angel-pc:/etc/ansible# nano config_snmp.yml

--
- hosts: all
  gather_facts: false

  tasks:
    - name: Configure SNMP servers
      cisco.ios.ios_config:
        lines:
        - snmp-server host 192.168.1.50 version 2c <communitystring>
        - snmp-server host
192.168.1.50 version 2c <communitystring>
        - snmp-server host
192.168.1.50 version 2c <communitystring>

      register: print_output

    - debug: var=print_output.stdout_lines

    - name: Save running to startup when modified
      cisco.ios.ios_config:
        save_when: modified

Paso 3. Ejecutar el script


 root@angel-pc:/etc/ansible# ansible-playbook  /etc/ansible/config_snmp.yml

Comentarios

Entradas populares de este blog

EVE-NG: Instalación de EVE-NG

Fortigate: Capturar paquetes (Packet capture/sniffer)

Cisco ISE | Certificados SSL públicos para Guest Portal