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

O projekcie

Role for managing MLAG configuration

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