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

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

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

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

При помощи программы для передачи файлов по ssh (например, WinSCP) переместите архив с дистрибутивом Платформы в папку /opt. Перейдите в консоль 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.

Измените имя хоста с помощью утилиты 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 и прочие необходимые пакеты:

  • apt-пакеты: vim mc xxd git make build-essential python3 python3-dev python3-pip apt-transport-https ca-certificates curl wget gnupg lsb-release acl docker.io.
  • python3-пакеты: ansible docker-compose psycopg2-binary glances jmespath.

Перезагрузите систему (ответьте Y, система перезагрузится).
Повысьте права после перезагрузки командой sudo -i.

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

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

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

  • cd /opt/platform/scripts/;
  • ./prepare_monostand.sh.
подсказка

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

Выполните скрипт подготовки 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/files, переименовав его в license.lic.

к сведению

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

Инсталляция при первоначальном развертывании

Установите ansible. ./install_ansible.sh

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

  1. cd /opt/platform/scripts/;

  2. ./run_ansible_playbooks_monostand.sh -s <Имя стенда> -d <Внутренний домен Платформы>, где:

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

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

к сведению

Указанный в пункте 2 внутренний домен Платформы должен соответствовать файлам сертификатов internal-certificate.pem, internal-certificate.key.pem и internal-root.crt.

Обновление

Подготовка

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

Повысьте права командой 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.

подсказка

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

Выполните скрипт подготовки 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.

Инсталляция при обновлении

Перейдите в папку инсталлятора командой cd /opt/platform/installer.

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

  1. cd /opt/platform/scripts/;

  2. ./run_ansible_playbooks_monostand.sh -s <Имя стенда> -d <Внутренний домен Платформы>, где:

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

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