arista.eos-mlag
Rola MLAG dla EOS
Rola arista.eos-mlag tworzy abstrakcję dla wspólnej konfiguracji MLAG. Oznacza to, że nie musisz pisać żadnych zadań Ansible. Wystarczy stworzyć obiekt, który spełnia poniższe wymagania, a ta rola przyjmie ten obiekt i wykona niezbędną konfigurację.
Instalacja
ansible-galaxy install arista.eos-mlag
Wymagania
Wymaga połączenia SSH do urządzenia Arista. Możesz użyć dowolnych wbudowanych zmiennych połączeniowych eos lub słownika wygody provider
.
Zmienne roli
Słownik mlag
zawiera poniższe klucze opisane poniżej:
Klucz | Typ | Uwagi |
---|---|---|
mlag_domain_id | string | Nazwa domeny MLAG |
mlag_trunk_group | string | Grupa trunk przypisana do Vlan |
mlag_shutdown | boolean: true, false* | Włącz lub wyłącz konfigurację MLAG |
local_if_vlan | string (wymagane) | Vlan dla łącza peer, np. Vlan1024 |
local_if_vlan_description | string | Opis dla local_if_vlan |
local_if_ip_address | string (wymagane) | Adres IP dla local_if_vlan |
local_if_disable_spanning_tree | boolean: true*, false | Włącz lub wyłącz STP w sieci peer Vlan |
peer_address | string (wymagane) | Adres IP dla partnera MLAG |
peer_link_if | string (wymagane) | Port-Channel używany dla łącza peer |
peer_link_mode | wybory: trunk*, access | Tryb switchport dla łącza peer |
peer_link_lacp_mode | wybory: active*, passive, disabled | Tryb LACP dla każdego członka Port-Channel. |
peer_link_enable | boolean: true*, false | Włącz lub wyłącz interfejsy członków łącza |
peer_link_members | (Lista) | Lista interfejsów tworzących łącze peer. |
stan | boolean: present*, absent | Czy dodać czy usunąć wszystkie powiązane ustawienia mlag. Gdy ustawione na absent, wszystkie ustawienia, w tym local_if_vlan i peer_link_if, będą usunięte, a blok konfiguracji mlag przywróci domyślne ustawienia. Interfejsy w peer_link_members zostaną zresetowane do domyślnych ustawień switchport. |
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano
Zmienne konfiguracyjne
Klucz | Wybory | Opis |
---|---|---|
eos_save_running_config | true*, false | Określa, czy zmiany związane z wykonaniem roli mają zostać zapisane w pamięci, kopiując konfigurację do start-config. |
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano
Zmienne połączeniowe
Role Ansible EOS wymagają poniższych informacji o połączeniu, aby nawiązać komunikację z węzłami w Twoim inwentarzu. Informacje te mogą znajdować się w katalogach Ansible group_vars lub host_vars, lub w samym playbooku.
Klucz | Wymagane | Wybory | Opis |
---|---|---|---|
host | tak | Określa nazwę hosta DNS lub adres do łączenia z urządzeniem zdalnym przez określony transport. Wartość host jest używana jako adres docelowy dla transportu. | |
port | nie | Określa port do użycia przy nawiązywaniu połączenia z urządzeniem zdalnym. Wartość ta obowiązuje dla dowolnej akceptowalnej wartości transport. Domyślną wartość portu to odpowiedni wspólny port transportu, jeśli nie podano w zadaniu (cli=22, http=80, https=443). | |
username | nie | Ustala nazwę użytkownika do uwierzytelniania połączenia z urządzeniem zdalnym. Wartość username jest używana do uwierzytelniania logowania CLI lub uwierzytelniania eAPI, w zależności od używanego transport. Jeśli wartość nie jest podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_USERNAME. | |
password | nie | Określa hasło do uwierzytelnienia połączenia z urządzeniem zdalnym. To powszechny argument używany dla dowolnej akceptowalnej wartości transport. Jeśli wartość nie jest podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_PASSWORD. | |
ssh_keyfile | nie | Określa plik klucza SSH do uwierzytelnienia połączenia z urządzeniem zdalnym. Argument ten jest używany tylko wtedy, gdy transport=cli. Jeśli wartość nie jest podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_SSH_KEYFILE. | |
authorize | nie | tak, nie* | Instrukcja dla modułu, aby przejść do trybu uprzywilejowanego na urządzeniu zdalnym przed wysłaniem jakichkolwiek poleceń. Jeśli nie zostanie podane, urządzenie spróbuje wykonać wszystkie polecenia w trybie nieuprzywilejowanym. Jeśli wartość nie jest podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_AUTHORIZE. |
auth_pass | nie | Określa hasło do użycia, jeśli wymagane jest wejście w tryb uprzywilejowany na urządzeniu zdalnym. Jeśli authorize=no, to ten argument nie ma znaczenia. Jeśli wartość nie jest podana w zadaniu, zostanie użyta wartość zmiennej środowiskowej ANSIBLE_NET_AUTH_PASS. | |
transport | tak | cli*, eapi | Ustala połączenie transportowe do użycia przy łączeniu z urządzeniem zdalnym. Argument transport obsługuje łączność z urządzeniem za pomocą cli (ssh) lub eapi. |
use_ssl | nie | tak*, nie | Ustala, czy transport ma używać SSL, jeśli ustawiony na true, tylko wtedy, gdy transport=eapi. Jeśli transport=cli, ta wartość jest ignorowana. |
provider | nie | Metoda wygody, która pozwala przekazać wszystkie powyższe argumenty połączenia jako obiekt słownika. Wszystkie ograniczenia (wymagane, wybór itp.) muszą być spełnione przez poszczególne 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 | true, false* | Zapobiega rejestrowaniu argumentów modułu i wyjścia podczas wykonywania playbooka. Domyślnie, no_log jest ustawione na true dla zadań, które zbierają i zapisują informacje o konfiguracji EOS, aby zmniejszyć rozmiar wyjścia. Ustaw na true, aby zapobiec wszelkiemu wyjściu innemu niż wyniki zadań. |
Uwaga: Gwiazdka (*) oznacza wartość domyślną, jeśli nie podano
Zależności
Rola eos-bridging opiera się na modułach zawartych w podstawowym kodzie Ansible. Moduły te zostały dodane w wersji ansible 2.1.
- Ansible 2.1.0
Przykładowy Playbook
Następujący przykład użyje roli arista.eos-mlag do całkowitego skonfigurowania MLAG na dwóch przełącznikach brzegowych, bez pisania żadnych zadań. Stworzymy plik hosts
z dwoma przełącznikami brzegowymi, a następnie odpowiadający plik host_vars
dla każdego brzegowego, a następnie prosty playbook, który odnosi się tylko do roli mlag. Dzięki włączeniu tej roli automatycznie uzyskujemy dostęp do wszystkich zadań konfigurujących MLAG. Miło jest to, że jeśli masz hosta bez konfiguracji MLAG, zadania zostaną pominięte bez problemu.
Przykładowy plik hosts:
[leafs]
leaf1.example.com
leaf2.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
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
Przykładowy plik 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
Prosty playbook do włączenia MLAG na Twoich przełącznikach brzegowych, leaf.yml:
- hosts: leafs
roles:
- arista.eos-mlag
Następnie uruchom:
ansible-playbook -i hosts leaf.yml
Informacje dla deweloperów
Wszelkie wkłady rozwojowe są mile widziane. Proszę zapoznać się z Arista Roles for Ansible - Wytyczne dotyczące rozwoju (test/arista-ansible-role-test/README) po dodatkowe informacje, w tym jak opracować i uruchomić przypadki testowe dla rozwoju ról.
Licencja
Copyright (c) 2015, Arista Networks EOS+ Wszelkie prawa zastrzeżone.
Redystrybucja i użycie w formie źródłowej i binarnej, z lub bez modyfikacji, są dozwolone pod warunkiem spełnienia poniższych warunków:
Redystrybucje kodu źródłowego muszą zachować powyższe informacje o prawach autorskich, tę listę warunków i poniższy zastrzeżenie.
Redystrybucje w formie binarnej muszą reprodukować powyższe informacje o prawach autorskich, tę listę warunków i poniższe zastrzeżenie w dokumentacji i/lub innych materiałach dostarczonych z dystrybucją.
Żadna z nazw Arista ani nazw jej współpracowników nie może być używana do popierania lub promowania produktów pochodzących z tego oprogramowania bez wcześniejszej pisemnej zgody.
NiniejsZE OPROGRAMOWANIE JEST DOSTARCZONE PRZEZ POSESSORÓW PRAW AUTORSKICH I WSPÓŁPRACOWNIKÓW "TAK JAK JEST" I WSZELKIE WYRAŹNE LUB DOMNIEMANE GWARANCJE, W TYM, ALE NIE OGRANICZONE DO, DOMNIENNE GWARANCJE PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU SĄ WYLUCZONE. W ŻADNYM PRZYPADKU POSESSOR PRAW AUTORSKICH LUB WSPÓŁPRACOWNICY NIE BĘDĄ W ŻADEN SPOSÓB ODPOWIEDZIALNI ZA ŻADNE BEZPOŚREDNIE, POŚREDNIE, INCYDENTALNE, SZCZEGÓLNE, EXEMPLARNE LUB WYNIKOWE SZKODY (W TYM, ALE NIE OGRANICZONE DO, NABYWANIE ZASTĘPCZYCH TOWARÓW LUB USŁUG; UTRATĘ UŻYTKU, DANYCH LUB ZYSKÓW; LUB PRZERWĘ W DZIAŁALNOŚCI) W JAKIKOLWIEK SPOSÓB SPOWODOWANE, NA JAKIEJKOLWIEK TEORII ODPOWIEDZIALNOŚCI, CZY TO W UMOWACH, ŚCIGANIU ZGODNIE Z PRZEPISAMI CZY DELIKTACH (W TYM ZANIEDBANIE CZY INNE), WYNIKAJĄCE W JAKIKOLWIEK SPOSÓB Z UŻYTKOWANIA TEGO OPROGRAMOWANIA, NAWET JEŻELI ZOSTAŁ RZECZOWO UPRZEDZONY O MOŻLIWOŚCI TAKICH SZKÓD.
Informacje dla autorów
Proszę zgłaszać wszelkie problemy za pośrednictwem naszego repozytorium GitHub lub wysyłając e-mail na adres ansible-dev@arista.com
ansible-galaxy install arista.eos-mlag