Развертывание и обновление Платформы Multi-D Docker demo
Предварительное развертывание
При помощи программы для передачи файлов по ssh
(например, WinSCP) переместите архив с дистрибутивом Платформы Multi-D в папку /opt
.
Перейдите в консоль 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
.
В дистрибутиве в папке /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 <имя сервера Приложений> -b <имя сервера БД> -d <доменный суффикс сервера Приложений> -u <пароль пользователя с правами администратора postgres> -l <пароль пользователя сервисов Платформы в postgres> -v <версия устанавливаемого релиза Платформы> -a <ветка> -h <git-хост> -r <репозиторий>
, где:
- <имя сервера Приложений>: имя сервера (hostname) сервера с ролью Сервер Приложений без доменного суффикса, например,
test
; - <имя сервера БД>: полное доменное имя сервера с ролью Сервер БД, например,
dbserver.pmd.local
; - <доменный суффикс сервера Приложений>: домен сервера с ролью Сервер Приложений, например,
pmd.local
; - <пароль пользователя с правами администратора postgres>: пароль для postgres-пользов ателя с логином postgres, который обладает правами
superuser
вpostgres
на сервере с ролью Сервер БД; - <пароль пользователя сервисов Платформы Multi-Dв postgres>: пароль для postgres-пользователя с логином platform, который будет владельцем баз данных Платформы Multi-D в postgres на сервере с ролью Сервер БД;
- <версия устанавливаемого релиза Платформы Multi-D>: например,
3.1.0
без кавычек; - <ветка>: ветка git-репозитория проектов devtools, например,
develop
; - <git-хост>: адрес сервера с git-репозиториями проектов devtools, например, внутренний хост стенда в домене pmd.local:
http://devtoolsgit.pmd.local:80/git
; - <репозиторий>: имя репозитория проектов devtools, например локально на стенде по-умолчанию создаётся
pmd-repo
.
Скопируйте свой файл лицензии в папку /opt/platform/installer/files
, переименовав его в license.lic
.
Если у Вас нет файла лицензии, установите лицензию позже, после развёртывания Платформы Multi-D.
Инсталляция при первоначальном развертывании
Установите ansible.
./install_ansible.sh
Запустите установку Платформы Multi-D командой
./run_ansible_playbooks_monostand.sh -s <Имя стенда> -d <Внутренний домен Платформы Multi-D>
, где:
- <Имя стенда>:имя стенда, например,
test.pmd.local
; - <Внутренний домен Платформы Multi-D>: внутренний домен Платформы Multi-D, используемый для межсервисного взаимодействия, например,
pmd.local
.
Дождитесь завершения установки, это может занять 20-30 минут.
Обновление
Подготовка
При помощи программы для передачи файлов по ssh
(например, WinSCP) переместите архив с дистрибутивом Платформы Multi-D в папку /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
.
В дистрибутиве в папке /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 <имя сервера Приложений> -b <имя сервера БД> -d <доменный суффикс сервера Приложений> -u <пароль пользователя с правами администратора postgres> -l <пароль пользователя сервисов Платформы в postgres> -v <версия устанавливаемого релиза Платформы> -a <ветка> -h <git-хост> -r <репозиторий>
, где:
- <имя сервера Приложений>: имя сервера (hostname) сервера с ролью Сервер Приложений без доменного суффикса, например,
test
; - <имя сервера БД>: полное доменное имя сервера с ролью Сервер БД, например,
dbserver.pmd.local
; - <доменный суффикс сервера Приложений>: домен сервера с ролью Сервер Приложений, например,
pmd.local
; - <пароль пользователя с правами администратора postgres>: пароль для postgres- пользователя с логином postgres, который обладает правами
superuser
вpostgres
на сервере с ролью Сервер БД; - <пароль пользователя сервисов ПлатформыMulti-D в postgres>: пароль для postgres-пользователя с логином platform, который будет владельцем баз данных Платформы Multi-D в postgres на сервере с ролью Сервер БД;
- <версия устанавливаемого релиза Платформы Multi-D>: например,
3.1.0
без кавычек; - <ветка>: ветка git-репозитория проектов devtools, например,
develop
; - <git-хост>: адрес сервера с git-репозиториями проектов devtools, например, внутренний хост стенда в домене pmd.local:
http://devtoolsgit.pmd.local:80/git
; - <репозиторий>: имя репозитория проектов devtools, например локально на стенде по-умолчанию создаётся
pmd-repo
.
Если <пароль пользователя сервисов Платформы Multi-D в postgres> отличается от реально, то реальный требуется самостоятельно изменить в СУБД Postgres.
Инсталляция при обновлении
Перейдите в папку инсталлятора командой cd /opt/platform/installer
.
Запустите установку Платформы Multi-D командой
./run_ansible_playbooks_monostand.sh -s <Имя стенда> -d <Внутренний домен Платформы Multi-D>
, где:
- <Имя стенда>:имя стенда, например,
test.pmd.local
; - <Внутренний домен Платформы Multi-D>: внутренний домен Платформы Multi-D, используемый для межсервисного взаимодействия, например,
pmd.local
.
Дождитесь завершения установки, это может занять 20-30 минут.