Перейти к содержанию

Синхронизация данных

Несколько моделей в InfraVision поддерживают автоматическую синхронизацию локальных данных из назначенного удалённого источника. Например, шаблоны конфигурации, определённые в InfraVision, могут получать содержимое из текстовых файлов, хранящихся в удалённом git-репозитории. Это реализуется с помощью основных моделей источник данных и файл данных.

Для включения синхронизации удалённых данных администратор InfraVision сначала назначает один или несколько удалённых источников данных. InfraVision в настоящее время поддерживает следующие типы источников:

  • Git-репозиторий
  • Бакет Amazon S3 (или совместимый продукт)
  • Путь на локальном диске

(Пути на локальном диске считаются «удалёнными» в этом контексте, поскольку они существуют за пределами базы данных InfraVision. Эти пути также могут быть сопоставлены с внешними сетевыми ресурсами.)

Информация

Бэкенды данных, подключающиеся к внешним источникам, обычно требуют установки одной или нескольких вспомогательных Python-библиотек. Git-бэкенд требует пакет dulwich, а S3-бэкенд требует пакет boto3. Они должны быть установлены в окружении InfraVision для включения этих бэкендов.

Информация

Если вы настраиваете Git и у вас настроен HTTP_PROXIES для использования протокола SOCKS, вам также потребуется установить Python-библиотеку python_socks.

Каждый тип удалённого источника имеет собственные параметры конфигурации. Например, git-источник запросит у пользователя указать ветку и учётные данные аутентификации. После создания источника запускается задача синхронизации для автоматической репликации удалённых файлов в локальную базу данных.

Следующие модели InfraVision могут быть связаны с реплицированными файлами данных:

  • Контексты конфигурации
  • Шаблоны конфигурации
  • Шаблоны экспорта

После того как данные назначены локальному экземпляру, его данные будут заменены содержимым реплицированного файла. Когда реплицированный файл обновляется в будущем (через задачи синхронизации), локальный экземпляр будет помечен как имеющий устаревшие данные. Затем пользователь может синхронизировать эти объекты по отдельности или массово для применения обновления. Этот двухэтапный процесс гарантирует, что автоматические задачи синхронизации не повлияют немедленно на производственные данные.

Примечание

Пользователю должно быть назначено разрешение core.sync_datasource для синхронизации локальных файлов из удалённого источника данных.