Эта статья описывает установку с использованием Docker Swarm с доступом в интернет. О возможности установить ELMA Cortex офлайн читайте в статьях об установке в закрытом контуре.
Перед установкой:
- Проверьте, что сервер, на котором выполняется установка, инициализирован как менеджер кластера Docker Swarm. Для этого при создании кластера выполняется команда docker swarm init.
- Убедитесь, что вы загрузили установочные файлы и настроили переменные окружения.
Обратите внимание, для работы MongoDB в режиме репликации требуется ключ аутентификации. Он создаётся автоматически в процессе установки и используется для внутренней аутентификации узлов базы данных.
Установка ELMA Cortex
Для установки ELMA Cortex с использованием Docker Swarm:
- Запустите скрипт установки:
chmod +x install.sh
./install.sh
Если вы используете несколько копий ELMA Cortex, и нужно указать название проекта:
./install.sh --project-name my-cortex
- После выполнения скрипта install.sh некоторым сервисам может потребоваться несколько минут для полного запуска. Чтобы проверить готовность сервисов, выполните команду:
docker service logs -f elma-cortex_gamma-apps
- Дождитесь в логах появления сообщения “Application startup complete”.
Создание ключа для MongoDB
При установке ELMA Cortex в скрипте install.sh автоматически генерируется файл ключа аутентификации, который используется для репликации MongoDB, с нужными правами доступа. Он передаётся в Docker Swarm через секрет mongodb-keyfile.
Если нужно создать новый ключ вручную, выполните команды:
openssl rand -base64 756 > mongo.keyfile
sudo chmod 400 mongo.keyfile
docker secret create mongo_keyfile mongo.keyfile
Экспорт корневого сертификата Caddy
Если в качестве режима управления TLS‑сертификатами вы выбрали Internal, экспортируйте корневой сертификат Caddy, чтобы добавить его в список доверенных:
docker exec $(docker ps -q -f name=elma-cortex_caddy) cat /data/caddy/pki/authorities/local/root.crt > caddy_root.crt
Если выполнение команды не удаётся, используйте другой способ:
docker ps -f name=elma-cortex_caddy # returns <CONTAINER_ID>
docker cp <CONTAINER_ID>:/data/caddy/pki/authorities/local/root.crt ./caddy_root.crt
Обновление ELMA Cortex
При выпуске новой версии ELMA Cortex необходимо скачать архив с обновлёнными установочными файлами и перенести вашу конфигурацию, настроенную в файле переменных окружения. Рассмотрим шаги обновления при использовании Docker Swarm.
Шаг 1. Сохранить текущую конфигурацию
Перед обновлением создайте копию текущего файла .env:
cp ~/elma-cortex/docker-swarm/.env ~/elma-cortex-env-backup.env
Шаг 2. Скачать установочные файлы
Скачайте новую версию архива с установочными файлами и распакуйте его. Существующие файлы заменятся на новые.
Для этого выполните команды:
cd ~
curl -fsSO https://dl.elma365.com/extensions/elma-cortex/latest/elma-cortex-onpremises.zip
unzip -o -d ./elma-cortex elma-cortex-onpremises.zip
Использование флага -o позволяет заменить существующие файлы без запроса подтверждения.
Шаг 3. Перенести конфигурацию
- Сравните сохранённую копию с новым файлом .env, чтобы выявить настройки, добавленные в последней версии. Для этого используйте команду:
diff ~/elma-cortex-env-backup.env ~/elma-cortex/docker-swarm/.env
- Перенесите настройки из своей конфигурации, выполнив команды:
- чтобы заменить новый файл .env резервной копией и добавить новые настройки из последней версии вручную:
cp ~/elma-cortex-env-backup.env ~/elma-cortex/docker-swarm/.env
- чтобы отредактировать новый файл .env и перенести изменённые значения из резервной копии:
nano ~/elma-cortex/docker-swarm/.env
Шаг 4. Применить обновление
Перейдите в папку с установочными файлами и запустите скрипт установки:
cd ~/elma-cortex/docker-swarm
./install.sh
Скрипт загрузит новые Docker-образы и перезапустит сервисы с обновлённой версией.
Удаление ELMA Cortex
При установке ELMA Cortex в Docker Swarm создаётся стек — экземпляр установки. Вы можете удалить его, а также все данные.
Удаление стека с сохранением данных
Чтобы удалить все сервисы ELMA Cortex из кластера Docker Swarm без очистки данных, используйте команды:
chmod +x uninstall.sh
./uninstall.sh
Если вы используете несколько копий ELMA Cortex, и нужно указать название проекта:
./uninstall.sh --project-name my-cortex
Кроме того, можно удалить стек из Docker Swarm без использования скрипта:
docker stack rm elma-cortex
Удаление стека и данных
Чтобы безвозвратно удалить ELMA Cortex и все его данные:
- Удалите стек с помощью команды:
./uninstall.sh
Если вы задавали пользовательское название проекта, укажите его для скрипта удаления:
./uninstall.sh --project-name my-cortex
- Дождитесь остановки всех сервисов.
- Удалите тома с данными:
docker volume rm $(docker volume ls -q -f name=elma-cortex)
При этом также удалятся данные внутреннего центра сертификации Caddy. Если вы используете режим управления TLS‑сертификатами Internal, после переустановки нужно повторно экспортировать корневой сертификат Caddy и добавить его в доверенные.