From 8d13b2f3e537b34912dbef00b3847bab28e0a7c7 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sun, 16 Apr 2023 14:03:21 +0700 Subject: [PATCH] update readme --- README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 62 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index fd7c88d..c156580 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,70 @@ +# Vestasync +Vestasync - это ПО для бекапа и восстановления контроллеров Wirenboard. Оно решает две задачи: +1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) +2. Восстановление бекапа одной командой: после подключения нового контроллера достаточно ввести его IP и имя хоста предыдущего контроллера, чтобы Vestasync автоматически восстановила бекап вплоть до MAC-адресов сетевых интерфейсов, чтобы не было нужды менять настройки на DHCP-сервере. После перезагрузки контроллер вернется в сеть с IP старого контроллера. +## Установка +```bash +git clone https://github.com/vvzvlad/vestasync +cd vestasync +python -m venv .venv +source .venv/bin/activate +pip install -r requirements.txt +``` + +## Команды + +Vestasync поддерживает три команды: `install`, `update` и `restore`. + +### install + +Команда `install` выполняет подготовительные действия. + +Пример запуска: + +```bash +./vestasync.py +--cmd install +--device_ip 192.168.1.85 +--gitea_address http://192.168.1.101:3001/ +--device_new_name WB2 +--gitea_token de8a2eaee0d2f27746157c2fd563815f932d670c` +``` +--cmd install: означает, что надо установить Vestasync на контроллер и подготовить его к созданию бекапа +--device_ip: IP-адрес контроллера +--gitea_address: адрес Gitea-сервера, куда будет отправлен бекап в виде "http://192.168.1.101:3001/" +--device_new_name: имя контроллера, из которого вместе с SN будет сформировано название контроллера, которое запишется в хостнейм и будет служить именем репозитария с конфигами +--gitea_token: токен для авторизации на Gitea-сервере (получается в интерфейсе) +### restore -Система запускает две службы: +Команда `restore` выполняет восстановление существующего бекапа на контроллере. -## Восстановление MAC-адресов (apply_macs) -Служба apply_macs отвечает за применение MAC-адресов к сетевым интерфейсам при загрузке системы. -Эта служба считывает MAC-адреса из файлов, расположенных в каталоге /mnt/data/etc/vestasync/macs/, если они есть, и присваивает их соответствующим интерфейсам, таким как eth0, eth1, wlan0 и т. д. Это используется, если на контроллер был восстанновлен созданный бекап, чтобы сохранять MAC-адреса старого контроллера, и соотвественно, адрес, выданный DHCP. +Пример запуска: + +```bash +./vestasync.py +--cmd restore +--device_ip 192.168.98.85 +--gitea_address http://192.168.1.101:3001/ +--gitea_token de8a2eaee0d2f27746157c2fd563815f932d670c` +--source_hostname WB2-A3TBJXLS +``` + +Используются те же аргументы, что и в install, но дополнительно еще нужен аругмент source_hostname, который определяет имя контроллера, с которого выполняется бекап. device_new_name не используетс, в качестве имени будет взято имя старого контроллера. + + + +## Службы +Службы, которые будут запущенны на контроллере при установке: + +### Восстановление MAC-адресов (apply_macs) +Служба apply_macs отвечает за применение MAC-адресов к сетевым интерфейсам при загрузке системы. +Эта служба считывает MAC-адреса из файлов, расположенных в каталоге /mnt/data/etc/vestasync/macs/, если они есть, и присваивает их соответствующим интерфейсам, таким как eth0, eth1, wlan0 и т. д. Это используется, если на контроллер был восстанновлен созданный бекап, чтобы сохранять MAC-адреса старого контроллера, и соотвественно, адрес, выданный DHCP. Для изменения MAC-адресов на изначальные надо просто удалить все файлы и перезагрузиться: ``` rm -rf /mnt/data/etc/vestasync/macs/* @@ -19,11 +74,9 @@ reboot Обратно запустить: ```systemctl start apply_macs.service``` Узнать статус: ```systemctl status apply_macs.service``` -## Автоматическое версионирование и деплой конфигов (pushgit) - -Служба pushgit, работает в паре с таймером pushgit.timer. -Они обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере ежедневно. -Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении. +### Автоматическое версионирование и деплой конфигов (pushgit) +Служба pushgit работает в паре с таймером pushgit.timer. Они обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере ежедневно. +Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении. Чтобы отключить сохранение, надо остановить службу: ```systemctl stop pushgit.timer``` Запуск и проверка статуса аналогично предыдущей: Запустить: ``` systemctl start pushgit.timer```