From 332a61ceb20e28f62b013d714587a0a493cfd759 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Sun, 16 Apr 2023 17:14:42 +0700 Subject: [PATCH] update readme --- README.md | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index be443a2..9a0ede9 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Vestasync - это ПО для бекапа и восстановления ко ## Установка +**Эти команды выполняются не на контроллере**, а на локальной машине или на сервере, с которых есть доступ к контроллеру. Система изначально писалась для инсталляций с множеством контроллеров, поэтому она сама заходит на пустой контроллер и настраивает его (так работает, например, ansible). Для настройки десяти контроллеров надо просто запустить 10 команд с разными ```device_ip```. + ```bash git clone https://github.com/vvzvlad/vestasync cd vestasync @@ -15,15 +17,18 @@ source .venv/bin/activate pip install -r requirements.txt ``` + + ## Команды -Vestasync поддерживает три команды: `install`, `update` и `restore`. +У Vestasync есть всего две команды: `install`, и `restore`. ### install Команда `install` выполняет подготовительные действия — устанавливает ПО, создает гит-репозитарий, устанавливает службы (подробнее в разделе "Службы"). +Эту команду надо выполнять, указывая в ```device_ip``` исходный контроллер (который будет стоять в проде инсталляции) перед началом эксплуатации (если выполнять ее еще до настройки, то бонусом получим сохранение конфигов в гите во время ПНР). Эта команда выполняется на контроллере один раз. -Пример запуска: +Пример запуска (запускается на локальной машине, адрес контроллера указывается в ```device_ip```): ```bash ./vestasync.py @@ -31,7 +36,7 @@ Vestasync поддерживает три команды: `install`, `update` и --device_ip 192.168.1.85 --gitea_address http://192.168.1.101:3001/ --device_new_name WB2 ---gitea_token de8a2eaee0d2f27746157c2fd563815f932d670c` +--gitea_token de8a2eaee0d2f27746157c2fd563815f932d671c` ``` ```--cmd install```: означает, что надо установить Vestasync на контроллер и подготовить его к созданию бекапа @@ -42,16 +47,17 @@ Vestasync поддерживает три команды: `install`, `update` и ### restore -Команда `restore` выполняет восстановление существующего бекапа на контроллере. +Команда `restore` выполняет восстановление существующего бекапа на контроллере. +Эту команду надо выполнять на подменном контроллере из ЗИП-а в случае замены основного контроллера подменным. Эта команда выполянется один раз, после чего контроллер становится копией старого контроллера и продолжает сохранять свои изменения в конфигах в тот же репозитарий. -Пример запуска: +Пример запуска (запускается на локальной машине, адрес контроллера указывается в ```device_ip```): ```bash ./vestasync.py --cmd restore --device_ip 192.168.98.85 --gitea_address http://192.168.1.101:3001/ ---gitea_token de8a2eaee0d2f27746157c2fd563815f932d670c` +--gitea_token de8a2eaee0d2f27746157c2fd563815f932d671c` --source_hostname WB2-A3TBJXLS ``` @@ -60,33 +66,40 @@ Vestasync поддерживает три команды: `install`, `update` и ## Службы + Службы, которые будут запущенны на контроллере при установке: ### Восстановление 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/* reboot ``` + Или, если надо сделать это временно, остановить службу: ```systemctl stop apply_macs.service``` Обратно запустить: ```systemctl start apply_macs.service``` Узнать статус: ```systemctl status apply_macs.service``` ### Автоматическое версионирование и деплой конфигов (pushgit) + Служба pushgit работает в паре с таймером pushgit.timer. Они обеспечивают автоматическое сохранение конфигов в репозиторий Git на удаленном сервере ежедневно. -Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении. +Это позволяет сохранять изменения в файлах и версионировать их, что упрощает управление конфигурационными файлами и предотвращает потерю данных при их случайном изменении или удалении. Чтобы отключить сохранение, надо остановить службу: ```systemctl stop pushgit.timer``` Запуск и проверка статуса аналогично предыдущей: Запустить: ```systemctl start pushgit.timer``` Узнать статус: ```systemctl status pushgit.timer``` -Для принудительной загрузки конфигов надо выполнить в консоли контроллера ```/usr/local/bin/pushgit.sh``` +Для принудительной загрузки конфигов надо выполнить в консоли контроллера ```systemctl start pushgit.service``` ## Gitea + В качестве git-сервера используется gitea. Предполагается, что она работает локально, но можно использовать и публичные инсталляции. Устанавливать ее можно любым удобным способом, например с помощью такого docker-compose: + ``` version: "3" @@ -132,3 +145,5 @@ services: volumes: - /root/gitea/pg-data:/var/lib/postgresql/data ``` + +После запуска контейнера, надо перейти в веб-панель Gitea, создать там пользователя Vestasync, после чего получить в его настройках токен доступа, установив все галочки. В дальнейшем этот токен указывается в ```gitea_token```