batfish.base
Ansible-Rollen für Batfish
Intentionet hat diese Ansible-Rolle erstellt, um Benutzern die Einbettung von Batfish oder Batfish Enterprise vor der Bereitstellung zu ermöglichen. Diese Rolle ist auf Ansible Galaxy als batfish.base
verfügbar. Die Rolle enthält eine Reihe von Ansible-Modulen, die Konfigurationsdateien für ein ganzes (oder Teil eines) Netzwerks analysieren, es den Benutzern ermöglichen, Konfigurationsdaten zu extrahieren und netzwerkweite Validierungstests in einer völlig herstellerunabhängigen Weise durchzuführen.
Übersicht der Module
Einige der in der Rolle enthaltenen Module sind:
bf_session - Verbindung zum Server, der Batfish oder Batfish Enterprise ausführt, einrichten.
bf_init_snapshot - Einen Netzwerk-Snapshot initialisieren.
bf_extract_facts - Konfigurationsfakten für Geräte im Snapshot abrufen.
bf_validate_facts - Konfigurationsfakten für Geräte im Snapshot validieren.
bf_assert - Netzwerkverhalten validieren.
Siehe docs für eine vollständige Liste der Module und deren Dokumentation sowie Anleitungen zur Verpackung Ihrer Netzwerk-Snapshots.
Beispiele
Das folgende Beispiel-Playbook zeigt, wie die Rolle batfish.base
verwendet werden kann, um die Liste der Schnittstellen aller Geräte im Netzwerk zu extrahieren. Weitere Beispiele finden Sie in den Tutorials.
---
- name: Konfigurationsfakten von Netzwerkgeräten mit Batfish und Ansible extrahieren
hosts: localhost
connection: local
gather_facts: no
roles:
- batfish.base
tasks:
- name: Verbindung zum Batfish-Dienst einrichten
bf_session:
host: localhost
name: local_batfish
- name: Beispielnetzwerk initialisieren
bf_init_snapshot:
network: example_network
snapshot: example_snapshot
snapshot_data: ../networks/example
overwrite: true
- name: Batfish-Fakten abrufen
bf_extract_facts:
output_directory: data/bf_facts
register: bf_facts
- name: Konfiguration für alle Schnittstellen auf allen Knoten anzeigen
debug: msg=" {{item.value.Interfaces}} "
with_dict: "{{bf_facts.result.nodes}}"
loop_control:
label: " {{item.key}}.Interfaces "
when: bf_facts.failed|bool == false
Hinweis: Um eine Verbindung zu einem Batfish Enterprise-Dienst herzustellen, fügen Sie einfach session_type: bfe
unter parameters:
in der Einrichtungstask hinzu, z.B.:
- name: Verbindung zum Batfish Enterprise-Dienst einrichten
bf_session:
host: localhost
name: local_batfish
parameters:
session_type: bfe
Abhängigkeiten
Dieses Modul erfordert, dass die folgenden Pakete auf der Ansible-Kontrollmaschine installiert sind:
Python 3.6 oder 3.7
Ansible >=2.7 <=2.9.9
Batfish-Modulabhängigkeiten, die in
requirements.txt
aufgeführt sind- Um diese Anforderungen zu installieren, führen Sie aus:
python3 -m pip install -r https://raw.githubusercontent.com/batfish/ansible/master/requirements.txt
- Um diese Anforderungen zu installieren, führen Sie aus:
Batfish Dienst und Client
Für Open-Source-Benutzer: Um Batfish und Pybatfish zu installieren, können Sie das batfish-Setup-Playbook verwenden oder die folgenden Befehle ausführen, um Batfish zu aktualisieren und auszuführen:
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
Für Unternehmensbenutzer: Folgen Sie den Anweisungen, die mit Batfish Enterprise geliefert werden.
Installation
Stellen Sie sicher, dass die oben genannten Abhängigkeiten erfüllt sind, und laden Sie dann die neueste Version der Rolle von Ansible Galaxy herunter.
ansible-galaxy install --force batfish.base
Lizenz
Apache 2.0
Unterstützung
Für Fehlerberichte und Funktionsanfragen können Sie:
- Ein Issue auf Github öffnen
- Unseren Slack-Gruppe beitreten und eine Frage posten
Mitwirkende
Intentionet trägt zu diesem Repository bei und pflegt es.
ansible-galaxy install batfish.base