batfish.base

BatfishのためのAnsibleロール

Intentionetは、ユーザーが任意のAnsibleプレイブックにBatfishまたはBatfish Enterpriseの事前デプロイメント検証を組み込むことができるAnsibleロールを作成しました。このロールはAnsible Galaxyにbatfish.baseとしてホスティングされています。ロールには、ネットワーク全体(またはその一部)の設定ファイルを分析し、ユーザーが設定データを抽出し、ベンダーに依存しない方法でネットワーク全体の検証テストを実行できるAnsibleモジュールのセットが含まれています。

モジュールの概要

このロールに含まれるモジュールのいくつかは次のとおりです:

  • bf_session - BatfishまたはBatfish Enterpriseを実行しているサーバーへの接続を設定

  • bf_init_snapshot - ネットワークスナップショットを初期化

  • bf_extract_facts - スナップショット内のデバイスに対する設定事実を取得

  • bf_validate_facts - スナップショット内のデバイスに対する設定事実を検証

  • bf_assert - ネットワークの動作を検証

モジュールの完全なリストとそのドキュメントについては、docsを参照し、ネットワークスナップショットのパッケージング手順を確認してください。

以下の例のプレイブックは、batfish.baseロールを使用してネットワーク内のすべてのデバイスのインターフェースリストを抽出する方法を示しています。追加の例については、チュートリアルをチェックしてください。

---
- name: BatfishとAnsibleを使用してネットワークデバイスの事実を抽出
  hosts: localhost
  connection: local
  gather_facts: no
  roles:
    - batfish.base

  tasks:

  - name: Batfishサービスへの接続を設定
    bf_session:
      host: localhost
      name: local_batfish

  - name: サンプルネットワークを初期化
    bf_init_snapshot:
      network: example_network
      snapshot: example_snapshot
      snapshot_data: ../networks/example
      overwrite: true

  - name: Batfish事実を取得
    bf_extract_facts:
      output_directory: data/bf_facts
    register: bf_facts

  - name: すべてのノードのすべてのインターフェースの構成を表示
    debug: msg=" {{item.value.Interfaces}} "
    with_dict: "{{bf_facts.result.nodes}}"
    loop_control:
      label: " {{item.key}}.Interfaces "
    when: bf_facts.failed|bool == false

注意:Batfish Enterpriseサービスに接続するには、セットアップタスクのparameters:session_type: bfeを追加してください。例えば:

  - name: Batfish Enterpriseサービスへの接続を設定
    bf_session:
      host: localhost
      name: local_batfish
      parameters:
        session_type: bfe

依存関係

このモジュールは、Ansible制御マシンに以下のパッケージがインストールされている必要があります:

  • Python 3.6または3.7

  • Ansible >=2.7 <=2.9.9

  • requirements.txtに記載されたBatfishモジュールの要件

    • これらの要件をインストールするには、次のコマンドを実行します:
      python3 -m pip install -r https://raw.githubusercontent.com/batfish/ansible/master/requirements.txt
      
  • Batfishサービスとクライアント

    • オープンソースユーザー向け:BatfishとPybatfishをインストールするには、batfishセットアッププレイブックを使用するか、以下のコマンドを実行して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
      
    • エンタープライズユーザー向け:Batfish Enterpriseに付属する指示に従ってください。

インストール

上記の依存関係を満たし、Ansible Galaxyからロールの最新バージョンを取得します。

ansible-galaxy install --force batfish.base

ライセンス

Apache 2.0

サポート

バグレポートや機能リクエストについては、以下の方法があります:

貢献者

Intentionetがこのリポジトリに貢献し、管理しています。

プロジェクトについて

Ansible modules for Batfish (www.batfish.org)

インストール
ansible-galaxy install batfish.base
ライセンス
apache-2.0
ダウンロード
8.8k
所有者