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
- Aby zainstalować te wymagania, uruchom:
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.
ansible-galaxy install batfish.base