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