arista.eos-system

Rola systemowa dla EOS

Rola arista.eos-system tworzy abstrakcję dla wspólnej, globalnej konfiguracji systemu. Oznacza to, że nie musisz pisać żadnych zadań Ansible. Wystarczy stworzyć obiekt zgodny z poniższymi wymaganiami, a ta rola przetworzy ten obiekt i wykona niezbędną konfigurację.

Ta rola umożliwia szczególnie konfigurację routingu IP, nazwy hosta oraz użytkowników CLI.

Instalacja

ansible-galaxy install arista.eos-system

Wymagania

Wymaga połączenia SSH do Twojego urządzenia Arista. Możesz użyć dowolnych wbudowanych zmiennych połączeniowych eos lub słownika provider.

Zmienne roli

Zadania w tej roli opierają się na obiektach hostname, eos_ip_routing_enabled oraz eos_users, opisanych poniżej:

hostname

Klucz Typ Uwagi
hostname string ASCII, który ma być użyty do konfiguracji wartości nazwy hosta w aktualnej konfiguracji węzła.

eos_ip_routing_enabled

Klucz Typ Uwagi
eos_ip_routing_enabled boolean: true, false* Konfiguruje stan routingu IPv4 'ip routing' na przełączniku. Domyślnie przełączniki EOS uruchamiają się z 'no ip routing'.

eos_users (lista), każdy wpis zawiera poniższe klucze:

Klucz Typ Uwagi
name string (wymagany) Unikalna nazwa użytkownika. Nazwa musi spełniać określone zasady formatowania. Ważne nazwy użytkowników zaczynają się od A-Z, a-z lub 0-9 i mogą zawierać następujące znaki: @#$%^&*-_= +;<>,.~
encryption wybory: md5, sha512 Określa format szyfrowania hasła podanego w odpowiadającym kluczu secret.
secret string Ten klucz jest używany razem z szyfrowaniem. Wartość powinna być hasłem w postaci skrótu, które zostało wcześniej wygenerowane.
nopassword boolean: true, false* Klucz nopassword jest używany do utworzenia użytkownika bez przypisanego hasła. Atrybut ten jest wzajemnie wykluczający się z secret i encryption.
role string Konfiguruje rolę przypisaną do użytkownika.
privilege int: 0-15 Konfiguruje poziom uprawnień dla użytkownika. Dozwolone wartości to całkowite liczby od 0 do 15. Domyślnym poziomem uprawnień EOS jest 1, jeśli ten klucz zostanie pominięty.
sshkey string Konfiguruje klucz ssh dla użytkownika CLI. Ten klucz ssh zostanie umieszczony w /home/USER/.ssh/authorized_keys.
state wybory: present*, absent Ustawia stan dla użytkownika CLI.
Uwaga: Gwiazdka (*) oznacza domyślną wartość, jeśli nie została określona.

Zmienne konfiguracyjne

Klucz Wybory Opis
eos_save_running_config true*, false Określa, czy zapisać jakiekolwiek zmiany do konfiguracji uruchomionej wynikających z wykonania roli w pamięci, kopiując konfigurację do konfiguracji startowej.
Uwaga: Gwiazdka (*) oznacza domyślną wartość, jeśli nie została określona.

Zmienna połączenia

Role Ansible EOS wymagają następujących informacji o połączeniu, aby nawiązać komunikację z węzłami w Twoim inwentarzu. Informacje te mogą znajdować się w folderach Ansible group_vars lub host_vars, lub w samym playbooku.

Klucz Wymagany Wybory Opis
host tak Określa nazwę hosta DNS lub adres do łączenia się zdalnym urządzeniem przez określony transport. Wartość host jest używana jako adres docelowy dla transportu.
port nie Określa port używany przy nawiązywaniu połączenia z zdalnym urządzeniem. Wartość ta dotyczy dowolnej wartości transport. Wartość portu domyślnie ustawiana jest na odpowiedni wspólny port transportowy, jeśli nie zostanie podana w zadaniu (cli=22, http=80, https=443).
username nie Konfiguruje nazwę użytkownika do uwierzytelnienia połączenia z zdalnym urządzeniem. Wartość username jest używana do uwierzytelnienia podczas logowania CLI lub uwierzytelnienia eAPI w zależności od używanego transport. Jeżeli wartość nie została określona w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_USERNAME zostanie użyta jako alternatywa.
password nie Określa hasło do uwierzytelnienia połączenia z zdalnym urządzeniem. Jest to powszechny argument używany dla każdej akceptowalnej wartości transport. Jeśli wartość nie została określona w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_PASSWORD zostanie wykorzystana.
ssh_keyfile nie Określa plik klucza SSH używany do uwierzytelnienia połączenia z tym zdalnym urządzeniem. Argument ten jest używany tylko wtedy, gdy transport=cli. Jeśli wartość nie została określona w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_SSH_KEYFILE zostanie wykorzystana.
authorize nie tak, nie* Instruuje moduł, aby wszedł w tryb uprzywilejowany na zdalnym urządzeniu przed wysłaniem poleceń. Jeśli nie zostanie określone, urządzenie spróbuje wykonać wszystkie polecenia w trybie nieuprzywilejowanym. Jeśli wartość nie została określona w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_AUTHORIZE zostanie użyta.
auth_pass nie Określa hasło używane, gdy wymagane jest wejście w tryb uprzywilejowany na zdalnym urządzeniu. Jeśli authorize=no, ten argument nic nie robi. Jeśli wartość nie została określona w zadaniu, wartość zmiennej środowiskowej ANSIBLE_NET_AUTH_PASS zostanie wykorzystana.
transport tak cli*, eapi Konfiguruje transport do użycia przy łączeniu się z zdalnym urządzeniem. Argument transport obsługuje łączność z urządzeniem przez cli (ssh) lub eapi.
use_ssl nie tak*, nie Konfiguruje transport do użycia SSL, jeśli jest ustawione na true wyłącznie w przypadku, gdy transport=eapi. Jeśli transport=cli, wartość ta jest ignorowana.
provider nie Metoda pomocnicza, która pozwala przekazać wszystkie powyższe argumenty połączenia jako obiekt dict. Wszystkie ograniczenia (wymagane, wybory itp.) muszą być spełnione przez indywidualne argumenty lub wartości w tym dict.
Uwaga: Gwiazdka (*) oznacza domyślną wartość, jeśli nie została określona.

Zmienne Ansible

Klucz Wybory Opis
no_log true, false* Zapobiega logowaniu argumentów modułu oraz wyników podczas wykonywania playbooka. Domyślnie no_log jest ustawione na true dla zadań, które zbierają i zapisują informacje o konfiguracji EOS, aby zredukować rozmiar wyników. Ustaw na true, aby zapobiec wszelkim wynikom innym niż wyniki zadań.
Uwaga: Gwiazdka (*) oznacza domyślną wartość, jeśli nie została określona.

Zależności

Rola eos-system opiera się na modułach zawartych w podstawowym kodzie Ansible. Te moduły zostały dodane w wersji ansible 2.1.0

  • Ansible 2.1.0

Przykładowy playbook

Poniższy przykład użyje roli arista.eos-system, aby całkowicie skonfigurować użytkowników CLI, routing IP i nazwę przełącznika bez pisania żadnych zadań. Utworzymy plik hosts z naszym przełącznikiem, następnie odpowiadający plik host_vars i prosty playbook, który odnosi się tylko do roli eos-system. Włączając rolę, automatycznie uzyskujemy dostęp do wszystkich zadań konfigurujących funkcje systemowe. Fajną rzeczą w tym jest to, że jeśli masz hosta bez konfiguracji systemowej, zadania zostaną pominięte bez żadnych problemów.

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

eos_users:
  - name: superadmin
    encryption: md5
    secret: '$1$J0auuPhz$Pkr5NnHssW.Jqlk17Ylpk0'
    privilege: 15
    role: network-admin
  - name: simplebob
    nopassword: true
    privilege: 0
    role: network-operator

hostname: leaf1

eos_ip_routing_enabled: yes

Prosty playbook do skonfigurowania mostkowania, leaf.yml:

- hosts: leafs
  roles:
     - arista.eos-system

Następnie uruchom za pomocą:

ansible-playbook -i hosts leaf.yml

Informacje dla deweloperów

Wkłady w rozwój są mile widziane. Proszę zapoznać się z Arista Roles for Ansible - Guidelines for Development (test/arista-ansible-role-test/README), aby uzyskać dodatkowe informacje, w tym jak rozwijać i uruchamiać testy dla rozwoju ról.

Licencja

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

Ponowne wykorzystywanie i korzystanie w formach źródłowych i binarnych, ze zmianami lub bez, jest dozwolone pod warunkiem spełnienia następujących warunków:

  • Ponowne wykorzystywanie kodu źródłowego musi zachować powyższy komunikat o prawach autorskich, tę listę warunków oraz następujący zastrzeżenie.

  • Redistribucja w formie binarnej musi reprodukować powyższy komunikat o prawach autorskich, tę listę warunków oraz następujący zastrzeżenie w dokumentacji i/lub innych materiałach dołączonych do dystrybucji.

  • Nazwa Arista ani nazwy jej współpracowników nie mogą być wykorzystywane do popierania lub promowania produktów pochodnych tego oprogramowania bez wyraźnej, pisemnej zgody.

TO OPROGRAMOWANIE JEST DOSTARCZANE PRZEZ WŁAŚCICIELI PRAW AUTORSKICH I WSPÓŁPRACOWNIKÓW "TAK JAK JEST" I WSZELKIE WYRAŹNE LUB DOROZUMIANE GWARANCJE, W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, DOROZUMIANE GWARANCJE HANDLOWOŚCI I PRZYDATNOŚCI DO OKREŚLONEGO CELU SĄ WYŁĄCZONE. W ŻADNYM PRZYPADKU WŁAŚCICIEL PRAW AUTORSKICH LUB WSPÓŁPRACOWNICY NIE BĘDĄ ODPOWIEDZIALNI ZA ŻADNE SZKODY BEZPOŚREDNIE, POŚREDNIE, INCYDENTALNE, SZCZEGÓLNE, WZORCOWE LUB NASTĘPCZE (W TYM, ALE NIE OGRANICZAJĄC SIĘ DO, NABYCIA ZASTĘPCZYCH TOWARÓW LUB USŁUG; UTRATY UŻYTKU, DANYCH LUB ZYSKÓW; LUB ZAKŁÓCEŃ DZIAŁALNOŚCI) JAKIEKOLWIEK PRZYCZYNĄ ORAZ NA JAKIEJKOLWIEK TEORII ODPOWIEDZIALNOŚCI, CZY TO W UMOWACH, ŚCIŚLEJ WYPOWIEDZI, CZY W DELIKCIE (W TYM ZANIEDBANIE LUB INACZEJ) POWSTAŁY W JAKIKOLWIEK SPOSÓB W WYNIKU UŻYCIA TEGO OPROGRAMOWANIA, NAWET JEŚLI ZOSTALI POINFORMOWANI O MOŻLIWOŚCI TAKIEGO USZKODZENIA.

Informacje o autorze

Proszę zgłaszać wszelkie problemy, korzystając z naszego repozytorium GitHub lub wysyłając wiadomości na adres e-mail: ansible-dev@arista.com

O projekcie

Role for managing EOS global system configuration

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