Стандартная установка
...
Linux
Миграция Пассворка

Старый Docker миграция на новый

12min

Данная инструкция предназначена для одиночной установки Пассворка и не подходит для отказоустойчивого решения.

Подготовка

Проверка версии Пассворка

  1. Проверить установленную версию Пассворка — cat /server/sites/prod/app/config/config.php | grep version. Если версия:
    1. Ниже чем 0602xx — необходимо выполнить обновление до актуальной версии.
    2. Ниже чем 06xxxx — необходимо выполнить миграцию на Пассворк 6.

Создание резервной копии MongoDB

  1. Перейти в каталог Пассворка и создать директорию для файлов — cd /server/docker-compose/ && mkdir old_docker
  2. Создать резервную копию MongoDB:
    1. Локальная установка (MongoDB) без авторизации — docker-compose exec -T db sh -c 'mongodump --archive' > "./old_docker/my.dump"
    2. Локальная установка (MongoDB) с авторизацией — docker-compose exec -T db sh -c 'mongodump --archive --authenticationDatabase admin --username=your-admin --password=your-password' > "./old_docker/my.dump"
    3. Установка (MongoDB) на отдельном сервере — docker-compose exec -T db sh -c 'mongodump --host your-host:your-port --archive --authenticationDatabase admin --username=your-admin --password=your-password' > "./old_docker/my.dump"

Копирование файла config.ini и лицензионного ключа

  1. Создать копию файла конфигурации config.inicp /server/sites/prod/app/config/config.ini ./old_docker/
  2. Создать копию лицензионного ключа passwork-*.keyscp /server/sites/prod/app/keys/*.keys ./old_docker/

Копирование сертификата

Если установка в Docker будет использовать тоже доменное имя и SSL сертификат, что и предыдущая установка Пассворка. Необходимо скопировать SSL сертификаты если настроено HTTPS соединение — cp -Rf /server/conf/ssl/ ./old_docker/

Установка

Установка основных компонентов

  1. Установить Docker и Docker Compose
  2. Создать и перейти в директорию, где планируется развёртывание новой Docker сборки Пассворка.
  3. Остановить старый (используемый) контейнер nginx с помощью команды — docker stop nginx && docker rm nginx

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

  1. Скачать скрипт установки — wget https://repos.passwork.ru/repository/passwork_docker/passwork_compose_install.sh
  2. Скачать скрипт миграции — wget https://repos.passwork.ru/repository/passwork_docker/migrate.sh
  3. Назначить права на исполнение — chmod +x ./*.sh

Перенос файлов из этапа «Подготовки»

  1. Перенести созданную директорию ./old_docker в каталог, где планируется развёртывание новой Docker сборки
  2. В директории должны находиться следующие файлы:
    1. Конфигурационный файл — config.ini
    2. Лицензионный ключ — passwork-*.keys
    3. Резервная копия MongoDB
    4. SSL сертификаты веб-сайта Пассворка

Запуск процесса миграции

  1. Запустить скрипт с флагом -mdsudo ./passwork_compose_install.sh -md
  2. Скрипт установки выполнит базовую установку последней версии Пассворка, доступной в вашей лицензии и автоматически запустит скрипт миграции.

Дополнительные настройки после установки

  1. После завершения работы скриптов, проверьте работоспособность новой установки и выполните донастройку если это необходимо
  2. Для добавления корневых сертификатов почтового сервера или LDAPS протокола в доверенные, необходимо скопировать корневые сертификаты .pem или .crt в директорию ./conf/custom_ca и перезапустить контейнер PHP — docker compose restart passwork_php
  3. Для изменения используемого сертификата SSL, необходимо скопировать сертификат\цепочку сертификатов в ./conf/ssl/fullchain.pem и приватный ключ в ./conf/ssl/privkey.pem и перезапустить контейнер Nginx — docker compose restart passwork_nginx

Возможные проблемы и их решения

Проблема. Ошибка прав на ту или иную базу при попытке создать полную резервную копию:

shell


Решение. Войти в оболочку управления MongoDB под текущим администратором и добавить ему роль:

shell