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.
Role for managing EOS Routemaps and IPv4 static routing configuration
ansible-galaxy install arista.eos-route-control