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 - 验证网络行为
请参阅文档以获取完整的模块列表及其文档,以及打包您的网络快照的说明。
示例
下面的示例剧本概述了如何使用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