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

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

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

Подготовка к развертыванию

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

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

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

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

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

sudo -i
к сведению

Для корректной работы Платформы Атомкод необходимо задать значение параметра fs.inotify.max_user_instances в операционной системе не меньше, чем 524288.

Чтобы задать значение параметра, выполните команду

echo fs.inotify.max_user_instances=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Обеспечьте разрешение имени сервера с ролью Сервер Приложений на самом сервере. Для проверки корректности разрешения имени сервера воспользуйтесь командой:

ping <Имя Сервера>

где:

  • Имя Сервера: FQDN сервера с ролью Сервер Приложений, например, test.pmd.local.

В результате выполнения команды должен отображаться ip-адрес сервера с ролью Сервер Приложений.

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

cd /opt

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

tar xzvf platformmd.*.tar.gz

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

cd /opt/platform/scripts/

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

chmod +x *.sh

Запустите скрипт подготовки системы в зависимости от ОС:

  • ./prepare_system_AstraLinux.sh;
  • ./prepare_system_Ubuntu.sh;
  • ./prepare_system_Debian.sh.

Скрипт установит или обновит Docker и прочие необходимые пакеты.

Перезагрузите систему (ответьте Y, система перезагрузится).

Повысьте права после перезагрузки командой

sudo -i

Сертификаты для предварительного развертывания можно создать самостоятельно или взять из архива с дистрибутивом.

  1. Для создания сертификата воспользуйтесь Руководством по генерации самоподписанных сертификатов или Вашим удостоверяющим центром.

  2. Для использования сертификатов перейдите в директорию /opt/platform/files/ дистрибутива. Для использования своих сертификатов необходимо заменить содержимое файлов сертификатов на свои данные. В директории /opt/platform/files/ находятся описания следующих сертификатов:

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

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

Запустите скрипт, который скопирует файлы сертификатов командами:

cd /opt/platform/scripts/
./copy_certs.sh

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

./install_portainer_and_images.sh
подсказка

После выполнения скрипта переопределите при необходимости пароль для portainer, перейдя по ссылке https://test.pmd.local:9000.
Предустановленные логин и пароль: логин: admin пароль: zaq1!QAZxsw2.

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

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

sudo -i

Обеспечьте разрешение имени сервера с ролью с ролями Сервер Приложений и Сервер БД. Для проверки корректности разрешения имени сервера воспользуйтесь командой:

ping <Имя Сервера>

где:

  • Имя Сервера: FQDN сервера с ролью Сервер Приложений, например, test.pmd.local.

В результате выполнения команды должен отображаться ip-адрес сервера с ролью Сервер Приложений.

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

cd /opt

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

tar xzvf platformmd.*.tar.gz

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

cd /opt/platform/scripts/

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

chmod +x *.sh

Запустите скрипт подготовки системы в зависимости от ОС:

  • ./prepare_system_AstraLinux.sh;
  • ./prepare_system_Ubuntu.sh;
  • ./prepare_system_Debian.sh.

Скрипт установит или обновит Docker и прочие необходимые пакеты.

Перезагрузите систему (ответьте Y, система перезагрузится).

Повысьте права после перезагрузки командой

sudo -i

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

cd /opt/platform/docker

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

docker load --input platformmd_DBserver.tar

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

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

sudo -i

Обеспечьте разрешение имени сервера с ролью с ролями Сервер Приложений и Сервер БД. Для проверки корректности разрешения имени сервера воспользуйтесь командой:

ping <Имя Сервера>

где:

  • Имя Сервера: FQDN сервера с ролью Сервер Приложений, например, test.pmd.local.

В результате выполнения команды должен отображаться ip-адрес сервера с ролью Сервер Приложений.

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

cd /opt

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

tar xzvf platformmd.*.tar.gz

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

cd /opt/platform/scripts/

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

chmod +x *.sh

Запустите скрипт подготовки системы в зависимости от ОС:

  • ./prepare_system_AstraLinux.sh;
  • ./prepare_system_Ubuntu.sh;
  • ./prepare_system_Debian.sh.

Скрипт установит или обновит Docker и прочие необходимые пакеты.

Перезагрузите систему (ответьте Y, система перезагрузится).

Повысьте права после перезагрузки командой

sudo -i

Сертификаты для предварительного развертывания можно создать самостоятельно или взять из архива с дистрибутивом.

  1. Для создания сертификата воспользуйтесь Руководством по генерации самоподписанных сертификатов или Вашим удостоверяющим центром.

  2. Для использования сертификатов перейдите в директорию /opt/platform/files/ дистрибутива. Для использования своих сертификатов необходимо заменить содержимое файлов сертификатов на свои данные. В директории /opt/platform/files/ находятся описания следующих сертификатов:

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

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

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

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

Выполните скрипт установки ansible:

cd /opt/platform/scripts/
./install_ansible.sh

Скопируйте открытый ключ пользователя ansible из файла /.ssh/id_rsa.pub с сервера с ролью Ansible-мастер на серверы с ролями Сервер Приложений и Сервер БД в содержимое файла /home/ansible/.ssh/authorized_keys.

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

к сведению

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

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

где:

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

Пример:

./make_inventory.sh -s appServer -t appServer.pmd.local -b dbServer.pmd.local -u Pass1 -l Pass2 -v 4.1.0 -a develop -h http://devtoolsgit.pmd.local:80/git -r pmd-repo -m local

Откройте в текстовом редакторе файл /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.
Руководствуйтесь комментариями в файле.

Скопируйте свой файл лицензии в директорию /opt/platform/installer/files, переименовав его в license.lic.

к сведению

Если у Вас нет файла лицензии, установите лицензию позже, после развёртывания Платформы.

Развертывание Платформы

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

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

где:

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

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

Дополнительные действия по настройке после развертывания Платформы

Добавление лицензии вручную

Если файл license.lic не был добавлен в директорию /opt/platform/installer/files перед установкой, установите лицензию вручную. Для установки лицензии после развертывания Платформы:

  • перейдите в административную консоль (также Platform AdminTools);
  • введите логин и пароль администратора, возьмите их из раздела Проверка результата.
к сведению

Если пользователь admin отсутствует, воспользуйтесь пользователем install с паролем Install123$567.

  • В административной консоли перейдите в раздел Licenses.
  • Нажмите кнопку +Add license.
  • Нажмите кнопку Browse, выберите файл с лицензией и нажмите кнопку Открыть.
  • Нажмите кнопку Apply License.