Существуют ли OpenSource системы для сбора и хранения конфигураций, которые отображают различия между версиями?

У меня возникло желание создать систему для сбора и хранения конфигураций с сетевых устройств. Я определил минимальные требования: 
- авторизация пользователей должна быть доступна "из коробки", без дополнительной настройки веб-сервера;
- должна быть возможность сравнивать загруженные версии конфигураций.

Дополнительно хотелось бы иметь:
- авторизацию через Active Directory (AD);
- возможность хранения конфигураций в корпоративном Git.

Я искал различные решения и остановился на rConfig, который мне в целом понравился, но в бесплатной версии нет функции сравнения конфигураций, что создает определенные неудобства. Далее я рассмотрел Oxidized, которая, как мне показалось, имеет нужную функциональность, но после установки я был удивлён сложностью настройки. В результате мне не удалось не только сравнить версии конфигураций, но даже получить две версии — новая всегда перезаписывала старую.

Может быть, кто-то из вас использует подобные системы и может порекомендовать что-то ещё для изучения?
  • 11 марта 2025 г. 13:24
Ответы на вопрос 2
Существует несколько 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 для авторизации.

Каждое из этих решений имеет свои плюсы и минусы, поэтому рекомендуется протестировать несколько из них, чтобы определить, какое из них наилучшим образом соответствует вашим требованиям.
Насколько помню, Oxidized не поддерживает версионность output'а в файлаx, но поддерживает в git 
Исправь в конфиге output на git
sudo nano ~/.config/oxidized/config

output:
  default: git
  git:
      user: Oxidized
      email: oxidized@example.com
      repo: "~/.config/oxidized/oxidized.git"


После перезапусти его
sudo systemctl restart oxidized

Ну и ссылка на референс конфиги с их гита:
https://github.com/ytti/oxidized/blob/master/docs/...
Похожие вопросы