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

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

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

Предварительное развертывание

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

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

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

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

Измените имя хоста с помощью утилиты hostnamectl: hostnamectl set-hostname "test.pmd.local".

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

  • ИмяСтенда: имя стенда с доменным суффиксом, например, test.pmd.local.

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

Если ip-адрес сервера с ролью Сервер Приложений не отображается либо отображается как 127.0.0.0/8, необходимо настроить используемый в сети DNS-сервер либо, при его отсутствии, добавить имя сервера с ролью Сервер Приложений в файл /etc/hosts, командой: echo "<IP-адрес> <ИмяСтенда>" >> /etc/hosts, где

  • ИмяСтенда: имя сервера с ролью Сервер Приложений с доменным суффиксом, например, test.pmd.local.
  • IP-адрес: 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: ключ сертификата серверов домена pmd.local.
  • external-root.crt: цепочка сертификатов, включающая в себя все промежуточные УЦ и корневой УЦ для внешнего домена.
  • git-root.crt: корневой сертификат, которым подписан сертификат внешнего git-репозитория проектов devtools.
  • internal-certificate.pem: цепочка сертификатов серверов домена pmd.local, включающая сертификат сервера test.pmd.local, а также все промежуточные УЦ и корневой УЦ для внутреннего домена. Используется для внутреннего межсервисного взаимодействия.
  • internal-certificate.key.pem: ключ сертификата серверов домена pmd.local.
  • 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 <ИмяСтенда>, где:

  • ИмяСтенда: имя стенда с доменным суффиксом, например, test.pmd.local.

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

Если ip-адрес сервера с ролью Сервер Приложений не отображается, необходимо настроить используемый в сети DNS-сервер либо, при его отсутствии, добавить имя сервера с ролью Сервер Приложений в файл /etc/hosts, командой: echo "<IP-адрес> <ИмяСтенда>" >> /etc/hosts, где

  • ИмяСтенда: имя сервера с ролью Сервер Приложений с доменным суффиксом, например, test.pmd.local.
  • IP-адрес: 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 <ИмяСтенда>, где:

  • ИмяСтенда: имя стенда с доменным суффиксом, например, test.pmd.local.

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

Если ip-адрес сервера с ролью Сервер Приложений не отображается, необходимо настроить используемый в сети DNS-сервер либо, при его отсутствии, добавить имя сервера с ролью Сервер Приложений в файл /etc/hosts, командой: echo "<IP-адрес> <ИмяСтенда>" >> /etc/hosts, где:

  • ИмяСтенда: имя сервера с ролью Сервер Приложений с доменным суффиксом, например, test.pmd.local.
  • IP-адрес: 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-intenral-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-стенда:

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

  • имя сервера Приложений: имя сервера (hostname) сервера с ролью Сервер Приложений без доменного суффикса, например, test;
  • имя сервера БД: полное доменное имя сервера с ролью Сервер БД, например, dbserver.pmd.local;
  • доменный суффикс сервера Приложений: домен сервера с ролью Сервер Приложений, например, pmd.local;
  • пароль пользователя с правами администратора postgres: пароль для postgres-пользователя с логином postgres, который обладает правами superuser в postgres на сервере с ролью Сервер БД;
  • пароль пользователя сервисов Платформыв postgres: пароль для postgres-пользователя с логином platform, который будет владельцем баз данных Платформы в postgres на сервере с ролью Сервер БД;
  • версия устанавливаемого релиза Платформы: например, 3.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 test.pmd.local -t test.pmd.local -b test.pmd.local -u Pass1 -l Pass2 -v 4.0.2 -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 <Имя стенда> -b <Имя сервера БД> -d <Внутренний домен Платформы>, где:

  • Имя стенда: имя стенда, например, 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.

Обновление

Подготовка

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

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

При помощи программы для передачи файлов по 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/external-root.crt /usr/local/share/ca-certificates/platformmd-intenral-root.crt;
update-ca-certificates.

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

./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 минут.