mirror of
https://github.com/vvzvlad/vestasync.git
synced 2024-11-04 22:49:10 +03:00
update readme
This commit is contained in:
parent
6d4f1b931b
commit
108c37cb5d
17
README.md
17
README.md
@ -3,6 +3,9 @@
|
||||
VestaSync - это ПО для бекапа и восстановления контроллеров Wirenboard. Оно решает две задачи:
|
||||
|
||||
1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) и по изменению файлов.
|
||||
|
||||
![Пример версионности конфигурации](miscellaneous/versions.jpeg)
|
||||
|
||||
2. Восстановление бекапа одной командой: после подключения нового контроллера достаточно ввести его IP и имя хоста предыдущего контроллера, чтобы Vestasync автоматически восстановила бекап вплоть до MAC-адресов сетевых интерфейсов, чтобы не было нужды менять настройки на DHCP-сервере. После перезагрузки контроллер вернется в сеть с IP старого контроллера.
|
||||
|
||||
VestaSync — это набор скриптов, которые выполняют следующие функции:
|
||||
@ -10,7 +13,7 @@ VestaSync — это набор скриптов, которые выполня
|
||||
1. При первоначальной установке на контроллер:
|
||||
|
||||
- Создают в /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
|
||||
|
||||
2. При изменении конфигурационных файлов
|
||||
@ -24,6 +27,8 @@ VestaSync — это набор скриптов, которые выполня
|
||||
- Восстанавливают конфиги, hostname и mac-адрес
|
||||
|
||||
|
||||
|
||||
|
||||
## Установка VestaSync на локальную машину или запуск докер-контейнера
|
||||
|
||||
**Эти команды выполняются не на контроллере**, а на локальной машине или на сервере, с которых есть доступ к контроллеру. Система изначально писалась для инсталляций с множеством контроллеров, поэтому она работает по модели ansible — при запуска на локальной машине сама заходит на пустой контроллер и настраивает его.
|
||||
@ -75,10 +80,11 @@ docker run -it --name vestasync vvzvlad/vestasync:latest \
|
||||
|
||||
```--cmd install``` означает, что надо установить Vestasync на контроллер и подготовить его к созданию бекапа
|
||||
```--device_ip``` IP-адрес контроллера
|
||||
```--gitea_address``` адрес Gitea-сервера в виде "http://192.168.1.101:3001/", куда будет загружаться бекапы конфигов
|
||||
```--gitea_address``` адрес Gitea-сервера в виде "http://192.168.1.101:3001/", куда будет загружаться бекапы конфигов
|
||||
```--device_new_name``` имя контроллера, из которого вместе с SN будет сформировано название контроллера, которое запишется в хостнейм и будет служить именем репозитария с конфигами
|
||||
```--gitea_token``` токен для авторизации на Gitea-сервере (получается в интерфейсе Gitea)
|
||||
```--user_cmd``` файл sh с командами, которые надо выполняить на контроллере для его настройки под ваши задачи (указывать необязательно). В нем можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее. Пример файла — ```files/user_cmd.sh```:
|
||||
```--user_cmd``` файл sh с командами, которые надо выполняить на контроллере для его настройки под ваши задачи (указывать необязательно). В нем можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее.
|
||||
Пример файла — ```files/user_cmd.sh```:
|
||||
|
||||
```
|
||||
#!/usr/bin/env sh
|
||||
@ -133,7 +139,7 @@ reboot
|
||||
|
||||
### Автоматическое версионирование и деплой конфигов (pushgit)
|
||||
|
||||
Службы pushgit (и таймер pushgit.timer) и pushgit_inotify обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере.
|
||||
Службы ```pushgit``` (и таймер ```pushgit.timer```) и ```pushgit_inotify``` обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере.
|
||||
Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении.
|
||||
Данные сохраняются при каждом сохранении файлов или каждый день, если отключен или не сработал мониторинг сохранения.
|
||||
Чтобы отключить сохранение каждый день, надо остановить службу: ```systemctl stop pushgit.timer```. Запустить обратно — ```systemctl start pushgit.timer```.
|
||||
@ -184,7 +190,6 @@ for DEVICE_INFO in "${DEVICES[@]}"; do
|
||||
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"
|
||||
done
|
||||
|
||||
```
|
||||
|
||||
### Gitea
|
||||
@ -237,4 +242,4 @@ services:
|
||||
- /root/gitea/pg-data:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
После запуска контейнера, надо перейти в веб-панель Gitea, создать там пользователя "vestasync", после чего получить в его настройках токен доступа, установив все галочки. В дальнейшем этот токен указывается в ```gitea_token```
|
||||
После запуска контейнера, надо перейти в веб-панель Gitea, создать там пользователя "vestasync", после чего получить в его настройках токен доступа, установив все галочки. В дальнейшем этот токен указывается в ```gitea_token```.
|
||||
|
BIN
miscellaneous/versions.jpeg
Normal file
BIN
miscellaneous/versions.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
Loading…
Reference in New Issue
Block a user