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-galaxy install batfish.base