batfish.base

Rôles Ansible pour Batfish

Intentionet a créé ce rôle Ansible pour permettre aux utilisateurs d'intégrer la validation de pré-déploiement de Batfish ou de Batfish Enterprise dans n'importe quel playbook Ansible. Ce rôle est hébergé sur Ansible Galaxy sous le nom batfish.base. Le rôle comprend un ensemble de modules Ansible qui analysent les fichiers de configuration pour un réseau entier (ou un sous-ensemble), permettant aux utilisateurs d'extraire des données de configuration et d'effectuer des tests de validation à l'échelle du réseau de manière totalement indépendante du fournisseur.

Vue d'ensemble des modules

Voici quelques modules inclus dans le rôle :

  • bf_session - Configure la connexion au serveur exécutant Batfish ou Batfish Enterprise

  • bf_init_snapshot - Initialise un snapshot du réseau

  • bf_extract_facts - Récupère les faits de configuration pour les équipements dans le snapshot

  • bf_validate_facts - Valide les faits de configuration pour les équipements dans le snapshot

  • bf_assert - Valide le comportement du réseau

Consultez les docs pour une liste complète des modules et leur documentation, ainsi que les instructions pour empaqueter vos snapshots de réseau

Exemples

Le playbook d'exemple ci-dessous décrit comment utiliser le rôle batfish.base pour extraire la liste des interfaces de tous les équipements du réseau. Consultez les tutoriels pour d'autres exemples.

---
- name: Extraire les faits des équipements réseau avec Batfish et Ansible
  hosts: localhost
  connection: local
  gather_facts: no
  roles:
    - batfish.base

  tasks:

  - name: Configurer la connexion au service Batfish
    bf_session:
      host: localhost
      name: local_batfish

  - name: Initialiser le réseau d'exemple
    bf_init_snapshot:
      network: example_network
      snapshot: example_snapshot
      snapshot_data: ../networks/example
      overwrite: true

  - name: Récupérer les faits de Batfish
    bf_extract_facts:
      output_directory: data/bf_facts
    register: bf_facts

  - name: Afficher la configuration pour toutes les interfaces sur tous les nœuds
    debug: msg=" {{item.value.Interfaces}} "
    with_dict: "{{bf_facts.result.nodes}}"
    loop_control:
      label: " {{item.key}}.Interfaces "
    when: bf_facts.failed|bool == false

Note : pour se connecter à un service Batfish Enterprise, ajoutez simplement session_type: bfe sous parameters: dans la tâche de configuration, par exemple :

  - name: Configurer la connexion au service Batfish Enterprise
    bf_session:
      host: localhost
      name: local_batfish
      parameters:
        session_type: bfe

Dépendances

Ce module nécessite l'installation des paquets suivants sur la machine de contrôle Ansible :

  • Python 3.6 ou 3.7

  • Ansible >=2.7 <=2.9.9

  • Exigences du module Batfish listées dans requirements.txt

    • Pour installer ces exigences, exécutez :
      python3 -m pip install -r https://raw.githubusercontent.com/batfish/ansible/master/requirements.txt
      
  • Service et client Batfish

    • Pour les utilisateurs open source : pour installer Batfish et Pybatfish, vous pouvez utiliser le playbook de configuration de Batfish ou exécuter les commandes suivantes pour mettre à jour et exécuter 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
      
    • Pour les utilisateurs entreprise : suivez les instructions fournies avec Batfish Enterprise

Installation

Assurez-vous que les dépendances ci-dessus sont satisfaites, puis obtenez la dernière version du rôle depuis Ansible Galaxy.

ansible-galaxy install --force batfish.base

Licence

Apache 2.0

Support

Pour les rapports de bogues et les demandes de fonctionnalités, vous pouvez :

Contributeurs

Intentionet contribue à ce dépôt et en assure la maintenance.

À propos du projet

Ansible modules for Batfish (www.batfish.org)

Installer
ansible-galaxy install batfish.base
Licence
apache-2.0
Téléchargements
8.8k
Propriétaire