mirror of
https://github.com/vvzvlad/vestasync.git
synced 2024-12-26 12:11:00 +03:00
update readme
This commit is contained in:
parent
304df692a9
commit
8d13b2f3e5
79
README.md
79
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` выполняет восстановление существующего бекапа на контроллере.
|
||||||
|
|
||||||
|
Пример запуска:
|
||||||
|
|
||||||
|
```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-адресов (apply_macs)
|
|
||||||
Служба apply_macs отвечает за применение MAC-адресов к сетевым интерфейсам при загрузке системы.
|
|
||||||
Эта служба считывает MAC-адреса из файлов, расположенных в каталоге /mnt/data/etc/vestasync/macs/, если они есть, и присваивает их соответствующим интерфейсам, таким как eth0, eth1, wlan0 и т. д. Это используется, если на контроллер был восстанновлен созданный бекап, чтобы сохранять MAC-адреса старого контроллера, и соотвественно, адрес, выданный DHCP.
|
|
||||||
Для изменения MAC-адресов на изначальные надо просто удалить все файлы и перезагрузиться:
|
Для изменения MAC-адресов на изначальные надо просто удалить все файлы и перезагрузиться:
|
||||||
```
|
```
|
||||||
rm -rf /mnt/data/etc/vestasync/macs/*
|
rm -rf /mnt/data/etc/vestasync/macs/*
|
||||||
@ -19,11 +74,9 @@ reboot
|
|||||||
Обратно запустить: ```systemctl start apply_macs.service```
|
Обратно запустить: ```systemctl start apply_macs.service```
|
||||||
Узнать статус: ```systemctl status apply_macs.service```
|
Узнать статус: ```systemctl status apply_macs.service```
|
||||||
|
|
||||||
## Автоматическое версионирование и деплой конфигов (pushgit)
|
### Автоматическое версионирование и деплой конфигов (pushgit)
|
||||||
|
Служба pushgit работает в паре с таймером pushgit.timer. Они обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере ежедневно.
|
||||||
Служба pushgit, работает в паре с таймером pushgit.timer.
|
Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении.
|
||||||
Они обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере ежедневно.
|
|
||||||
Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении.
|
|
||||||
Чтобы отключить сохранение, надо остановить службу: ```systemctl stop pushgit.timer```
|
Чтобы отключить сохранение, надо остановить службу: ```systemctl stop pushgit.timer```
|
||||||
Запуск и проверка статуса аналогично предыдущей:
|
Запуск и проверка статуса аналогично предыдущей:
|
||||||
Запустить: ``` systemctl start pushgit.timer```
|
Запустить: ``` systemctl start pushgit.timer```
|
||||||
|
Loading…
Reference in New Issue
Block a user