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
ansible-galaxy install arista.eos-mlag