arubanetworks.aruba_central_role

aruba-central-ansible-role

Ce rôle Ansible pour le réseau fournit un ensemble de modules et de plugins de gestion de configuration dépendants de la plateforme, spécialement conçus pour Aruba Central, qui est un système de gestion de réseau basé dans le cloud.

Exigences

  • Python 3.5+

  • Ansible 2.9 ou version ultérieure

    • Ansible 2.10+ nécessite que la collection ansible.netcommon soit installée.
  • La version minimale du firmware d'Aruba Central est 2.5.2.

  • Installez toutes les dépendances Ansible avec la commande suivante :

    ansible-galaxy install -r requirements.yml
    
  • Installez toutes les dépendances Python avec la commande suivante :

    pip install -r requirements.txt
    

Installation

Via Galaxy :

ansible-galaxy install arubanetworks.aruba_central_role

Via Github, utilisez la commande suivante. Utilisez l'option -f pour écraser la version actuelle du rôle :

ansible-galaxy install git+https://github.com/aruba/aruba-central-ansible-role.git

Notes

  • Les modules dans ce rôle utilisent l'API REST de Central. Pour des informations sur l'API REST et sur comment obtenir un accès pour l'utiliser, visitez le Aruba Developer Hub : Premiers Pas avec l'API REST.
  • Un jeton API doit être créé pour un utilisateur sur la passerelle API d'Aruba Central et un access_token valide et non expiré doit être utilisé. Pour plus d'informations sur la façon de commencer avec la passerelle API, vous pouvez également regarder cette vidéo YouTube.
  • Un jeton d'accès valide peut être utilisé dans un fichier d'inventaire comme mentionné dans la section Inventaire.
  • Assurez-vous que le jeton d'accès a été créé avec "Opérations Réseau" sélectionné dans la liste déroulante des applications lors de l'ajout d'un nouveau jeton sur la passerelle API.
  • Une fois qu'un nouveau jeton est généré, il aura un access_token et un refresh_token.
  • Un jeton d'accès est valide pendant 7200 secondes ou deux heures. Après deux heures, il expirera et un nouveau jeton doit être créé. Le temps d'expiration du jeton n'est actuellement pas configurable.
  • Le refresh_token, ainsi que le client_id et le client_secret, sont utilisés pour renouveler le jeton d'accès. Cette fonctionnalité est implémentée dans ce rôle en utilisant un plugin d'inventaire. Vous pouvez soit utiliser un fichier d'inventaire, soit utiliser un fichier de configuration de plugin d'inventaire.
  • Plus de détails sur l'utilisation de ce fichier de configuration de plugin avec des jetons et d'autres informations d'identification pour le renouvellement automatique des tokens sont mentionnés ci-dessous dans la section Fichier de Configuration du Plugin d'Inventaire.

Fichier d'Inventaire/Hôtes

Il existe deux manières d'utiliser un fichier d'inventaire ou un fichier hôte avec le rôle Ansible Aruba Central :

  1. Inventaire
    • Fichier hôte qui indique à Ansible le plugin httpapi requis à utiliser avec d'autres détails et le jeton d'accès.
  2. Fichier de Configuration du Plugin d'Inventaire ou Source d'Inventaire
    • Un fichier source d'inventaire utilisé par le plugin d'inventaire.
    • Une mise en œuvre typique de plugin d'inventaire a un script de plugin (généralement écrit en Python) et une source d'inventaire (dans ce cas, c'est un fichier YAML).
    • Selon la documentation d'Ansible, les sources d'inventaire sont les chaînes d'entrée avec lesquelles les plugins d'inventaire travaillent. Une source d'inventaire peut être un chemin vers un fichier ou un script, ou cela peut être des données brutes que le plugin peut interpréter pour générer dynamiquement des variables d'inventaire.
    • Seuls les fichiers .yml avec des variables de Fichier de Configuration de Plugin d'Inventaire sont acceptés comme source d'inventaire par le plugin d'inventaire pour ce rôle.

Inventaire

Variables d'Inventaire

Les variables qui doivent être définies dans votre inventaire pour votre compte Aruba Central sont :

  • ansible_host : URL de base spécifique au cluster pour la passerelle API sur Aruba Central au format FQDN, que vous pouvez trouver dans l'URL de documentation API sur la passerelle API.
  • ansible_connection : Doit toujours être défini sur httpapi.
  • ansible_network_os : Doit toujours être défini sur aruba_central.
  • ansible_httpapi_use_ssl : Doit toujours être défini sur True.
  • ansible_httpapi_central_access_token : Jeton d'accès API d'Aruba Central.

Exemple d'Inventaire :

YAML
all:
  hosts:
    central:
      ansible_host: apigw-prod2.central.arubanetworks.com
      ansible_connection: httpapi
      ansible_network_os: aruba_central
      ansible_httpapi_use_ssl: True
      ansible_httpapi_central_access_token: CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx
INI
arubacentral ansible_host=apigw-prod2.central.arubanetworks.com  ansible_connection=httpapi ansible_network_os=aruba_central  ansible_httpapi_use_ssl=True  ansible_httpapi_central_access_token=CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx

Fichier de Configuration du Plugin d'Inventaire

  • Il s'agit d'un fichier source d'inventaire qui est utilisé par le plugin d'inventaire pour générer dynamiquement un inventaire avec toutes les options (comme montré ci-dessus dans le fichier d'inventaire simple) requises par le Plugin de Connexion HttpAPI.
  • L'utilisateur doit créer un fichier de configuration qui a le nom du plugin et d'autres informations d'identification centrales.

Précautions

  • En règle générale, un plugin d'inventaire ne peut pas être inclus dans un rôle car Ansible exécute le plugin d'inventaire avant l'exécution du playbook ou du rôle. Plus d'informations peuvent être trouvées dans la documentation d'Ansible.
    • Par conséquent, jusqu'à ce que nous publiions la collection Ansible Aruba Central, vous devez effectuer le contournement suivant pour utiliser le plugin d'inventaire personnalisé pour ce rôle Ansible pour Central - ce qui s'occupera du renouvellement automatique des jetons.

Méthode 1 :

  • Copiez le fichier du plugin d'inventaire central_inventory.py depuis GitHub et stockez-le dans un répertoire inventory_plugins dans votre répertoire de playbooks.
  • Votre répertoire de playbooks devrait avoir la structure suivante :
playbooks_dir
+-- playbook1.yml
+-- playbook2.yml
+-- inv_src.yml
+-- inventory_plugins/
|   +-- central_inventory.py
  • **inv_src.yml** ou tout autre fichier **.yml** avec un nom différent peut agir comme le fichier de configuration de plugin d'inventaire. Exemple de Fichier de Configuration de Plugin d'Inventaire et les variables qu'il utilise sont données ci-dessous.
  • Le fichier de configuration de plugin d'inventaire ne doit pas être utilisé avec Ansible Vault car le plugin d'inventaire a besoin d'écrire les jetons de rafraîchissement et d'accès renouvelés dans le fichier de configuration du plugin.
  • Au départ, l'utilisateur doit s'assurer qu'un jeton d'accès et de rafraîchissement valide a été saisi dans le fichier de configuration du plugin d'inventaire pour la première fois. Si les deux jetons sont invalides, le plugin d'inventaire modifiera le fichier avec le message <Entrez un jeton d'accès/rafraîchissement valide> dans le fichier de configuration du plugin d'inventaire et l'exécution échouera avec une erreur "Non autorisé".
  • Le refresh_token de Central est valide pendant 14 jours. S'il n'est pas utilisé pendant 14 jours, le jeton sera révoqué et un nouveau jeton doit être créé. La validité du jeton de rafraîchissement n'est pas configurable pour le moment.

Méthode 2 :

  • Une fois le rôle installé, allez dans le répertoire des rôles. Utilisez les commandes suivantes pour obtenir le chemin où le rôle est installé et déplacez le répertoire des plugins d'inventaire avec le fichier plugin.
$ ansible-galaxy role list 

------------------sortie-----------------
# /home/admin/.ansible/roles
- arubanetworks.aruba_central_role, 0.2.1
  • Sélectionnez le chemin et allez dans le répertoire des rôles.
  • Le nom du rôle peut différer en fonction de la manière dont vous avez choisi de l'installer.
  • Une fois que vous avez le chemin, déplacez le répertoire du plugin d'inventaire vers votre répertoire de playbooks.
$ cd /home/admin/.ansible/roles

$ cd arubanetworks.aruba_central_role
ou
$ cd aruba-central-ansible-role

$ mv inventory_plugins/ <path_to_playbooks_directory>

Variables de Fichier de Configuration du Plugin d'Inventaire

Les variables qui doivent être définies dans votre fichier de configuration de plugin d'inventaire pour votre compte Aruba Central sont :

  • access_token : jeton d'accès API d'Aruba Central.
  • api_gateway : URL de base spécifique au cluster pour la passerelle API sur Aruba Central au format FQDN, que vous pouvez trouver dans l'URL de documentation API sur la passerelle API.
  • client_id : ID client API d'Aruba Central.
  • client_secret : Secret client API d'Aruba Central.
  • host : Doit toujours être défini sur central.
  • plugin : Doit toujours être défini sur central_inventory.
  • refresh_token : jeton de rafraîchissement API d'Aruba Central.

Exemple de Fichier de Configuration de Plugin d'Inventaire :

YAML
access_token: CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx
api_gateway: apigw-prod2.central.arubanetworks.com
client_id: FOqWxx124ASdfS36HqKIeXXzZ
client_secret: O2RfdKgiS13GhswdrWAIEueMPOxxZxX
host: central
plugin: central_inventory
refresh_token: X12daE6BFhk8QqqzzeifHTYxxZZ12XxX

Exemples de Playbooks

Inclusion du Rôle

Si le rôle est installé via Galaxy, définissez le rôle sur arubanetworks.aruba_central_role :

---
-  hosts: all
   roles:
     - role: arubanetworks.aruba_central_role
   tasks:
   - name: Obtenir tous les groupes d'UI et de modèle sur Central
     central_groups:
       action: get_groups
       limit: 20
       offset: 0

Si le rôle est installé via Github, définissez le rôle sur aruba-central-ansible-role :

---
-  hosts: all
   roles:
     - role: aruba-central-ansible-role
   tasks:
   - name: Obtenir tous les groupes d'UI et de modèle sur Central
     central_groups:
       action: get_groups
       limit: 20
       offset: 0

Exécution du Playbook

ansible-playbook playbook.yml -i inventory.yml
  • inventory.yml pourrait être soit un fichier d'inventaire simple, soit un fichier de configuration de plugin d'inventaire (source d'inventaire).
  • Assurez-vous d'avoir le central_inventory.py dans le répertoire inventory_plugins/ avant d'exécuter le playbook en utilisant le fichier de configuration de plugin d'inventaire.

Contribution

Chez Aruba Networks, nous nous engageons à assurer la qualité de nos produits, donc si vous rencontrez des problèmes, veuillez ouvrir une question sur notre Github et nous répondrons rapidement !

Pour plus d'opportunités de contribution, suivez nos directives décrites dans notre CONTRIBUTING.md.

Licence

MIT

Informations sur l'Auteur

  • Jay Pathak (@jayp193)
  • Derek Wang (@derekwangHPEAruba)
À propos du projet

Ansible modules for automating various monitoring and configuration constructs on Aruba Central, which is used to manage network devices (github repo - https://github.com/aruba/aruba-central-ansible-role)

Installer
ansible-galaxy install arubanetworks.aruba_central_role
Licence
mit
Téléchargements
83.8k
Propriétaire