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:

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

Referencia

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

Acerca del proyecto

Cisco IOS Configuration role

Instalar
ansible-galaxy install oliverl_21.ios_config
Licencia
Unknown
Descargas
103
Propietario
nothing to tell