...
4. Записать в список задачи для запуска - /opt/wimark/checker.sh
Блок кода | ||
---|---|---|
| ||
* * * * * 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 |
Создание частичной резервной копии
...
Блок кода | ||
---|---|---|
| ||
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:
...