arista.eos-mlag

MLAG-Rolle für EOS

Die Rolle arista.eos-mlag erstellt eine Abstraktion für eine häufige MLAG-Konfiguration. Das bedeutet, dass Sie keine Ansible-Aufgaben selbst schreiben müssen. Erstellen Sie einfach ein Objekt, das die Anforderungen unten erfüllt, und diese Rolle wird dieses Objekt verarbeiten und die notwendige Konfiguration durchführen.

Installation

ansible-galaxy install arista.eos-mlag

Anforderungen

Es wird eine SSH-Verbindung zu Ihrem Arista-Gerät benötigt. Sie können eine der integrierten eos-Verbindungsvariablen oder das praktische provider-Dictionary verwenden.

Rollenvariablen

Das mlag-Dictionary umfasst die folgenden Schlüssel, die unten beschrieben sind:

Schlüssel Typ Hinweise
mlag_domain_id Zeichenfolge Der Name der MLAG-Domain
mlag_trunk_group Zeichenfolge Trunk-Gruppe, die dem VLAN zugewiesen ist
mlag_shutdown boolean: true, false* MLAG-Konfiguration aktivieren oder deaktivieren
local_if_vlan Zeichenfolge (erforderlich) Das VLAN für die Peer-Verbindung, z. B. Vlan1024
local_if_vlan_description Zeichenfolge Beschreibung für local_if_vlan
local_if_ip_address Zeichenfolge (erforderlich) IP-Adresse für das local_if_vlan
local_if_disable_spanning_tree boolean: true*, false STP im Peer-VLAN aktivieren oder deaktivieren
peer_address Zeichenfolge (erforderlich) IP-Adresse für den MLAG-Peer
peer_link_if Zeichenfolge (erforderlich) Der Port-Channel, der für die Peer-Verbindung verwendet wird
peer_link_mode Auswahl: trunk*, access Der Switchport-Modus für die Peer-Verbindung
peer_link_lacp_mode Auswahl: active*, passive, disabled Der LACP-Modus für jedes Port-Channel-Mitglied
peer_link_enable boolean: true*, false Peer-Link-Mitgliedsschnittstellen aktivieren oder deaktivieren
peer_link_members (Liste) Liste der Schnittstellen, die die Peer-Verbindung bilden.
state boolean: present*, absent Ob alle MLAG-bezogenen Konfigurationen hinzugefügt oder entfernt werden sollen. Wenn auf absent gesetzt, werden alle Konfigurationen, einschließlich local_if_vlan und peer_link_if, entfernt und der MLAG-Konfigurationsblock wird auf die Standardwerte zurückgesetzt. Schnittstellen in peer_link_members werden auf die Standardwerte des Switchports zurückgesetzt.
Hinweis: Ein Asterisk (*) bezeichnet den Standardwert, wenn keiner angegeben ist

Konfigurationsvariablen

Schlüssel Auswahl Beschreibung
eos_save_running_config true*, false Gibt an, ob Änderungen an der laufenden Konfiguration, die durch die Ausführung der Rolle entstehen, im Speicher gespeichert und in die Startkonfiguration kopiert werden sollen.
Hinweis: Ein Asterisk (*) bezeichnet den Standardwert, wenn keiner angegeben ist

Verbindungsvariablen

Ansible EOS-Rollen benötigen folgende Verbindungsinformationen, um die Kommunikation mit den Knoten in Ihrem Inventar herzustellen. Diese Informationen können in den Ansible group_vars- oder host_vars-Verzeichnissen oder im Playbook selbst vorhanden sein.

Schlüssel Erforderlich Auswahl Beschreibung
host ja Gibt den DNS-Hostnamen oder die Adresse an, um eine Verbindung zum Remote-Gerät über den angegebenen Transport herzustellen. Der Wert von host wird als Zieladresse für den Transport verwendet.
port nein Gibt den Port an, der beim Aufbau der Verbindung zum Remote-Gerät verwendet wird. Dieser Wert gilt für beide akzeptablen Werte von transport. Der Portwert wird auf den entsprechenden Standardport des Transports gesetzt, wenn keiner in der Aufgabe angegeben ist (cli=22, http=80, https=443).
username nein Konfiguriert den Benutzernamen zur Authentifizierung der Verbindung zum Remote-Gerät. Der Wert von username wird zur Authentifizierung entweder für das CLI-Login oder die eAPI-Authentifizierung verwendet, abhängig davon, welches transport verwendet wird. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariable ANSIBLE_NET_USERNAME stattdessen verwendet.
password nein Gibt das Passwort an, das zur Authentifizierung der Verbindung zum Remote-Gerät verwendet wird. Dies ist ein häufiges Argument für jeden akzeptablen Wert von transport. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariable ANSIBLE_NET_PASSWORD stattdessen verwendet.
ssh_keyfile nein Gibt die SSH-Schlüsseldatei an, die zur Authentifizierung der Verbindung zum Remote-Gerät verwendet wird. Dieses Argument wird nur verwendet, wenn transport=cli. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariable ANSIBLE_NET_SSH_KEYFILE stattdessen verwendet.
authorize nein ja, nein* Weist das Modul an, vor dem Senden von Befehlen in den privilegierten Modus des Remote-Geräts zu wechseln. Wenn nicht angegeben, versucht das Gerät, alle Befehle im nicht-privilegierten Modus auszuführen. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariable ANSIBLE_NET_AUTHORIZE stattdessen verwendet.
auth_pass nein Gibt das Passwort an, das benötigt wird, um in den privilegierten Modus des Remote-Geräts zu wechseln, falls erforderlich. Wenn authorize=no, hat dieses Argument keine Wirkung. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariable ANSIBLE_NET_AUTH_PASS stattdessen verwendet.
transport ja cli*, eapi Konfiguriert die Transportverbindung, die beim Verbinden mit dem Remote-Gerät verwendet wird. Das Argument transport unterstützt die Konnektivität zum Gerät über cli (ssh) oder eapi.
use_ssl nein ja*, nein Konfiguriert den Transport, um SSL zu verwenden, wenn er nur dann auf true gesetzt ist, wenn transport=eapi. Wenn transport=cli, wird dieser Wert ignoriert.
provider nein Praktische Methode, die es ermöglicht, alle oben genannten Verbindungsargumente als Dictionary-Objekt zu übergeben. Alle Einschränkungen (erforderlich, Auswahlen usw.) müssen entweder durch einzelne Argumente oder durch Werte in diesem Dictionary erfüllt werden.
Hinweis: Ein Asterisk (*) bezeichnet den Standardwert, wenn keiner angegeben ist

Ansible-Variablen

Schlüssel Auswahl Beschreibung
no_log true, false* Verhindert, dass Modulargumente und Ausgaben während der Ausführung des Playbooks protokolliert werden. Im Standardfall ist no_log auf true gesetzt für Aufgaben, die EOS-Konfigurationsinformationen sammeln und speichern, um die Ausgabegröße zu reduzieren. Setzen Sie es auf true, um alle Ausgaben außer den Aufgaben Ergebnissen zu verhindern.
Hinweis: Ein Asterisk (*) bezeichnet den Standardwert, wenn keiner angegeben ist

Abhängigkeiten

Die Rolle eos-bridging basiert auf Modulen, die im Kerncode von Ansible enthalten sind. Diese Module wurden in der Ansible-Version 2.1 hinzugefügt.

  • Ansible 2.1.0

Beispiel-Playbook

Das folgende Beispiel verwendet die Rolle arista.eos-mlag, um MLAG auf zwei Leaf-Switches vollständig einzurichten, ohne eine Aufgabe zu schreiben. Wir erstellen eine Datei hosts mit unseren zwei Leaf-Switches, dann eine entsprechende Datei host_vars für jeden Leaf und schließlich ein einfaches Playbook, das nur auf die MLAG-Rolle verweist. Durch die Einbeziehung der Rolle erhalten wir automatisch Zugang zu allen Aufgaben zur Konfiguration von MLAG. Das Schöne dabei ist, dass, wenn Sie einen Host ohne MLAG-Konfiguration haben, die Aufgaben ohne Probleme übersprungen werden.

Beispiel hosts-Datei:

[leafs]
leaf1.example.com
leaf2.example.com

Beispiel 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: Peer MLAG Link
  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

Beispiel 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

Ein einfaches Playbook, um MLAG auf Ihren Leaf-Switches zu aktivieren, leaf.yml:

- hosts: leafs
  roles:
     - arista.eos-mlag

Führen Sie es dann mit folgendem Befehl aus:

ansible-playbook -i hosts leaf.yml

Entwicklerinformationen

Entwicklungsvorlagen sind willkommen. Bitte schauen Sie sich Arista Rollen für Ansible - Entwicklungsrichtlinien (test/arista-ansible-role-test/README) für zusätzliche Informationen an, einschließlich der Entwicklung und Ausführung von Testfällen für die Rollenentwicklung.

Lizenz

Copyright (c) 2015, Arista Networks EOS+ Alle Rechte vorbehalten.

Die Weiterverbreitung und Verwendung in Quell- und Binärform, mit oder ohne Änderungen, sind erlaubt, sofern die folgenden Bedingungen erfüllt sind:

  • Weiterverbreitungen von Quellcode müssen den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss beibehalten.

  • Weiterverbreitungen in binärer Form müssen den obigen Copyright-Hinweis, diese Liste von Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien beifügen, die mit der Verbreitung geliefert werden.

  • Weder der Name Arista noch die Namen seiner Mitwirkenden dürfen zur Werbung oder zur Förderung von Produkten, die aus dieser Software abgeleitet sind, ohne spezifische vorherige schriftliche Genehmigung verwendet werden.

DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITARBEITERN "WIE BESEHEN" BEREITGESTELLT UND ALLE AUSDRÜCKLICHEN ODER IMPLIZITEN GARANTIEN, EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF, DIE IMPLIZITEN GARANTIEN DER MARKTFÄHIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK WERDEN ABGELEHNT. IN KEINEM FALL SIND DER URHEBERRECHTSINHABER ODER MITARBEITER FÜR IRGENDWELCHE DIREKTEN,INDIREKTEN, NEBEN- ODER FOLGESCHÄDEN VERANTWORTLICH, WIE Z. B. DER KAUF VON ERSATZWAREN ODER -DIENSTLEISTUNGEN; DER VERLAUF VON NUTZUNG, DATEN ODER GEWINNEN; ODER BETRIEBSSTÖRUNGEN, WIE AUCH IMMER, DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.

Autor Informationen

Bitte melden Sie alle Probleme über unser GitHub-Repo oder senden Sie uns eine E-Mail an ansible-dev@arista.com

Über das Projekt

Role for managing MLAG configuration

Installieren
ansible-galaxy install arista.eos-mlag
GitHub Repository
Lizenz
bsd-3-clause
Downloads
12.1k
Besitzer
Applications developed and supported by Arista EOS+