arista.eos-route-control
Rôle de Contrôle de Route pour EOS
Le rôle arista.eos-route-control crée une abstraction pour la configuration des politiques de routage courantes d'EOS. Cela signifie que vous n'avez pas besoin d'écrire de tâches Ansible. Il vous suffit de créer un objet qui correspond aux exigences ci-dessous, et ce rôle prendra cet objet en charge et effectuera la configuration nécessaire.
Ce rôle est utilisé pour configurer des route-maps et des routes statiques IPv4.
Installation
ansible-galaxy install arista.eos-route-control
Exigences
Nécessite une connexion SSH pour se connecter à votre appareil Arista. Vous pouvez utiliser
n'importe laquelle des variables de connexion EOS intégrées ou le dictionnaire de commodité provider
.
Variables de Rôle
Les tâches de ce rôle sont pilotées par les objets routemaps
et
ipv4_static_routes
décrits ci-dessous :
routemaps (liste) chaque entrée contient les clés suivantes :
Clé | Type | Remarques |
---|---|---|
nom | chaîne (obligatoire) | Le nom de la routemap à gérer. |
action | choix: permettre, refuser (obligatoire) | L'action associée au nom de la routemap. |
seqno | int (obligatoire) | Le numéro de séquence de la règle à laquelle cette entrée correspond. |
description | chaîne | La description pour cette entrée de routemap. |
match | liste | La liste des déclarations de correspondance qui définissent l'entrée de la routemap. Les déclarations de correspondance doivent être sans le mot 'match' au début de la chaîne. |
set | liste | La liste des déclarations de définition qui définissent l'entrée de la routemap. Les déclarations de définition doivent être sans le mot 'set' au début de la chaîne. |
continue | int | La déclaration définit la prochaine clause de routemap à évaluer. |
état | choix: présent*, absent | Définir l'état pour la configuration de la routemap. |
ipv4_static_routes (liste) chaque entrée contient les clés suivantes :
Clé | Type | Remarques |
---|---|---|
ip_dest | chaîne (obligatoire) | Adresse IP ou réseau de destination. |
next_hop | chaîne (obligatoire) | Le prochain saut associé à la route. |
next_hop_ip | chaîne | Adresse IP du prochain routeur. Valide uniquement lorsque next_hop est une interface de sortie. |
distance | int | Distance désignée pour cette route. Par défaut 1 si l'état est 'présent'. |
tag | int | Tag assigné pour la route. Par défaut 0 si l'état est 'présent'. |
route_name | chaîne | Nom descriptif de la route |
état | choix: présent*, absent | Définir l'état pour la configuration de la route. |
Remarque : L'astérisque (*) désigne la valeur par défaut si aucune n'est spécifiée.
Variables de Configuration
Clé | Choix | Description |
---|---|---|
eos_save_running_config | vrai*, faux | Précise s'il faut écrire les modifications apportées par l'exécution du rôle à la mémoire, en copiant la configuration dans la configuration de démarrage. |
Remarque : L'astérisque (*) désigne la valeur par défaut si aucune n'est spécifiée.
Variables de Connexion
Les rôles Ansible EOS nécessitent les informations de connexion suivantes pour établir la communication avec les nœuds de votre inventaire. Ces informations peuvent se trouver dans les répertoires group_vars ou host_vars d'Ansible, ou dans le playbook lui-même.
Clé | Obligatoire | Choix | Description |
---|---|---|---|
hôte | oui | Précise le nom d'hôte DNS ou l'adresse pour se connecter à l'appareil distant via le transport spécifié. La valeur de host est utilisée comme adresse de destination pour le transport. | |
port | non | Précise le port à utiliser lors de la connexion à l'appareil distant. Cette valeur s'applique à l'une des valeurs acceptables de transport. La valeur du port sera par défaut le port commun approprié si aucune n'est fournie dans la tâche (cli=22, http=80, https=443). | |
username | non | Configure le nom d'utilisateur à utiliser pour authentifier la connexion à l'appareil distant. La valeur de username est utilisée pour authentifier soit la connexion CLI, soit l'authentification eAPI selon le transport utilisé. Si la valeur n'est pas spécifiée dans la tâche, la valeur de la variable d'environnement ANSIBLE_NET_USERNAME sera utilisée à la place. | |
password | non | Précise le mot de passe à utiliser pour authentifier la connexion à l'appareil distant. Il s'agit d'un argument commun utilisé pour l'une des valeurs acceptables de transport. Si la valeur n'est pas spécifiée dans la tâche, la valeur de la variable d'environnement ANSIBLE_NET_PASSWORD sera utilisée à la place. | |
ssh_keyfile | non | Précise le fichier de clé SSH à utiliser pour authentifier la connexion à l'appareil distant. Cet argument n'est utilisé que lorsque transport=cli. Si la valeur n'est pas spécifiée dans la tâche, la valeur de la variable d'environnement ANSIBLE_NET_SSH_KEYFILE sera utilisée à la place. | |
authorize | non | oui, non* | Indique au module d'entrer en mode privilégié sur l'appareil distant avant d'envoyer des commandes. Si non spécifié, l'appareil tentera d'exécuter toutes les commandes en mode non privilégié. Si la valeur n'est pas spécifiée dans la tâche, la valeur de la variable d'environnement ANSIBLE_NET_AUTHORIZE sera utilisée à la place. |
auth_pass | non | Précise le mot de passe à utiliser s'il est requis pour entrer en mode privilégié sur l'appareil distant. Si authorize=no, cet argument n'a alors aucun effet. Si la valeur n'est pas spécifiée dans la tâche, la valeur de la variable d'environnement ANSIBLE_NET_AUTH_PASS sera utilisée à la place. | |
transport | oui | cli*, eapi | Configure la connexion de transport à utiliser lors de la connexion à l'appareil distant. L'argument transport prend en charge la connectivité à l'appareil via cli (ssh) ou eapi. |
use_ssl | non | oui*, non | Configure le transport pour utiliser SSL s'il est défini sur vrai uniquement lorsque transport=eapi. Si transport=cli, cette valeur est ignorée. |
provider | non | Méthode de commodité qui permet à tous les arguments de connexion ci-dessus d'être passés en tant qu'objet de dictionnaire. Toutes les contraintes (obligatoires, choix, etc.) doivent être respectées soit par des arguments individuels, soit par des valeurs dans ce dictionnaire. |
Remarque : L'astérisque (*) désigne la valeur par défaut si aucune n'est spécifiée.
Variables Ansible
Clé | Choix | Description |
---|---|---|
no_log | vrai, faux* | Empêche les arguments et la sortie des modules d'être enregistrés pendant l'exécution du playbook. Par défaut, no_log est réglé sur vrai pour les tâches qui recueillent et enregistrent des informations de configuration EOS afin de réduire la taille de la sortie. Réglez sur vrai pour empêcher toute sortie autre que les résultats des tâches. |
Remarque : L'astérisque (*) désigne la valeur par défaut si aucune n'est spécifiée.
Dépendances
Le rôle eos-route-control est construit sur des modules inclus dans le code de base d'Ansible. Ces modules ont été ajoutés dans la version 2.1 d'Ansible.
- Ansible 2.1.0
Exemple de Playbook
L'exemple suivant utilisera le rôle arista.eos-route-control pour configurer
une route-map et une route statique. Nous allons créer un fichier hosts
avec notre switch, puis un fichier host_vars
correspondant et enfin un simple playbook qui ne fait référence qu'au rôle eos-route-control.
En incluant le rôle, nous avons automatiquement accès à toutes les tâches
pour configurer ces fonctionnalités EOS. Ce qui est pratique, c'est que si vous avez un
hôte sans configuration correspondante, les tâches seront ignorées
sans problème.
Fichier hosts d'exemple :
[leafs]
leaf1.example.com
Exemple de host_vars/leaf1.example.com
provider:
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: non
authorize: oui
transport: cli
routemaps:
- nom: RM-1
action: permettre
seqno: 10
description: Ma merveilleuse routemap
match:
- as 1000
- source-protocol bgp
continue: 20
- nom: RM-1
action: permettre
seqno: 20
description: Ma merveilleuse routemap
set:
- distance 50
- tag 100
ipv4_static_routes:
- ip_dest: 0.0.0.0/0
next_hop: Management1
next_hop_ip: 172.16.130.2
route_name: Défaut
tag: 100
Un simple playbook, leaf.yml
- hosts: leafs
roles:
- arista.eos-route-control
Puis exécutez avec :
ansible-playbook -i hosts leaf.yml
Informations Développeur
Les contributions au développement sont les bienvenues. Veuillez consulter Arista Roles for Ansible - Development Guidelines (test/arista-ansible-role-test/README) pour plus d'informations, y compris comment développer et exécuter des cas de test pour le développement du rôle.
Licence
Copyright (c) 2015, Arista Networks EOS+ Tous droits réservés.
La redistribution et l'utilisation dans des formes source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies :
Les redistributions du code source doivent conserver l'avis de droit d'auteur ci-dessus, cette liste de conditions et le disclaimer suivant.
Les redistributions en forme binaire doivent reproduire l'avis de droit d'auteur ci-dessus, cette liste de conditions et le disclaimer suivant dans la documentation et/ou d'autres matériaux fournis avec la distribution.
Ni le nom d'Arista ni les noms de ses contributeurs ne peuvent être utilisés pour approuver ou promouvoir des produits dérivés de ce logiciel sans autorisation écrite préalable spécifique.
CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DE DROIT D'AUTEUR ET LES CONTRIBUTEURS "TEL QUEL" ET TOUTES GARANTIES EXPRESSES OU IMPLICITES, Y COMPRIS, MAIS SANS S'Y LIMITER, AUX GARANTIES IMPLICITES DE CONFORMITÉ ET D'ADAPTATION À UN USAGE PARTICULIER SONT DÉNIÉES. EN AUCUN CAS LA PERSONNE DÉTENTEUR DES DROITS D'AUTEUR OU LES CONTRIBUTEURS NE PEUVENT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'OBTENTION DE BIENS OU DE SERVICES SUBSTITUTIFS ; PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QU'ELLE SOIT EN VERTU D'UN CONTRAT, D'UNE RESPONSABILITÉ STRICTE, OU EN RESPONSABILITÉ CIVILE (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE QUELQUE MANIÈRE QUE CE SOIT DE L'UTILISATION DE CE LOGICIEL, MÊME S'IL A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES.
Informations sur l'Auteur
Veuillez signaler tout problème en utilisant notre dépôt GitHub ou envoyez-nous un e-mail à ansible-dev@arista.com
Role for managing EOS Routemaps and IPv4 static routing configuration
ansible-galaxy install arista.eos-route-control