batfish.base
Роли Ansible для Batfish
Компания 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, просто добавьте session_type: bfe под parameters: в задаче настройки, например:
- 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
Требования модуля Batfish, указанные в
requirements.txt- Чтобы установить эти требования, выполните:
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
Поддержка
Для сообщений об ошибках и запросов на функции вы можете:
- Открыть issue на Github
- Присоединиться к нашей группе Slack и задать вопрос
Участники
Intentionet способствует развитию и поддержке этого репозитория.
ansible-galaxy install batfish.base