Перейти к основному содержимому

Обновление Атомкод в эксплуатационной среде

Чтобы обновить Атомкод в эксплуатационной среде требуется провести подготовку.

Подготовка к обновлению Атомкод

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

Убедитесь, что серверы отвечают минимальным системным требованиям, указанным в разделе Аппаратные и программные требования.

Убедитесь, что серверы с ролями Сервер Приложений и Сервер БД имеют записи в DNS-сервере, и что на всех серверах стенда, а также на компьютерах пользователей стенда, используется именно этот DNS-сервер.

При помощи программы для передачи файлов по ssh (например, WinSCP) переместите архив с дистрибутивом Атомкод в директорию /opt на серверы с ролями Сервер БД, Сервер Приложений и Ansible мастер.

Перейдите в консоль ssh на сервер с ролью Сервер Приложений.

Повысьте права командой

sudo -i

Перейдите в директорию /opt командой

cd /opt

Распакуйте архив с дистрибутивом

tar xzvf platformmd.*.tar.gz

Перейдите в директорию /opt/platform/scripts/ командой

cd /opt/platform/scripts/

Добавьте права на запуск файлов командой

chmod +x *.sh

Запустите скрипт, который установит portainer и загрузит docker-образы Атомкод в локальный docker-registry

./install_portainer_and_images.sh

Перейдите в консоль ssh на сервер с ролью Сервер БД.

Повысьте права командой

sudo -i

Перейдите в директорию /opt командой

cd /opt

Распакуйте архив с дистрибутивом

tar xzvf platformmd.*.tar.gz

Перейдите в директорию с docker-образами командой

cd /opt/platform/docker

Импортируйте инфраструктурные docker-образы командой

docker load --input platformmd_DBserver.tar

Перейдите в консоль ssh на сервер с ролью Ansible мастер.

Повысьте права командой

sudo -i

Перейдите в директорию /opt командой

cd /opt
предупреждение

При распоковывании дистрибутива существует возможность внесения изменений в Inventory. Если в файлах /opt/platform/installer/inventory/<Имя стенда>/group_vars/all.yml и /opt/platform/installer/inventory/<Имя стенда>/hosts.yml содержится важная информация, создайте резервную копию этих файлов.

Распакуйте архив с дистрибутивом

tar xzvf platformmd.*.tar.gz

Перейдите в директорию /opt/platform/scripts/ командой

cd /opt/platform/scripts/

Добавьте права на запуск файлов командой

chmod +x *.sh

Выполните скрипт подготовки Inventory-стенда:

к сведению

Если вы планируете использовать большие языковые модели, то предварительно разверните сервер vLLM.

./make_inventory.sh -s <имя стенда> -t <FQDN-адрес сервера Приложений> -b <имя сервера БД> -u <пароль пользователя с правами администратора postgres> -l <пароль пользователя сервисов Атомкод в postgres> -v <версия устанавливаемого релиза Атомкод> -a <ветка> -h <git-хост> -r <репозиторий>

где:

  • имя стенда: имя директории стенда в inventory, например, test.pmd.local;
  • FQDN-адрес сервера Приложений: адрес сервера (hostname) с ролью Сервер Приложений, например, test.pmd.local;
  • имя сервера БД: полное доменное имя сервера с ролью Сервер БД, например, dbserver.pmd.local;
  • пароль пользователя с правами администратора postgres: пароль для postgres-пользователя с логином postgres, который обладает правами superuser в postgres на сервере с ролью Сервер БД;
  • пароль пользователя сервисов Атомкод в postgres: пароль для postgres-пользователя с логином platform, который будет владельцем баз данных Атомкод в postgres на сервере с ролью Сервер БД;
  • версия устанавливаемого релиза Атомкод: например, 4.0.0;
  • ветка: ветка git-репозитория проектов devtools, при выборе локального git задайте значение develop;
  • git-хост: адрес сервера с git-репозиториями проектов devtools, при выборе локального git в домене по умолчанию pmd.local задайте следующее значение: http://devtoolsgit.pmd.local:80/git;
  • репозиторий: имя репозитория проектов devtools, при выборе локального git задайте значение pmd-repo.
к сведению

Если пароль пользователя сервисов Атомкод в postgres отличается от действующего пароля, то действующий пароль требуется самостоятельно изменить в СУБД Postgres.

Откройте в текстовом редакторе файл /opt/platform/installer/inventory/<Имя стенда>/group_vars/all.yml и проверьте, что значения всех параметров заданы верно, следуя комментариям в файле. Проверьте, что в файле /opt/platform/installer/inventory/<Имя стенда>/hosts.yml указаны верные имена серверов с ролями Сервер Приложений и Сервер БД.

Если необходимо сменить имя внутреннего домена Атомкод, создайте файл /opt/platform/installer/inventory/<Имя стенда>/group_vars/nginxproxy.yml с содержимым: internal_domain: <внутренний домен>, где <внутренний домен>, например, vector.local.

подсказка

Для изменения параметров установки Атомкод в файле /opt/platform/installer/group_vars/all.yml руководствуйтесь комментариями в этом же файле.

Дополнительные действия при обновлении Атомкод версии 4.x на версию 5.0

При обновлении Атомкод версии 4.x на версию 5.0 и выше необходимо удалить следующую базу данных — ragmanager_db.

Чтобы удалить базу данных ragmanager_dbвыполните следующие действия:

  • остановите контейнер ragmanager в портейнере либо в ssh-консоли на сервере Приложений командой

    docker stop ragmanager
  • Удалите базу данных ragmanager в postgres в приложении для управления базами данных, например PGAdmin или DBeaver, или в ssh-консолина сервере БД командой

    docker exec posgresqlplatform psql -U postgres -c "DROP DATABASE IF EXISTS ragmanager_db;"

Если в Атомкод используется LLM, то при обновлении Атомкод версии 4.x на версию 5.0 следует:

  • перейти на сервер с ролью Сервер Приложений;
  • создать файл /opt/docker-conts/external-certs/CA-LLM.pem;
  • поместить в этот файл корневой сертификат, которым подписаны сертификаты, использующиеся на LLM.

Развертывание при обновлении

После выполненной подготовки вы можете приступить к развертыванию обновленной Атомкод в эксплуатационной среде.

Запустите установку Атомкод

./run_ansible_playbooks_multistand.sh -s <Имя стенда> -b <Имя сервера БД> -d <Внутренний домен Атомкод>

где:

  • Имя стенда:имя стенда, например, test.pmd.local;
  • Внутренний домен Атомкод: внутренний домен Атомкод, используемый для межсервисного взаимодействия, например, pmd.local.
  • Имя сервера БД:полное доменное имя сервера с ролью Сервер БД.

Дождитесь завершения установки, это может занять 20-30 минут.

Дополнительные действия при обновлении Атомкод версии 4.2 на версию 5.0

При обновлении Атомкод версии 4.2 на версию 5.0 или выше можно удалить информацию о неактуальных сервисах и контейнерах.

Удаление неактуальных для Атомкод версии 4.2 сервисов

Чтобы удалить неактуальные сервисы выполните следующие действия:

  • перейдите в консоль администрирования Атомкод обновлённого стенда в раздел Services.
  • перейдите по очереди в следующие сервисы: cmspublisherservice, staticpublisherservice, cmsservice..
  • В каждом сервисе рядом с названием сервиса нажмите кнопку Edit Service.
  • В открывшейся форме Edit service нажмите кнопку Delete.