From e3eab8d4cdf06fbb273d235619a1605c82cf60a3 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sun, 16 Apr 2023 23:15:13 +0700 Subject: [PATCH] update readme --- README.md | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4910e5d..af27948 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Vestasync - это ПО для бекапа и восстановления контроллеров Wirenboard. Оно решает две задачи: -1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) +1. Создание бекапа конфигурации автоматически и деплой ее на удаленный git-сервер (поддерживается Gitea, для поддержки других сервисов необходимо дописать соответствующую функцию создания репозитория) по расписанию (раз в день) и по изменению файлов. 2. Восстановление бекапа одной командой: после подключения нового контроллера достаточно ввести его IP и имя хоста предыдущего контроллера, чтобы Vestasync автоматически восстановила бекап вплоть до MAC-адресов сетевых интерфейсов, чтобы не было нужды менять настройки на DHCP-сервере. После перезагрузки контроллер вернется в сеть с IP старого контроллера. ## Установка @@ -18,7 +18,6 @@ pip install -r requirements.txt ``` - ## Команды У Vestasync есть всего две команды: `install`, и `restore`. @@ -45,9 +44,6 @@ pip install -r requirements.txt ```--device_new_name```: имя контроллера, из которого вместе с SN будет сформировано название контроллера, которое запишется в хостнейм и будет служить именем репозитария с конфигами ```--gitea_token```: токен для авторизации на Gitea-сервере (получается в интерфейсе) -#### Пользовательские команды - -В папке системы лежит файл "user_cmd.sh", внутри которого можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее. Если вы не хотите ничего устанавливать, оставьте его пустым. ### restore @@ -59,7 +55,7 @@ pip install -r requirements.txt ```bash ./vestasync.py --cmd restore ---device_ip 192.168.98.85 +--device_ip 192.168.1.85 --gitea_address http://192.168.1.101:3001/ --gitea_token de8a2eaee0d2f27746157c2fd563815f932d671c` --source_hostname WB2-A3TBJXLS @@ -67,7 +63,7 @@ pip install -r requirements.txt Используются те же аргументы, что и в ```install```, но дополнительно еще нужен аругмент ```source_hostname```, который определяет имя контроллера, с которого выполняется бекап. ```device_new_name``` не используетс, в качестве имени будет взято имя старого контроллера. - +**Обратите внимание, что после восстановления бекапа на новом контроллере старый контроллер не должен включаться в сеть, иначе произойдет конфликт адресов.** ## Службы @@ -98,8 +94,41 @@ reboot Для принудительной загрузки конфигов надо выполнить в консоли контроллера ```systemctl start pushgit.service``` +## Разное + +### Пользовательские команды + +В папке системы лежит файл "user_cmd.sh", внутри которого можно описать любые команды, которыми вам надо конфигурировать контроллер: например, установка ключа SSH, установка таймзоны и локали, и так далее. Если вы не хотите ничего устанавливать, оставьте его пустым. + +### Множественный запуск + +Если вам надо запустить скрипт сразу на множестве контроллеров, это можно сделать так: + +```bash +#!/bin/bash + +# Создайте массив с парами IP-адреса и имени устройства +DEVICES=( + "192.168.1.1 WB1" + "192.168.1.2 WB2" + "192.168.1.3 WB3" + "192.168.1.4 WB4" +) + +GITEA_ADDRESS="http://192.168.1.101:3001/" +GITEA_TOKEN="de8a2eaee0d2f27746157c2fd563815f932d671c" + +for DEVICE_INFO in "${DEVICES[@]}"; do + IP=$(echo "$DEVICE_INFO" | cut -d ' ' -f1) + DEVICE_NAME=$(echo "$DEVICE_INFO" | cut -d ' ' -f2) + + 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 +### Gitea В качестве git-сервера используется gitea. Предполагается, что она работает локально, но можно использовать и публичные инсталляции. Устанавливать ее можно любым удобным способом, например с помощью такого docker-compose: