Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

4. Записать в список задачи для запуска - /opt/wimark/checker.sh

Блок кода
linenumberstrue
* * * * * bash /opt/wimark/checker.sh
* * * * * sleep 10 && bash /opt/wimark/checker.sh
* * * * * sleep 20 && bash /opt/wimark/checker.sh
* * * * * sleep 30 && bash /opt/wimark/checker.sh
* * * * * sleep 40 && bash /opt/wimark/checker.sh
* * * * * sleep 50 && bash /opt/wimark/checker.sh

5. Сохранить изменения и проверить:

...

6. Перезапустить keepalived:

Примечание

ВАЖНО! Это необходимо выполнить на двух машинах!

При первом запуске контейнеры на MASTER машине не будут корректно работать до тех пор, пока не запустятся контейнеры на BACKUP машине.


Блок кода
service keepalived restart

...

Блок кода
docker exec -it  $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') mongodump --db=test --gzip --archive=/tmp/backup_wimark.gz


Предупреждение

Failed: error creating intents to dump: error getting collections for database test: (NotPrimaryOrSecondary) node is not in primary or recovering state

БД должна быть PRIMARY, данное состояние может не совпадать с MASTER/BACKUP самой машины.
Поэтому при получении данной ошибки, следует повторить этот шаг на другой машине.


Информация
Если имя контейнера с MongoDB отличается от того, что указано в команде, то можно использовать docker ps для поиска нужного контейнера.

2. Создать папку для резервной копии:

...

Блок кода
cp -r /opt/wimark/static /opt/wimark_backup/static


Информация
Если версия Wimark One ниже 1.10, то файлы будут находится каталоге /usr/share/wimark/static

Создание частичной резервной копии

...

Блок кода
linenumberstrue
docker exec -it $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') bash
mongodump --db=test --excludeCollection=bss_stat_info \
 --excludeCollection=client_stat_info --excludeCollection=client_stats \
 --excludeCollection=cpe_stat_info --excludeCollection=stats \
 --excludeCollection=wlan_stat_info --gzip --archive=/tmp/backup_wimark.gz; exit


Предупреждение

Failed: error creating intents to dump: error getting collections for database test: (NotPrimaryOrSecondary) node is not in primary or recovering state

БД должна быть PRIMARY, данное состояние может не совпадать с MASTER/BACKUP самой машины.
Поэтому при получении данной ошибки, следует повторить этот шаг на другой машине

...

.


2. Копировать архив с резервной копией БД из контейнера в систему:

...

Блок кода
sudo su
rm -r /opt/wimark; docker rm -f $(docker ps -qaf "name=one-|master|backup|one_")


Информация
Если версия Wimark One ниже 1.10, то файлы будут находится в каталоге /etc/wimark

Если на сервере в docker используется только Wimark One, то можно дополнительно выполнить эту команду:

Блок кода
docker system prune --all --volumes


Примечание
Данная команда удалит все остановленные контейнеры, “висящие” (неиспользуемые) Docker-образы, неиспользуемые сети и тома. Поэтому следует использовать данную команду только в том случае, если в Docker устанавливалось только ПО Wimark One.

3. Скачать новую версию ПО на сервер и запустить установку:

...

Блок кода
cp /opt/wimark_backup/set_state.sh /opt/wimark/set_state.sh
cp /opt/wimark_backup/checker.sh /opt/wimark/checker.sh



Информация

/tmp/ - каталог в котором хранятся временные файлы. Файлы удаляются спустя определенное время и после перезагрузки сервера.

{IP-1/2} - адрес машины.

{VIP} - виртуальный IP используемый сервисом keepalived.

https://storage.wimark.com/api/public/dl/XZqjHaJe - пример ссылки на прошивку.

WiMark-ha-1.11.0-2023-10-30-qtech-installer.run - пример имени файла, может отличаться в зависимости от сборки и версии ПО.


6. Запускаем сервис cron:

...

Блок кода
docker exec -it $(docker ps | grep 'one-mongo-1\|one-mongo-ha-1' | \
 awk '{ print $1;}') mongorestore --port 30001 --drop --nsInclude='test.*' \
 --gzip --archive=/tmp/backup_wimark.gz



Примечание

--drop - перезаписывает текущие данные в БД.

В зависимости от размеров коллекций и технических характеристик машины, этот процесс может занять от нескольких минут до нескольких часов!


5. Удалить новые и перенести старые файлы static:

...