arista.eos-route-control

Routensteuerungsrolle für EOS

Die Rolle arista.eos-route-control erstellt eine Abstraktion für die gängige Konfiguration von Routing-Richtlinien in EOS. Das bedeutet, dass Sie keine Ansible-Aufgaben schreiben müssen. Erstellen Sie einfach ein Objekt, das den Anforderungen unten entspricht, und diese Rolle wird dieses Objekt aufnehmen und die erforderliche Konfiguration durchführen.

Diese Rolle wird verwendet, um Routenpläne und statische IPv4-Routen zu konfigurieren.

Installation

ansible-galaxy install arista.eos-route-control

Anforderungen

Es wird eine SSH-Verbindung benötigt, um eine Verbindung zu Ihrem Arista-Gerät herzustellen. Sie können eine der integrierten EOS-Verbindungsvariablen oder das bequeme provider-Dictionary verwenden.

Rollenvariablen

Die Aufgaben in dieser Rolle werden durch die Objekte routemaps und ipv4_static_routes gesteuert, die unten beschrieben sind:

routemaps (Liste) jeder Eintrag enthält die folgenden Schlüssel:

Schlüssel Typ Hinweise
name Zeichenfolge (erforderlich) Der Name des zu verwaltenden Routenplans.
action Auswahl: erlauben, ablehnen (erforderlich) Die mit dem Routenplan-Namen verbundene Aktion.
seqno int (erforderlich) Die Sequenznummer der Regel, auf die dieser Eintrag verweist.
description Zeichenfolge Die Beschreibung für diesen Routenplaneintrag.
match Liste Die Liste der Übereinstimmungsanweisungen, die den Routenplaneintrag definieren. Diese sollten ohne das Wort 'match' am Anfang der Zeichenfolge angegeben werden.
set Liste Die Liste der Setzanweisungen, die den Routenplaneintrag definieren. Diese sollten ohne das Wort 'set' am Anfang der Zeichenfolge angegeben werden.
continue int Diese Anweisung definiert die nächste Routenplan-Klausel, die bewertet werden soll.
state Auswahl: vorhanden*, abwesend Setzt den Zustand für die Konfiguration des Routenplans.

ipv4_static_routes (Liste) jeder Eintrag enthält die folgenden Schlüssel:

Schlüssel Typ Hinweise
ip_dest Zeichenfolge (erforderlich) Ziel-IP-Adresse oder Netzwerk.
next_hop Zeichenfolge (erforderlich) Der nächste Hop, der mit der Route verbunden ist.
next_hop_ip Zeichenfolge IP-Adresse des nächsten Routers. Nur gültig, wenn next_hop ein Ausgangsinterface ist.
distance int Der für diese Route festgelegte Abstand. Standardmäßig 1, wenn der Zustand 'vorhanden' ist.
tag int Tag, der der Route zugeordnet ist. Standardmäßig 0, wenn der Zustand 'vorhanden' ist.
route_name Zeichenfolge Beschreibender Name für die Route
state Auswahl: vorhanden*, abwesend Setzt den Zustand für die Routen-Konfiguration.
Hinweis: Ein Sternchen (*) kennzeichnet den Standardwert, falls nichts angegeben ist.

Konfigurationsvariablen

Schlüssel Auswahl Beschreibung
eos_save_running_config true*, false Gibt an, ob Änderungen an der laufenden Konfiguration, die aus der Ausführung der Rolle resultieren, in den Arbeitsspeicher geschrieben und die Konfiguration in die Startkonfiguration kopiert werden sollen.
Hinweis: Ein Sternchen (*) kennzeichnet den Standardwert, falls nichts angegeben ist.

Verbindungsvariablen

Ansible EOS-Rollen benötigen die folgenden 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 für die Verbindung zum Remote-Gerät über das angegebene Transport an. Der Wert von host wird als Zieladresse für das Transportprotokoll verwendet.
port nein Gibt den Port an, der bei der Herstellung der Verbindung zum Remote-Gerät verwendet werden soll. Dieser Wert gilt für beide akzeptablen Werte von Transport. Der Portwert wird auf den entsprechenden Standardport des Transportprotokolls zurückgesetzt, wenn kein Wert 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 je nach verwendetem Transport entweder zur Authentifizierung des CLI-Logins oder der eAPI-Authentifizierung verwendet. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariablen ANSIBLE_NET_USERNAME anstelle dessen verwendet.
password nein Gibt das Passwort an, das zur Authentifizierung der Verbindung zum Remote-Gerät verwendet wird. Dies ist ein häufig verwendetes Argument für beide akzeptablen Werte von Transport. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariablen ANSIBLE_NET_PASSWORD anstelle dessen verwendet.
ssh_keyfile nein Gibt die SSH-Schlüsseldatei an, die zur Authentifizierung der Verbindung zum Remote-Gerät verwendet werden soll. Dieses Argument wird nur verwendet, wenn Transport=cli. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariablen ANSIBLE_NET_SSH_KEYFILE anstelle dessen verwendet.
authorize nein ja, nein* Weist das Modul an, in den privilegierten Modus auf dem Remote-Gerät zu wechseln, bevor Befehle gesendet werden. 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 Umgebungsvariablen ANSIBLE_NET_AUTHORIZE anstelle dessen verwendet.
auth_pass nein Gibt das Passwort an, das verwendet werden soll, falls erforderlich, um in den privilegierten Modus auf dem Remote-Gerät zu gelangen. Wenn authorize=no, hat dieses Argument keine Auswirkung. Wenn der Wert nicht in der Aufgabe angegeben ist, wird der Wert der Umgebungsvariablen ANSIBLE_NET_AUTH_PASS anstelle dessen verwendet.
transport ja cli*, eapi Konfiguriert die verwendete Transportverbindung zum Remote-Gerät. Das Argument Transport unterstützt die Verbindung zum Gerät über cli (ssh) oder eapi.
use_ssl nein ja*, nein Konfiguriert den Transport, um SSL zu verwenden, wenn dies nur gesetzt ist, wenn Transport=eapi. Wenn Transport=cli, wird dieser Wert ignoriert.
provider nein Bequeme Methode, die es ermöglicht, alle oben genannten Verbindungsargumente als ein Dictionary-Objekt zu übergeben. Alle Einschränkungen (erforderlich, Auswahl usw.) müssen entweder von einzelnen Argumenten oder Werten in diesem Dictionary erfüllt sein.
Hinweis: Ein Sternchen (*) kennzeichnet den Standardwert, falls nichts 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. Standardmäßig ist no_log für Aufgaben, die EOS-Konfigurationsinformationen sammeln und speichern, auf true gesetzt, um die Ausgabegröße zu reduzieren. Setzen Sie es auf true, um alles andere als die Aufgabenresultate zu verhindern.
Hinweis: Ein Sternchen (*) kennzeichnet den Standardwert, falls nichts angegeben ist.

Abhängigkeiten

Die Rolle eos-route-control basiert auf Modulen, die im Kern 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-route-control, um einen Routenplan und eine statische Route zu konfigurieren. Wir erstellen eine hosts-Datei mit unserem Switch, dann eine entsprechende host_vars-Datei und schließlich ein einfaches Playbook, das nur die Rolle eos-route-control referenziert. Durch die Einbeziehung der Rolle erhalten wir automatisch Zugriff auf alle Aufgaben zur Konfiguration dieser EOS-Funktionen. Das Schöne daran ist, dass bei einem Host ohne entsprechende Konfiguration die Aufgaben ohne Probleme übersprungen werden.

Beispiel für eine Hosts-Datei:

[leafs]
leaf1.example.com

Beispiel für host_vars/leaf1.example.com:

provider:
  host: "{{ inventory_hostname }}"
  username: admin
  password: admin
  use_ssl: no
  authorize: yes
  transport: cli

routemaps:
  - name: RM-1
    action: permit
    seqno: 10
    description: Mein wunderbarer Routenplan
    match:
      - as 1000
      - source-protocol bgp
    continue: 20
  - name: RM-1
    action: permit
    seqno: 20
    description: Mein wunderbarer Routenplan
    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: Standard
    tag: 100

Ein einfaches Playbook, leaf.yml:

- hosts: leafs
  roles:
    - arista.eos-route-control

Dann ausführen mit:

ansible-playbook -i hosts leaf.yml

Entwicklerinformationen

Entwicklungsbeiträge sind willkommen. Bitte beachten Sie die Arista-Rollen für Ansible - Entwicklungsrichtlinien (test/arista-ansible-role-test/README) für weitere Informationen, einschließlich der Entwicklung und Ausführung von Testfällen für die Rollentwicklung.

Lizenz

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

Die Weitergabe und Nutzung in Quell- und Binärformen, mit oder ohne Änderungen, sind gestattet, solange die folgenden Bedingungen erfüllt sind:

  • Weitergaben des Quellcodes müssen den obigen Urheberrechtshinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss beibehalten.

  • Weitergaben in binärer Form müssen den obigen Urheberrechtshinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit der Verteilung geliefert werden, wiedergeben.

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

DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN „WIE BESEHEN“ UND JEDWEDER EINDRUCK ODER IMPLIZIERTE 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 DIE URHEBERRECHTSINHABER ODER MITWIRKENDEN FÜR DIREKTE, INDIRECTE, ZUFÄLLIGE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN HAFTBAR, EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF, DEN KAUF VON ERSATZGÜTERN ODER DIENSTLEISTUNGEN; VERLUST DER NUTZUNG, DATEN ODER GEWINNE; ODER GESCHÄFTSUNTERBRECHUNG, UNABHÄNGIG VON DER URSACHE UND AUF JEDER HAFTUNGSTHEORIE, OB IM VERTRAG, STRIKTER HAFTUNG ODER DELIKT (EINSCHLIESSLICH NEGLIGENZ ODER ANDERS), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG ODER DER MÖGLICHKEIT DER NUTZUNG DIESER SOFTWARE ENTSTEHT, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.

Autoreninformationen

Bitte melden Sie Probleme über unser GitHub-Repo oder kontaktieren Sie uns unter ansible-dev@arista.com.

Über das Projekt

Role for managing EOS Routemaps and IPv4 static routing configuration

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