oliverl_21.ios_config

ansible-role-ios_config

Rôle Ansible de configuration Cisco IOS

Tâches Actuelles :

  • Définition du serveur Radius
  • Paramètres globaux ISE/802.1x
  • Configuration du capteur de périphérique
  • Configuration de l'interface 802.1x (partiellement, la logique de choix d'interface est manquante)
  • Flux de travail PnP ZTP

Fonctionnalités :

  • Connexion via Bastion/Jumphost basé sur la variable d'inventaire
  • Passé de Paramiko à libssh

À Faire :

Exigences

Définition du Serveur Radius :

  • Adresse IP
  • Nom d’hôte
  • Clé Radius
  • Interface source Radius

Définition de l'Interface

  • VLAN d'accès
  • VLAN de secours (optionnel)
  • VLAN voix (optionnel)
  • Mode faible impact (optionnel)

Passer à LibSSH

Référence

Utilisation du module libssh (actuellement uniquement pour Linux)

pip3 install ansible-pylibssh

Changer pour libssh pour ce rôle

# roles/ios_config/default.yml
ansible_network_cli_ssh_type: libssh

Ajoutez ce qui suit à ansible.cfg pour l'activer globalement

# ansible.cfg
[persistent_connection]
ssh_type = libssh

Connexion Bastion/Jumphost

Pour utiliser un Bastion/Jumphost pour se connecter aux appareils réseau, créez :

# 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 %}

# Bastion host par défaut pour tous les hôtes
bastion_host: ""

Ajoutez bastion_host: "votre-hôte" à vos variables d'hôtes/groupes d'inventaire où le Jumphost doit être utilisé. Le Jumphost doit être défini dans l'inventaire.

Exemple

# inventory/group_vars/ios.yml
---
ansible_user: admin
ansible_network_os: ios
bastion_host: tux01
# inventory/<inventoryfile>
[debian]
tux01 ansible_host=tux01.example.org

[debian:vars]
ansible_user=tux
ansible_become_method=sudo

Variables du Rôle

  • fact_gather_enabled
    • par défaut à vrai
  • push_config
    • définit si la configuration doit être poussée vers le périphérique ou si la différence de configuration doit être stockée localement
  • ios_int_config_enabled
    • active la configuration de l'interface
  • ios_sensor_config_enabled
    • active la configuration du capteur de périphérique IOS
  • ios_1xglobal_config_enabled
    • active la configuration globale ISE/802.1x IOS
  • int_global_config_enabled
    • active la configuration de l'interface 802.1x
  • pnp_config_enabled
    • active la génération de la configuration PnP qui doit être utilisée avec fact_gather_enabled : false

Dépendances

Rôles : aucun

Collection :

  • cisco.ios
  • ansible.netcommon

Exemple de Playbook

À Faire

- name: exemple
  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 }

Licence

GPL-3.0-or-later

Informations sur l'Auteur

oliverl-21

À propos du projet

Cisco IOS Configuration role

Installer
ansible-galaxy install oliverl_21.ios_config
Licence
Unknown
Téléchargements
103
Propriétaire
nothing to tell