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
Publicar un comentario