arubanetworks.aruba_central_role

Aruba Central Ansible Role

Ten Ansible Network Role dostarcza zestaw modułów i wtyczek do zarządzania konfiguracją, dostosowanych do systemu Aruba Central, który jest chmurowym systemem zarządzania siecią.

Wymagania

  • Python 3.5+

  • Ansible 2.9 lub nowszy

    • Ansible 2.10+ wymaga zainstalowania kolekcji ansible.netcommon
  • Minimalna wspierana wersja oprogramowania Aruba Central to 2.5.2

  • Zainstaluj wszystkie wymagania Ansible, używając następującego polecenia:

    ansible-galaxy install -r requirements.yml
    
  • Zainstaluj wszystkie wymagania dla Pythona, używając następującego polecenia:

    pip install -r requirements.txt
    

Instalacja

Przez Galaxy:

ansible-galaxy install arubanetworks.aruba_central_role

Przez GitHub, użyj następującego polecenia. Użyj opcji -f, aby nadpisać obecną wersję roli:

ansible-galaxy install git+https://github.com/aruba/aruba-central-ansible-role.git

Uwagi

  • Moduły w tej roli korzystają z REST API Central. Aby uzyskać informacje na temat REST API oraz jak uzyskać dostęp do korzystania z REST API, odwiedź Aruba Developer Hub: Wprowadzenie do REST API
  • Należy utworzyć token API dla użytkownika w API Gateway Aruba Central, a następnie użyć ważnego, aktualnego access_token. Więcej informacji na temat rozpoczęcia pracy z API Gateway można również znaleźć w tym filmie na YouTube.
  • Ważny token dostępu można wykorzystać w pliku Inwentaryzacyjnym, jak opisano w sekcji Inwentaryzacja.
  • Upewnij się, że token dostępu został utworzony z wybraną "Operacją w sieci" w rozwijanym menu aplikacji podczas dodawania nowego tokena w API Gateway.
  • Po wygenerowaniu nowego tokena, będzie on miał access_token i refresh_token.
  • Token dostępu jest ważny przez 7200 sekund (dwie godziny). Po dwóch godzinach wygasa i trzeba utworzyć nowy token. Czas ważności tokena nie jest obecnie konfigurowalny.
  • refresh_token razem z client_id i client_secret są używane do odnowienia tokena dostępu. Ta funkcjonalność została zaimplementowana w tej roli za pomocą wtyczki inwentaryzacyjnej. Możesz użyć albo pliku inwentaryzacyjnego, albo pliku konfiguracyjnego wtyczki inwentaryzacyjnej.
  • Więcej szczegółów na temat korzystania z tego pliku konfiguracyjnego wtyczki z tokenami i innymi poświadczeniami do automatycznego odnawiania tokenów znajduje się w sekcji Plik konfiguracyjny wtyczki inwentaryzacyjnej.

Plik inwentaryzacyjny/hosta

Są dwa sposoby, w jakie można użyć pliku inwentaryzacyjnego lub hosta z rolą Aruba Central Ansible:

  1. Inwentaryzacja
    • Plik hosta, który informuje Ansible, jaki plugin httpapi użyć oraz inne szczegóły i token dostępu.
  2. Plik konfiguracyjny wtyczki inwentaryzacyjnej lub Źródło inwentaryzacyjne:
    • Plik źródłowy, który jest używany przez wtyczkę inwentaryzacyjną.
    • Typowa implementacja wtyczki inwentaryzacyjnej zawiera skrypt wtyczki (zazwyczaj napisany w Pythonie) oraz źródło inwentaryzacyjne (w tym przypadku jest to plik YAML).
    • Zgodnie z dokumentacją Ansible, źródła inwentaryzacyjne to ciągi wejściowe, z którymi pracują wtyczki inwentaryzacyjne. Źródło inwentaryzacyjne może być ścieżką do pliku lub skryptu, lub też może być surowymi danymi, które wtyczka może interpretować w celu dynamicznego generowania zmiennych inwentaryzacyjnych.
    • Tylko pliki .yml z zmiennymi pliku konfiguracyjnego wtyczki inwentaryzacyjnej są akceptowane jako źródło inwentaryzacyjne przez wtyczkę inwentaryzacyjną dla tej roli.

Inwentaryzacja

Zmienne inwentaryzacyjne

Zmiennymi, które powinny być zdefiniowane w Twojej inwentaryzacji dla konta Aruba Central, są:

  • ansible_host: Specyficzny dla klastra Base-URL dla API Gateway na Aruba Central w formacie FQDN, który można znaleźć w URL dokumentacji API na API Gateway.
  • ansible_connection: Zawsze musi być ustawione na httpapi.
  • ansible_network_os: Zawsze musi być ustawione na aruba_central.
  • ansible_httpapi_use_ssl: Zawsze musi być ustawione na True.
  • ansible_httpapi_central_access_token: Token dostępu API Aruba Central.

Przykładowa inwentaryzacja:

YAML
all:
  hosts:
    central:
      ansible_host: apigw-prod2.central.arubanetworks.com
      ansible_connection: httpapi
      ansible_network_os: aruba_central
      ansible_httpapi_use_ssl: True
      ansible_httpapi_central_access_token: CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx
INI
arubacentral ansible_host=apigw-prod2.central.arubanetworks.com ansible_connection=httpapi ansible_network_os=aruba_central ansible_httpapi_use_ssl=True ansible_httpapi_central_access_token=CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx

Plik konfiguracyjny wtyczki inwentaryzacyjnej

  • Jest to plik źródłowy inwentaryzacji, który jest wykorzystywany przez wtyczkę inwentaryzacyjną do dynamicznego generowania inwentaryzacji z wszystkimi opcjami (jak pokazano powyżej w prostym pliku inwentaryzacyjnym) wymaganymi przez wtyczkę połączenia HttpAPI.
  • Użytkownik musi stworzyć plik konfiguracyjny, który zawiera nazwę wtyczki oraz inne poświadczenia centralne.

Uwagi

  • Zwykle wtyczka inwentaryzacyjna nie może być dostarczana w ramach roli, ponieważ Ansible wykonuje wtyczkę inwentaryzacyjną przed wykonaniem playbooka lub roli. Więcej informacji można znaleźć w Dokumentacji Ansible.
    • Dlatego, dopóki nie opublikujemy Kolekcji Ansible dla Aruba Central, będziesz musiał wykonać następujący sposób, aby korzystać z niestandardowej wtyczki inwentaryzacyjnej dla tej roli Ansible dla Central - co zajmie się automatycznym odnawianiem tokenów.

Metoda 1:

  • Skopiuj plik wtyczki inwentaryzacyjnej central_inventory.py z GitHub i przechowuj go w katalogu inventory_plugins w swoim katalogu playbooków.
  • Twój katalog playbooków powinien mieć następującą strukturę:
playbooks_dir
+-- playbook1.yml
+-- playbook2.yml
+-- inv_src.yml
+-- inventory_plugins/
|   +-- central_inventory.py
  • Gdzie **inv_src.yml** lub inny plik **.yml** o innej nazwie może działać jako plik konfiguracyjny wtyczki inwentaryzacyjnej. Przykładowy plik konfiguracyjny wtyczki inwentaryzacyjnej i używane przez nie zmienne są podane poniżej.
  • Plik konfiguracyjny wtyczki inwentaryzacyjnej nie powinien być używany z Ansible Vault, ponieważ wtyczka inwentaryzacyjna musi zapisywać odnowione tokeny refresh i access z powrotem do pliku konfiguracyjnego wtyczki.
  • Użytkownik musi początkowo upewnić się, że ważny token dostępu i token odświeżania zostały wprowadzone w pliku konfiguracyjnym wtyczki inwentaryzacyjnej po raz pierwszy. Jeśli oba tokeny są nieważne, wtyczka inwentaryzacyjna zmodyfikuje plik, wpisując <Wprowadź ważny token dostępu/odświeżania> w pliku konfiguracyjnym wtyczki inwentaryzacyjnej, a wykonanie zakończy się niepowodzeniem z komunikatem "Nieautoryzowany".
  • Token refresh_token jest ważny przez 14 dni. Jeśli nie będzie używany przez 14 dni, token zostanie anulowany i będzie trzeba utworzyć nowy token. Ważność tokena odświeżającego nie jest obecnie konfigurowalna.

Metoda 2:

  • Po zainstalowaniu roli, przejdź do katalogu ról. Użyj poniższych poleceń, aby uzyskać ścieżkę, w której zainstalowano rolę i przenieść katalog inventory_plugins z plikiem wtyczki.
$ ansible-galaxy role list 

------------------output-----------------
# /home/admin/.ansible/roles
- arubanetworks.aruba_central_role, 0.2.1
  • Wybierz ścieżkę i przejdź do katalogu ról
  • Nazwa roli może się różnić, w zależności od sposobu, w jaki zdecydowałeś się ją zainstalować
  • Po uzyskaniu ścieżki przenieś katalog wtyczki inwentaryzacyjnej do katalogu swoich playbooków
$ cd /home/admin/.ansible/roles

$ cd arubanetworks.aruba_central_role
lub
$ cd aruba-central-ansible-role

$ mv inventory_plugins/ <ścieżka_do_katalogu_playbooków>

Zmienne pliku konfiguracyjnego wtyczki inwentaryzacyjnej

Zmiennymi, które powinny być zdefiniowane w Twoim pliku konfiguracyjnym wtyczki inwentaryzacyjnej dla Twojego konta Aruba Central, są:

  • access_token: Token dostępu API Aruba Central.
  • api_gateway: Specyficzny dla klastra Base-URL dla API Gateway na Aruba Central w formacie FQDN, który można znaleźć w URL dokumentacji API na API Gateway.
  • client_id: ID klienta API Aruba Central.
  • client_secret: Tajny klucz klienta API Aruba Central.
  • host: Zawsze należy ustawić na central.
  • plugin: Zawsze należy ustawić na central_inventory.
  • refresh_token: Token odświeżania API Aruba Central.

Przykładowy plik konfiguracyjny wtyczki inwentaryzacyjnej:

YAML
access_token: CnjDaXXxvnjrvJRwxxxxXXxxXXXXxxxx
api_gateway: apigw-prod2.central.arubanetworks.com
client_id: FOqWxx124ASdfS36HqKIeXXzZ
client_secret: O2RfdKgiS13GhswdrWAIEueMPOxxZxX
host: central
plugin: central_inventory
refresh_token: X12daE6BFhk8QqqzzeifHTYxxZZ12XxX

Przykłady playbooków

Dołączenie roli

Jeśli rola została zainstalowana przez Galaxy, ustaw rolę na arubanetworks.aruba_central_role:

---
-  hosts: all
   roles:
     - role: arubanetworks.aruba_central_role
   tasks:
   - name: Pobierz wszystkie grupy UI i szablonów w Central
     central_groups:
       action: get_groups
       limit: 20
       offset: 0

Jeśli rola została zainstalowana przez GitHub, ustaw rolę na aruba-central-ansible-role:

---
-  hosts: all
   roles:
     - role: aruba-central-ansible-role
   tasks:
   - name: Pobierz wszystkie grupy UI i szablonów w Central
     central_groups:
       action: get_groups
       limit: 20
       offset: 0

Wykonanie playbooka

ansible-playbook playbook.yml -i inventory.yml
  • Gdzie inventory.yml może być prostym plikiem inwentaryzacyjnym lub plikiem konfiguracyjnym wtyczki inwentaryzacyjnej (źródło inwentaryzacyjne).
  • Upewnij się, że masz plik central_inventory.py w katalogu inventory_plugins/, zanim wykonasz playbook, korzystając z pliku konfiguracyjnego wtyczki inwentaryzacyjnej.

Wkład

W Aruba Networks dbamy o jakość naszych produktów, więc jeśli znajdziesz jakiekolwiek problemy, otwórz zgłoszenie na naszym GitHubie i na pewno szybko odpowiemy!

Aby uzyskać więcej możliwości wkładu, zapoznaj się z naszymi wytycznymi zawartymi w CONTRIBUTING.md

Licencja

MIT

Informacje o autorze

  • Jay Pathak (@jayp193)
  • Derek Wang (@derekwangHPEAruba)
O projekcie

Ansible modules for automating various monitoring and configuration constructs on Aruba Central, which is used to manage network devices (github repo - https://github.com/aruba/aruba-central-ansible-role)

Zainstaluj
ansible-galaxy install arubanetworks.aruba_central_role
Licencja
mit
Pobrania
83.8k
Właściciel