Существует несколько OpenSource решений для сбора и хранения конфигураций сетевых устройств, которые могут удовлетворить ваши требования. Вот некоторые из них:
1. **NetBox**: Это инструмент для управления сетевой инфраструктурой, который включает в себя возможности хранения конфигураций и визуализации сетевой топологии. Вы можете добавлять версии конфигураций, а также сравнивать их между собой. Использование API позволяет интегрировать NetBox с другими инструментами и системами, например, с Git. Для авторизации возможна настройка LDAP, что может помочь с интеграцией с Active Directory.
2. **RANCID**: Этот инструмент собирает конфигурации сетевых устройств и хранит их в репозиториях. Он также позволяет отслеживать изменения и хранит исторические версии конфигураций. Поскольку RANCID работает с текстовыми файлами, вам может потребоваться внешнее средство для сравнения, но при желании можно интегрировать его с Git, чтобы использовать возможности сравнения.
3. **Git + скрипты**: Если вы знакомы с Bash или Python, вы можете создать простую систему для сохранения и сравнения конфигураций, используя Git в качестве бэкенда. Скрипт будет выполнять сбор конфигураций, их сохранение в репозитории и сравнение версий через команды Git. Это может быть наиболее гибким решением, хотя может потребовать больше времени на реализацию.
4. **SaltStack**: Это инструмент для управления конфигурациями, который поддерживает сбор и хранение конфигурационных файлов. SaltStack также имеет возможность интеграции с Git и может работать с различными методами аутентификации.
5. **Ansible с Git**: Если вы используете Ansible для автоматизации, вы можете хранить конфигурации сетевых устройств в репозиториях Git, а изменения и версии можно контролировать с помощью возможностей Git. Ansible достаточно гибок и позволяет интегрироваться с LDAP/AD для авторизации.
Каждое из этих решений имеет свои плюсы и минусы, поэтому рекомендуется протестировать несколько из них, чтобы определить, какое из них наилучшим образом соответствует вашим требованиям.