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
      
  • 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:

Mitwirkende

Intentionet trägt zu diesem Repository bei und pflegt es.

Über das Projekt

Ansible modules for Batfish (www.batfish.org)

Installieren
ansible-galaxy install batfish.base
Lizenz
apache-2.0
Downloads
8.8k
Besitzer