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

À propos du projet

Role for managing MLAG configuration

Installer
ansible-galaxy install arista.eos-mlag
Licence
bsd-3-clause
Téléchargements
12.1k
Propriétaire
Applications developed and supported by Arista EOS+