update readme

This commit is contained in:
vvzvlad 2023-04-17 23:09:51 +07:00
parent 6d4f1b931b
commit 108c37cb5d
2 changed files with 11 additions and 6 deletions

View File

@ -3,6 +3,9 @@
VestaSync - это ПО для бекапа и восстановления контроллеров Wirenboard. Оно решает две задачи: VestaSync - это ПО для бекапа и восстановления контроллеров Wirenboard. Оно решает две задачи:
1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) и по изменению файлов. 1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) и по изменению файлов.
![Пример версионности конфигурации](miscellaneous/versions.jpeg)
2. Восстановление бекапа одной командой: после подключения нового контроллера достаточно ввести его IP и имя хоста предыдущего контроллера, чтобы Vestasync автоматически восстановила бекап вплоть до MAC-адресов сетевых интерфейсов, чтобы не было нужды менять настройки на DHCP-сервере. После перезагрузки контроллер вернется в сеть с IP старого контроллера. 2. Восстановление бекапа одной командой: после подключения нового контроллера достаточно ввести его IP и имя хоста предыдущего контроллера, чтобы Vestasync автоматически восстановила бекап вплоть до MAC-адресов сетевых интерфейсов, чтобы не было нужды менять настройки на DHCP-сервере. После перезагрузки контроллер вернется в сеть с IP старого контроллера.
VestaSync — это набор скриптов, которые выполняют следующие функции: VestaSync — это набор скриптов, которые выполняют следующие функции:
@ -10,7 +13,7 @@ VestaSync — это набор скриптов, которые выполня
1. При первоначальной установке на контроллер: 1. При первоначальной установке на контроллер:
- Создают в /mnt/data/etc/ git-репозитарий - Создают в /mnt/data/etc/ git-репозитарий
- Сохраняют текущие MAC-адреса в /mnt/data/etc/vestasync/macs/[interface] - Сохраняют текущие MAC-адреса в /mnt/data/etc/vestasync/macs/eth0(1...)
- Сохраняют hostname в /mnt/data/etc/vestasync/hostname - Сохраняют hostname в /mnt/data/etc/vestasync/hostname
2. При изменении конфигурационных файлов 2. При изменении конфигурационных файлов
@ -24,6 +27,8 @@ VestaSync — это набор скриптов, которые выполня
- Восстанавливают конфиги, hostname и mac-адрес - Восстанавливают конфиги, hostname и mac-адрес
## Установка VestaSync на локальную машину или запуск докер-контейнера ## Установка VestaSync на локальную машину или запуск докер-контейнера
**Эти команды выполняются не на контроллере**, а на локальной машине или на сервере, с которых есть доступ к контроллеру. Система изначально писалась для инсталляций с множеством контроллеров, поэтому она работает по модели ansible — при запуска на локальной машине сама заходит на пустой контроллер и настраивает его. **Эти команды выполняются не на контроллере**, а на локальной машине или на сервере, с которых есть доступ к контроллеру. Система изначально писалась для инсталляций с множеством контроллеров, поэтому она работает по модели ansible — при запуска на локальной машине сама заходит на пустой контроллер и настраивает его.
@ -78,7 +83,8 @@ docker run -it --name vestasync vvzvlad/vestasync:latest \
```--gitea_address``` адрес Gitea-сервера в виде "http://192.168.1.101:3001/", куда будет загружаться бекапы конфигов ```--gitea_address``` адрес Gitea-сервера в виде "http://192.168.1.101:3001/", куда будет загружаться бекапы конфигов
```--device_new_name``` имя контроллера, из которого вместе с SN будет сформировано название контроллера, которое запишется в хостнейм и будет служить именем репозитария с конфигами ```--device_new_name``` имя контроллера, из которого вместе с SN будет сформировано название контроллера, которое запишется в хостнейм и будет служить именем репозитария с конфигами
```--gitea_token``` токен для авторизации на Gitea-сервере (получается в интерфейсе Gitea) ```--gitea_token``` токен для авторизации на Gitea-сервере (получается в интерфейсе Gitea)
```--user_cmd``` файл sh с командами, которые надо выполняить на контроллере для его настройки под ваши задачи (указывать необязательно). В нем можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее. Пример файла — ```files/user_cmd.sh```: ```--user_cmd``` файл sh с командами, которые надо выполняить на контроллере для его настройки под ваши задачи (указывать необязательно). В нем можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее.
Пример файла — ```files/user_cmd.sh```:
``` ```
#!/usr/bin/env sh #!/usr/bin/env sh
@ -133,7 +139,7 @@ reboot
### Автоматическое версионирование и деплой конфигов (pushgit) ### Автоматическое версионирование и деплой конфигов (pushgit)
Службы pushgit (и таймер pushgit.timer) и pushgit_inotify обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере. Службы ```pushgit``` (и таймер ```pushgit.timer```) и ```pushgit_inotify``` обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере.
Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении. Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении.
Данные сохраняются при каждом сохранении файлов или каждый день, если отключен или не сработал мониторинг сохранения. Данные сохраняются при каждом сохранении файлов или каждый день, если отключен или не сработал мониторинг сохранения.
Чтобы отключить сохранение каждый день, надо остановить службу: ```systemctl stop pushgit.timer```. Запустить обратно — ```systemctl start pushgit.timer```. Чтобы отключить сохранение каждый день, надо остановить службу: ```systemctl stop pushgit.timer```. Запустить обратно — ```systemctl start pushgit.timer```.
@ -184,7 +190,6 @@ for DEVICE_INFO in "${DEVICES[@]}"; do
echo "Run on $IP/$DEVICE_NAME" echo "Run on $IP/$DEVICE_NAME"
./vestasync.py --cmd install --device_ip "$IP" --gitea_address "$GITEA_ADDRESS" --device_new_name "$DEVICE_NAME" --gitea_token "$GITEA_TOKEN" ./vestasync.py --cmd install --device_ip "$IP" --gitea_address "$GITEA_ADDRESS" --device_new_name "$DEVICE_NAME" --gitea_token "$GITEA_TOKEN"
done done
``` ```
### Gitea ### Gitea
@ -237,4 +242,4 @@ services:
- /root/gitea/pg-data:/var/lib/postgresql/data - /root/gitea/pg-data:/var/lib/postgresql/data
``` ```
После запуска контейнера, надо перейти в веб-панель Gitea, создать там пользователя "vestasync", после чего получить в его настройках токен доступа, установив все галочки. В дальнейшем этот токен указывается в ```gitea_token``` После запуска контейнера, надо перейти в веб-панель Gitea, создать там пользователя "vestasync", после чего получить в его настройках токен доступа, установив все галочки. В дальнейшем этот токен указывается в ```gitea_token```.

BIN
miscellaneous/versions.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB