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

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

Для обновления Платформы в эксплуатационной среде требуется провести подготовку.

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

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

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

Убедитесь, что серверы с ролями Сервер Приложений и Сервер БД имеют записи в 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

В дистрибутиве в директории /opt/platform/files/ находятся файлы:

  • external-root.crt: цепочка сертификатов, включающая в себя все промежуточные УЦ и корневой УЦ для внешнего домена, используется для ссылок https://test.pmd.local.
  • internal-root.crt: цепочка сертификатов, включающая в себя все промежуточные УЦ и корневой УЦ для внутреннего домена, используется для внутреннего межсервисного взаимодействия.
предупреждение

В составе дистрибутива эти файлы относятся к серверу только в домене pmd.local.
Если сервер с ролью Сервер Приложений находится в другом домене, то содержимое этих файлов требуется заменить.
Домен для внутреннего межсервисного взаимодействия может не совпадать с доменом сервера приложений.

Выполните команды, при помощи которых операционная система будет доверять сертификатам:

cp /opt/platform/files/external-root.crt /usr/local/share/ca-certificates/platformmd-external-root.crt
cp /opt/platform/files/internal-root.crt /usr/local/share/ca-certificates/platformmd-internal-root.crt
update-ca-certificates

Выполните скрипт подготовки 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 руководствуйтесь комментариями в этом же файле.

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

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

Запустите установку Платформы

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

где:

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

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

Дополнительные действия при обновлении Платформы версии 4.0 на версию 4.1

После завершения обновления Платформы версии 4.0 на версию 4.1 или выше можно удалить информацию о неактуальных сервисах и контейнерах.

Удаление неактуальных для Платформы версии 4.1 сервисов

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

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

Удаление неактуальных контейнеров для Платформы версии 4.1

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

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

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

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

    sudo -i
  • Остановите и удалите неактуальные для Платформы версии 4.1 контейнеры командами:

    docker stop globalconfigservice && docker rm globalconfigservice
    docker stop nginxproductfront && docker rm nginxproductfront
    docker stop storagemonitoringservice && docker rm storagemonitoringservice