batfish.base

Role Ansible dla Batfish

Intentionet stworzył tę rolę Ansible, aby umożliwić użytkownikom włączenie walidacji przed wdrożeniem Batfish lub Batfish Enterprise do dowolnego playbooka Ansible. Ta rola jest dostępna na Ansible Galaxy jako batfish.base. Zawiera zestaw modułów Ansible, które analizują pliki konfiguracyjne całej sieci (lub ich podzestawu), umożliwiając użytkownikom wydobycie danych konfiguracyjnych oraz przeprowadzenie testów walidacyjnych w całej sieci w sposób niezależny od dostawcy.

Przegląd modułów

Niektóre z modułów zawartych w roli to:

  • bf_session - Ustawienie połączenia z serwerem działającym na Batfish lub Batfish Enterprise

  • bf_init_snapshot - Inicjalizacja migawki sieciowej

  • bf_extract_facts - Pobranie faktów konfiguracyjnych dla urządzeń w migawce

  • bf_validate_facts - Walidacja faktów konfiguracyjnych dla urządzeń w migawce

  • bf_assert - Walidacja zachowania sieci

Zobacz dokumentację dla pełnej listy modułów oraz ich dokumentacji, a także instrukcje dotyczące pakowania migawków sieciowych.

Przykłady

Poniższy przykładowy playbook ilustruje, jak używać roli batfish.base, aby wydobyć listę interfejsów dla wszystkich urządzeń w sieci. Sprawdź tutoriale dla dodatkowych przykładów.

---
- name: Wyciąganie faktów urządzeń sieciowych przy użyciu Batfish i Ansible
  hosts: localhost
  connection: local
  gather_facts: no
  roles:
    - batfish.base

  tasks:

  - name: Ustawienie połączenia z usługą Batfish
    bf_session:
      host: localhost
      name: local_batfish

  - name: Inicjalizacja przykładowej sieci
    bf_init_snapshot:
      network: example_network
      snapshot: example_snapshot
      snapshot_data: ../networks/example
      overwrite: true

  - name: Pobranie faktów Batfish
    bf_extract_facts:
      output_directory: data/bf_facts
    register: bf_facts

  - name: Wyświetlenie konfiguracji dla wszystkich interfejsów na wszystkich węzłach
    debug: msg=" {{item.value.Interfaces}} "
    with_dict: "{{bf_facts.result.nodes}}"
    loop_control:
      label: " {{item.key}}.Interfaces "
    when: bf_facts.failed|bool == false

Uwaga: aby połączyć się z usługą Batfish Enterprise, wystarczy dodać session_type: bfe pod parameters: w zadaniu konfiguracji, np.:

  - name: Ustawienie połączenia z usługą Batfish Enterprise
    bf_session:
      host: localhost
      name: local_batfish
      parameters:
        session_type: bfe

Wymagania

Ten moduł wymaga zainstalowania następujących pakietów na maszynie kontrolnej Ansible:

  • Python 3.6 lub 3.7

  • Ansible >=2.7 <=2.9.9

  • Wymagania modułu Batfish wymienione w requirements.txt

    • Aby zainstalować te wymagania, uruchom:
      python3 -m pip install -r https://raw.githubusercontent.com/batfish/ansible/master/requirements.txt
      
  • Usługa i klient Batfish

    • Dla użytkowników open-source: aby zainstalować Batfish i Pybatfish, możesz użyć playbooka konfiguracyjnego Batfish lub wykonać następujące polecenia, aby zaktualizować i uruchomić Batfish:

      python3 -m pip install --upgrade pybatfish
      docker pull batfish/allinone
      docker run -v batfish-data:/data -p 8888:8888 -p 9997:9997 -p 9996:9996 batfish/allinone
      
    • Dla użytkowników enterprise: postępuj zgodnie z instrukcjami dostarczonymi z Batfish Enterprise.

Instalacja

Upewnij się, że spełnione są powyższe wymagania, a następnie pobierz najnowszą wersję roli z Ansible Galaxy.

ansible-galaxy install --force batfish.base

Licencja

Apache 2.0

Wsparcie

W przypadku zgłaszania błędów i sugestii funkcji możesz:

  • Otwarcie zgłoszenia na Githubie issue
  • Dołączyć do naszej Grupy Slack i zadać pytanie

Współpracownicy

Intentionet współpracuje i zarządza tym repozytorium.

O projekcie

Ansible modules for Batfish (www.batfish.org)

Zainstaluj
ansible-galaxy install batfish.base
Licencja
apache-2.0
Pobrania
8.8k
Właściciel