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 :
- Interface de confiance pour le DHCP Snooping
- Peut-être configuration ISE (ND, NDG)
- Intégration avec :
- Affiner le flux de travail PnP ZTP
- Et d'autres tâches communes
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
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
Installer
ansible-galaxy install oliverl_21.ios_config
Licence
Unknown
Téléchargements
103
Propriétaire
nothing to tell