arista.eos-mlag
Rôle MLAG pour EOS
Le rôle arista.eos-mlag crée une abstraction pour la configuration MLAG courante. 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 ingérera cet objet et effectuera la configuration nécessaire.
Installation
ansible-galaxy install arista.eos-mlag
Exigences
Une connexion SSH est requise pour la connectivité à votre appareil Arista. Vous pouvez utiliser n'importe laquelle des variables de connexion intégrées eos, ou le dictionnaire pratique provider
.
Variables de rôle
Le dictionnaire mlag
comprend les clés suivantes décrites ci-dessous :
Clé | Type | Remarques |
---|---|---|
mlag_domain_id | chaîne | Le nom du domaine MLAG |
mlag_trunk_group | chaîne | Groupe trunk assigné au Vlan |
mlag_shutdown | booléen : vrai, faux* | Activer ou désactiver la configuration MLAG |
local_if_vlan | chaîne (requise) | Le Vlan pour le lien de pair, par exemple Vlan1024 |
local_if_vlan_description | chaîne | Description pour local_if_vlan |
local_if_ip_address | chaîne (requise) | Adresse IP pour le local_if_vlan |
local_if_disable_spanning_tree | booléen : vrai*, faux | Activer ou désactiver le STP sur le Vlan du pair |
peer_address | chaîne (requise) | Adresse IP pour le pair MLAG |
peer_link_if | chaîne (requise) | Le Port-Channel utilisé pour le lien de pair |
peer_link_mode | choix : trunk*, access | Le mode switchport pour le lien de pair |
peer_link_lacp_mode | choix : actif*, passif, désactivé | Le mode LACP pour chaque membre du Port-Channel. |
peer_link_enable | booléen : vrai*, faux | Activer ou désactiver les interfaces membres du lien |
peer_link_members | (Liste) | Liste des interfaces qui composent le lien de pair. |
état | booléen : présent*, absent | Indique s'il faut ajouter ou retirer toute configuration liée à MLAG. Lorsqu'il est défini sur absent, toute la configuration, y compris local_if_vlan et peer_link_if, sera supprimée et le bloc de configuration MLAG sera mis par défaut. Les interfaces dans peer_link_members seront réinitialisées aux paramètres par défaut du switchport. |
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 | Spécifie si des changements dans la configuration active doivent être enregistrés en 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 dans votre inventaire. Ces informations peuvent se trouver dans les répertoires Ansible group_vars ou host_vars, ou dans le playbook lui-même.
Clé | Requise | Choix | Description |
---|---|---|---|
hôte | oui | Spécifie le nom d'hôte DNS ou l'adresse pour se connecter à l'appareil distant via le transport spécifié. La valeur de hôte est utilisée comme adresse destination pour le transport. | |
port | non | Spécifie le port à utiliser lors de l'établissement de la connexion à l'appareil distant. Cette valeur s'applique à l'une ou l'autre des valeurs acceptables de transport. La valeur du port sera par défaut le port commun approprié si aucun n'est fourni dans la tâche (cli=22, http=80, https=443). | |
nom_utilisateur | non | Configure le nom d'utilisateur à utiliser pour authentifier la connexion à l'appareil distant. La valeur de nom_utilisateur 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. | |
mot_de_passe | non | Spécifie le mot de passe à utiliser pour authentifier la connexion à l'appareil distant. C'est un argument courant utilisé pour l'une ou l'autre 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 | Spécifie le fichier clé SSH à utiliser pour authentifier la connexion à l'appareil distant. Cet argument est utilisé uniquement 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. | |
autoriser | 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 | Spécifie le mot de passe à utiliser si requis pour entrer en mode privilégié sur l'appareil distant. Si autoriser=no, cet argument ne fait rien. 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 sur 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. |
fournisseur | non | Méthode pratique qui permet de passer tous les arguments de connexion ci-dessus sous forme d'objet 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 du module d'être enregistrés lors de l'exécution du playbook. Par défaut, no_log est défini sur vrai pour les tâches qui collectent et enregistrent des informations de configuration EOS afin de réduire la taille de la sortie. Définir sur vrai pour empêcher toute sortie autre que les résultats de la tâche. |
Remarque : L'astérisque (*) désigne la valeur par défaut si aucune n'est spécifiée
Dépendances
Le rôle eos-bridging est construit sur des modules inclus dans le code Ansible de base. 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-mlag pour configurer complètement MLAG sur deux commutateurs leaf sans écrire de tâches. Nous allons créer un fichier hosts
avec nos deux commutateurs leaf, puis un fichier host_vars
correspondant pour chaque leaf et enfin un simple playbook qui ne fait référence qu’au rôle mlag. En incluant le rôle, nous obtenons automatiquement accès à toutes les tâches pour configurer MLAG. Ce qui est intéressant, c'est que si vous avez un hôte sans configuration MLAG, les tâches seront ignorées sans problème.
Exemple de fichier hosts :
[leafs]
leaf1.example.com
leaf2.example.com
Exemple de host_vars/leaf1.example.com :
provider:
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: no
authorize: yes
transport: cli
mlag:
mlag_domain_id: mlag1
mlag_trunk_group: mlagpeer
mlag_shutdown: false
local_if_vlan: Vlan1024
local_if_vlan_description: Lien MLAG de Pair
local_if_ip_address: 10.0.0.1/30
local_if_disable_spanning_tree: true
peer_address: 10.0.0.2
peer_link_if: Port-Channel10
peer_link_mode: trunk
peer_link_lacp_mode: active
peer_link_enable: true
peer_link_members:
- Ethernet3
- Ethernet4
Exemple de host_vars/leaf2.example.com :
host: "{{ inventory_hostname }}"
username: admin
password: admin
use_ssl: no
authorize: yes
transport: cli
no_log: true
mlag:
mlag_domain_id: mlag1
mlag_trunk_group: mlagpeer
mlag_shutdown: false
local_if_vlan: Vlan1024
local_if_ip_address: 10.0.0.2/30
local_if_disable_spanning_tree: true
peer_address: 10.0.0.1
peer_link_if: Port-Channel10
peer_link_mode: trunk
peer_link_lacp_mode: active
peer_link_enable: true
peer_link_members:
- Ethernet3
- Ethernet4
Un simple playbook pour activer MLAG sur vos leafs, leaf.yml :
- hosts: leafs
roles:
- arista.eos-mlag
Puis exécutez avec :
ansible-playbook -i hosts leaf.yml
Informations pour les développeurs
Les contributions au développement sont les bienvenues. Veuillez consulter Arista Roles for Ansible - Development Guidelines (test/arista-ansible-role-test/README) pour des informations supplémentaires, y compris comment développer et exécuter des tests pour le développement du rôle.
Licence
Droit d'auteur (c) 2015, Arista Networks EOS+ Tous droits réservés.
La redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient respectées :
La redistribution du code source doit conserver l'avis de droit d'auteur ci-dessus, cette liste de conditions et le déni de responsabilité suivant.
La redistribution sous forme binaire doit reproduire l'avis de droit d'auteur ci-dessus, cette liste de conditions et le déni de responsabilité suivant dans la documentation et/ou d'autres matériels 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 TITULAIRES DE DROITS D'AUTEUR ET LES CONTRIBUTEURS "EN L'ÉTAT" ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS NON LIMITÉE À, LES GARANTIES IMPLICITES DE COMMERCIALISATION ET D'ADÉQUATION À UN USAGE PARTICULIER SONT DÉNIÉES. EN AUCUN CAS, LE TITULAIRE DU DROIT D'AUTEUR OU LES CONTRIBUTEURS NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS NON LIMITÉ À, L'ACQUISITION DE BIENS OU DE SERVICES DE SUBSTITUTION ; PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU INTERRUPTION D'ACTIVITÉS) QUEL QUE SOIT LE MODE DE RESPONSABILITÉ, QUE CE SOIT EN VERTU D'UN CONTRAT, DE LA RESPONSABILITÉ STRICTE, OU DU DELIT (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT D'UNE MANIÈRE OU D'UNE AUTRE DE L'UTILISATION DE CE LOGICIEL, MÊME SI 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 courriel à ansible-dev@arista.com
ansible-galaxy install arista.eos-mlag