arista.eos-route-control

Rola Kontroli Tras dla EOS

Rola arista.eos-route-control tworzy abstrakcję dla wspólnej konfiguracji polityki trasowania EOS. Oznacza to, że nie musisz pisać żadnych zadań Ansible. Wystarczy, że stworzysz obiekt spełniający wymagania poniżej, a ta rola zaakceptuje ten obiekt i wykona niezbędną konfigurację.

Ta rola jest używana do konfiguracji map tras oraz statycznych tras IPv4.

Instalacja

ansible-galaxy install arista.eos-route-control

Wymagania

Wymagana jest łączność SSH z urządzeniem Arista. Możesz użyć dowolnych wbudowanych zmiennych połączeniowych eos lub słownika „provider” dla wygody.

Zmienne Roli

Zadania w tej roli są sterowane przez obiekty „routemaps” i „ipv4_static_routes” opisane poniżej:

routemaps (lista) każdy wpis zawiera następujące klucze:

Klucz Typ Uwagi
name string (wymagane) Nazwa mapy tras do zarządzania.
action wybory: permit, deny (wymagane) Akcja związana z nazwą mapy tras.
seqno int (wymagane) Numer sekwencyjny reguły, do której odnosi się ten wpis.
description string Opis dla tego wpisu mapy tras.
match lista Lista deklaracji dopasowujących, które definiują wpis mapy tras. Deklaracje dopasowujące powinny być listą deklaracji dopasowujących bez słowa „match” na początku stringu.
set lista Lista deklaracji ustawiających, które definiują wpis mapy tras. Deklaracje ustawiające powinny być listą deklaracji ustawiających bez słowa „set” na początku stringu.
continue int Ta deklaracja definiuje następny klauzulę mapy tras do oceny.
state wybory: present*, absent Ustawia stan konfiguracji mapy tras.

ipv4_static_routes (lista) każdy wpis zawiera następujące klucze:

Klucz Typ Uwagi
ip_dest string (wymagane) Docelowy adres IP lub sieć.
next_hop string (wymagane) Następny skok związany z trasą.
next_hop_ip string Adres IP następnego routera. Ważne tylko wtedy, gdy next_hop to interfejs egress.
distance int Odległość przypisana do tej trasy. Domyślnie wynosi 1, jeśli stan to 'present'.
tag int Znacznik przypisany do trasy. Domyślnie wynosi 0, jeśli stan to 'present'.
route_name string Opisowa nazwa dla trasy
state wybory: present*, absent Ustawia stan konfiguracji trasy.
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano

Zmienna Konfiguracji

Klucz Wybory Opis
eos_save_running_config true*, false Określa, czy zapisać zmiany w konfiguracji działającej w pamięci, kopiując konfigurację do konfiguracji startowej.
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano

Zmienna Połączenia

Rola Ansible EOS wymaga następujących informacji o połączeniu, aby nawiązać komunikację z węzłami w Twoim inwentarzu. Te informacje mogą znajdować się w katalogach Ansible group_vars lub host_vars lub w samym pliku playbook.

Klucz Wymagany Wybory Opis
host tak Określa nazwę hosta DNS lub adres do łączenia zdalnym urządzeniem przez określony transport. Wartość host jest używana jako adres docelowy dla transportu.
port nie Określa port do użycia przy budowaniu połączenia ze zdalnym urządzeniem. Ta wartość dotyczy dowolnej akceptowalnej wartości transportu. Wartość portu domyślnie wynosi odpowiedni wspólny port transportu, jeśli żadne nie zostało podane w zadaniu (cli=22, http=80, https=443).
username nie Ustawia nazwę użytkownika do użycia w celu uwierzytelnienia połączenia ze zdalnym urządzeniem. Wartość username jest używana do uwierzytelnienia zarówno logowania CLI, jak i uwierzytelnienia eAPI w zależności od tego, który transport jest używany. Jeśli wartość nie jest podana w zadaniu, zamiast tego zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_USERNAME.
password nie Określa hasło do użycia w celu uwierzytelnienia połączenia ze zdalnym urządzeniem. Jest to wspólny argument używany dla każdej akceptowalnej wartości transportu. Jeśli wartość nie jest podana w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_PASSWORD zostanie użyta zamiast tego.
ssh_keyfile nie Określa plik klucza SSH do użycia w celu uwierzytelnienia połączenia ze zdalnym urządzeniem. Ten argument jest używany tylko wtedy, gdy transport=cli. Jeżeli wartość nie została podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_SSH_KEYFILE.
authorize nie tak, nie* Instruuje moduł do przejścia do trybu uprzywilejowanego na zdalnym urządzeniu przed wysłaniem jakichkolwiek poleceń. Jeśli nie jest podane, urządzenie spróbuje wykonać wszystkie polecenia w trybie nieuprzywilejowanym. Jeśli wartość nie jest podana w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_AUTHORIZE zostanie użyta zamiast tego.
auth_pass nie Określa hasło do użycia, jeśli jest wymagane, aby przejść do trybu uprzywilejowanego na zdalnym urządzeniu. Jeśli authorize=no, ten argument nie ma wpływu. Jeśli wartość nie jest podana w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_AUTH_PASS zostanie użyta zamiast tego.
transport tak cli*, eapi Ustawia połączenie transportowe do użycia podczas łączenia ze zdalnym urządzeniem. Argument transport wspiera łączenie z urządzeniem przez cli (ssh) lub eapi.
use_ssl nie tak*, nie Ustawia transport do użycia SSL, jeśli ustawiono na prawdę tylko wtedy, gdy transport=eapi. Jeśli transport=cli, ta wartość jest ignorowana.
provider nie Metoda dla wygody, która pozwala na przekazywanie wszystkich powyższych argumentów połączenia jako obiekt typu dict. Wszystkie ograniczenia (wymagane, wybory itd.) muszą być spełnione przez pojedyncze argumenty lub wartości w tym słowniku.
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano

Zmienne Ansible

Klucz Wybory Opis
no_log prawda, fałsz* Zapobiega rejestrowaniu argumentów modułu i wyjścia podczas wykonywania playbooka. Domyślnie no_log jest ustawione na prawdę dla zadań, które zbierają i zapisują informacje konfiguracji EOS, aby zmniejszyć rozmiar wyjścia. Ustaw na prawdę, aby zapobiec wyświetlaniu wszystkich wyników, oprócz wyników zadań.
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano

Zależności

Rola eos-route-control opiera się na modułach zawartych w głównym kodzie Ansible. Te moduły zostały dodane w wersji Ansible 2.1.

  • Ansible 2.1.0

Przykład Playbooka

Poniższy przykład użyje roli arista.eos-route-control do skonfigurowania mapy tras i statycznej trasy. Stworzymy plik „hosts” z naszym przełącznikiem, następnie odpowiedni plik „host_vars” i prosty playbook, który będzie odnosił się tylko do roli eos-route-control. Dodając tę rolę, automatycznie zyskujemy dostęp do wszystkich zadań do konfiguracji tych funkcji EOS. Fajnie jest to, że jeśli masz węzeł bez odpowiadającej konfiguracji, zadania zostaną pominięte bez problemu.

Przykładowy plik hosts:

[leafs]
leaf1.example.com

Przykładowy plik 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: Moja wspaniała mapa tras
    match:
      - as 1000
      - source-protocol bgp
    continue: 20
  - name: RM-1
    action: permit
    seqno: 20
    description: Moja wspaniała mapa tras
    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: Domyślny
    tag: 100

Prosty playbook, leaf.yml:

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

Następnie uruchom to polecenie:

ansible-playbook -i hosts leaf.yml

Informacje dla Deweloperów

Witamy w nasze wkłady rozwojowe. Proszę zapoznać się z Wytycznymi dla rozwoju ról Arista dla Ansible (test/arista-ansible-role-test/README), aby uzyskać dodatkowe informacje, w tym jak rozwijać i uruchamiać przypadki testowe dla rozwoju roli.

Licencja

Copyright (c) 2015, Arista Networks EOS+ Wszystkie prawa zastrzeżone.

Redystrybucja i wykorzystywanie w formach źródłowych i binarnych, z lub bez modyfikacji, są dozwolone pod warunkiem spełnienia następujących warunków:

  • Redystrybucje kodu źródłowego muszą zachować powyższy powiadomienie o prawach autorskich, tę listę warunków i następujący zrzeczenie.

  • Redystrybucje w formie binarnej muszą powielać powyższy powiadomienie o prawach autorskich, tę listę warunków i następujący zrzeczenie w dokumentacji i/lub innych materiałach dostarczonych z dystrybucją.

  • Ani nazwa Arista, ani imiona jej współpracowników nie mogą być używane do popierania ani promowania produktów pochodzących z tego oprogramowania bez wcześniejszej pisemnej zgody.

NINIEJSZE OPROGRAMOWANIE JEST DOSTARCZANE PRZEZ POSIADAJĄCYCH PRAWA AUTORSKIE I WSPÓŁTWÓRCÓW "TAK JAK JEST" I WSZELKIE GWARANCJE WYRAŹNE I IMPLIKOWANE, W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, IMPLIKOWANYCH GWARANCJI PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU SĄ WYŁĄCZONE. W ŻADNYM PRZYPADKU POSIADAJĄCY PRAWA AUTORSKIE ANI WSPÓŁTWÓRCY NIE BĘDĄ ODPOWIEDZIALNI ZA ŻADNE SZKODY BEZPOŚREDNIE, POŚREDNIE, PRZYPADKOWE, SZCZEGÓLNE, EXEMPLARY, ANI WYNIKOWE (W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, NABYCIA TOWARÓW ALBO USŁUG; UTRATY UŻYTKU, DANYCH LUB ZYSKÓW; LUB ZAKŁÓCEŃ DZIAŁALNOŚCI) JAKOLWIEK SPOWODOWANE I W JAKIEJ KOLWIEK TEORII ODPOWIEDZIALNOŚCI, CZY TO W UMOWACH, ODPOWIEDZIALNOŚCI ŚCIŚLEJ, CZY W POSTĘPOWANIU DELIKTOWYM (W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, ZANIEDBANIA LUB INNEJ) POWSTAŁE W JAKIKOLWIEK SPOSÓB Z UŻYTKOWANIA TEGO OPROGRAMOWANIA, NAWET JEŚLI ZOSTAŁO POINFORMOWANE O MOŻLIWOŚCI TAKIEGO USZKODZENIA.

Informacje o Autorach

Proszę zgłaszać wszelkie problemy za pomocą naszego repozytorium GitHub lub przesłać e-mail na adres ansible-dev@arista.com.

O projekcie

Role for managing EOS Routemaps and IPv4 static routing configuration

Zainstaluj
ansible-galaxy install arista.eos-route-control
Licencja
bsd-3-clause
Pobrania
12k
Właściciel
Applications developed and supported by Arista EOS+