oliverl_21.ios_config
ansible-role-ios_config
Rol de Ansible para Configuración de Cisco IOS
Tareas Actuales:
- Definición del Servidor Radius
- Configuraciones Globales de ISE/802.1x
- Configuración del Sensor del Dispositivo
- Configuración de la Interfaz 802.1x (parcialmente, falta la lógica para la elección de la interfaz)
- Flujo de trabajo PnP ZTP
Características:
- Conexión a través de Bastión/Jumphost basada en Variable de Inventario
- Cambio de Paramiko a libssh
Por Hacer:
- Interfaz Confiable de DHCP Snooping
- Tal vez configuración de ISE (ND, NDG)
- Integración con:
- Refinar el Flujo de Trabajo PnP ZTP
- Y más tareas comunes
Requisitos
Definición del Servidor Radius:
- Dirección IP
- Nombre de Host
- Clave Radius
- Interfaz de Origen Radius
Definición de Interfaz
- VLAN de acceso
- VLAN de respaldo (opcional)
- VLAN de voz (opcional)
- Modo de bajo impacto (opcional)
Cambio a LibSSH
Uso del Módulo libssh (actualmente solo en linux)
pip3 install ansible-pylibssh
Cambio a libssh para este Rol
# roles/ios_config/default.yml
ansible_network_cli_ssh_type: libssh
Agrega lo siguiente a ansible.cfg para activarlo globalmente
# ansible.cfg
[persistent_connection]
ssh_type = libssh
Conexión Bastión/Jumphost
Para usar un Bastión/Jumphost para conectarte a los Dispositivos de Red, crea:
# inventory/group_vars/all/ansible_ssh.yml
ansible_ssh_proxy_command: >-
{% if bastion_host is defined and bastion_host != '' %}
ssh {{ hostvars[bastion_host]['ansible_user'] }}@{{ hostvars[bastion_host]['ansible_host'] }}
-o Port={{ hostvars[bastion_host]['ansible_ssh_port'] | default(22) }}
-W %h:%p
{% endif %}
ansible_ssh_common_args: >-
{% if bastion_host is defined and bastion_host != '' %}
-o ProxyCommand="{{ ansible_ssh_proxy_command }}"
{% endif %}
# Bastión por defecto para todos los hosts
bastion_host: ""
agrega bastion_host: "tu-host"
a tus variables de host/grupo de Inventario donde se debe usar el Jumphost. El Jumphost debe estar definido en el Inventario.
Ejemplo
# inventory/group_vars/ios.yml
---
ansible_user: admin
ansible_network_os: ios
bastion_host: tux01
# inventory/<archivo_de_inventario>
[debian]
tux01 ansible_host=tux01.example.org
[debian:vars]
ansible_user=tux
ansible_become_method=sudo
Variables de Rol
- fact_gather_enabled
- por defecto es true
- push_config
- define si la configuración debe ser enviada al Dispositivo o si la diferencia de configuración debe ser almacenada localmente
- ios_int_config_enabled
- habilita la configuración de la interfaz
- ios_sensor_config_enabled
- habilita la Configuración del Sensor de Dispositivo IOS
- ios_1xglobal_config_enabled
- habilita la Configuración Global de ISE/802.1x en IOS
- int_global_config_enabled
- habilita la configuración de interfaz 802.1x
- pnp_config_enabled
- habilita la generación de configuración PnP y debe usarse con fact_gather_enabled: false
Dependencias
Roles: ninguna
Colección:
- cisco.ios
- ansible.netcommon
Ejemplo de Playbook
Por Hacer
- name: ejemplo
hosts: csw02
gather_facts: false
connection: network_cli
roles:
- { role: ios_config, ios_config_enabled: false, ios_sensor_config_enabled: true, ios_1xglobal_config_enabled: true }
Licencia
GPL-3.0-or-later
Información del Autor
oliverl-21
Instalar
ansible-galaxy install oliverl_21.ios_config
Licencia
Unknown
Descargas
103
Propietario
nothing to tell