Данная утилита используется для передачи конфигураций устройств программно-аппаратного комплекса Arbor Sightline на приватный git – репозиторий.
Все устройства работают под управлением операционной системы ArbOS, построенной на базе Red Hat 6.4.1-1. Однако, в силу разности функций, исполняемых отдельными звеньями комплекса, базовый набор предустановленных утилит отличается у различных устройств.
Так, в развертывании ArbOS версии 7.2 с надстройкой Peakflow SP версии 9.6.0.0 и выше, предустановлена утилита git версии 2.29.2, исполняющая роль системы контроля версии конфигурации. Что позволяет использовать git–конвейер (также известный как pipeline), построенный с использованием git hooks.
В то же время у устройств, работающих под управлением системой ArbOS версии 7.3 с надстройкой Arbor TMS версии 9.6.0.0, отсутствует утилита git. В связи с чем отсутствует возможность построения событийно-ориентированной системы резервного копирования файлов конфигурации.
С учетом представленных обстоятельств был написан дополнительный функционал, позволяющий производить резервное сохранение конфигураций.
Компиляция исходных файлов должна происходить с учетом операционной системы и архитектуры используемого процессора. В нашем случае, это amd64 под управлением linux.
$ if [ -d src ]; then cd src; else echo "Command should be run at the top level of this repository" && exit; fi
$ go get; GOOS=linux GOARCH=amd64 go build -o ../backupUtil
В корневой директории репозитория находится YAML – файл backupUtil.cfg
, представляющий собой файл конфигурации для программы backupUtil
.
Перед переходом к распространению программы по устройствам сети необходимо задать все обязательные поля.
Независимо от типа устройства считаем, что используемые файлы находятся в базовой директории:
$ ls -1 /base/data/files/scripts/
backupUtil
backupUtil.cfg
backupCron
post-commit
При этом файлы backupUtil
, backupCron
и post-commit
должны быть исполняемыми.
$ chmod +x backupUtil backupCron post-commit
Рассмотрим пошаговую инструкцию по настройке резервного копирования конфигурации устройств различных групп.
$ mkdir -p /base/nfsroot/etc/peakflow/config/.git/hooks/
$ mv /base/data/files/scripts/post-commit /base/nfsroot/etc/peakflow/config/.git/hooks/post-commit
Таким образом, при произведении сохранения конфигурации на системе Peakflow SP будет выполнена синхронизации файла конфигурации с удаленным репозиторием.
$ mv /base/data/files/scripts/backupCron /etc/c.day/backupCron
Таким образом, один раз в сутки в 1:15 UTC будет производиться синхронизация конфигурации устройства с удаленным репозиторием.