Перейти к содержанию

Подготовка серверов и окружения

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

Исходные данные

Серверы

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

Доступ к серверам и репозиториям

Обеспечьте:

  • доступ ко всем серверам по SSH;
  • доступ серверов в Интернет на время установки компонентов;
  • доступ по HTTPS к Docker Hub;
  • доступ по HTTPS к репозиторию https://repo.ispace-platform.ru.

Учетные данные репозитория получите у поставщика комплекта iSpace через контакты на официальном сайте платформы. Не публикуйте логин и пароль репозитория в документации или системе контроля версий.

Учетная запись развертывания

Учетная запись должна:

  • подключаться к серверам по SSH;
  • входить в группу docker;
  • иметь права записи в каталоги развертывания /var/iSpace;
  • иметь права выполнять sudo chown и sudo chmod для файлов и каталогов в /var/iSpace.

Доменные имена и сертификаты

Определите полное доменное имя платформы <FQDN> и создайте соответствующую запись DNS. Для виртуальных машин рекомендуется назначить доменные имена согласно внутренним правилам организации.

Для доступа по HTTPS подготовьте закрытую (private.key) и открытую (public.crt) части SSL-сертификата формата X.509 для выбранного доменного имени.

LDAP

Для входа пользователей с доменными учетными записями подготовьте:

  • IP-адрес контроллера домена;
  • протокол ldap или ldaps;
  • порт LDAP-сервера;
  • логин и пароль учетной записи с правом чтения LDAP;
  • полный путь к OU, из которой требуется получать пользователей.

Почтовый сервер

Для отправки уведомлений подготовьте IP-адрес и порт почтового сервера. Если анонимная отправка электронной почты отключена, также потребуются учетная запись и пароль.

Установка Docker

Установите Docker Engine по официальной инструкции Docker для используемой операционной системы. Исходный комплект поставки требует Docker Engine не ниже 20.10.13.

Выполните послеустановочную настройку Docker для Linux и установите Docker Compose plugin. Исходный комплект поставки требует Docker Compose не ниже 2.10.2.

Перед развертыванием проверьте фактические версии:

docker version
docker compose version

Note

Минимальные версии определены комплектом iSpace, а не текущими последними выпусками Docker. Используйте более новую версию только после проверки совместимости с поставкой.

Установка в Astra Linux

Создайте резервную копию текущего файла sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.bak

Если сервер имеет доступ в Интернет, добавьте основной репозиторий:

cat > /etc/apt/sources.list << EOF
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main/ 1.7_x86-64 main non-free contrib
deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base/ 1.7_x86-64 main
EOF

Обновите список пакетов:

apt update

Для сертифицированной конфигурации Astra Linux используйте репозитории и пакеты, согласованные для вашей редакции ОС. После установки Docker добавьте nftables:

sudo apt install -y docker.io
sudo apt install -y nftables

Установите Compose v2 как плагин по официальной инструкции Docker. Пакет docker-compose без суффикса может содержать устаревшую ветку Compose v1, поэтому после установки обязательно проверяйте команду docker compose version.

Проверьте версию Docker:

docker --version

Для обновления Docker используйте раздел Upgrade Docker Engine в официальной инструкции.

Инициализация Docker Swarm

Если на сервере присутствуют два или более активных сетевых интерфейса, может потребоваться вручную указать IP-адрес, с которого должна работать платформа:

docker swarm init --advertise-addr <ip address>

Подготовка учетной записи и каталогов

Операции выполняются до развертывания от имени пользователя root или пользователя с правами sudo.

Шаг 1. Настройка группы Docker

Штатная установка Docker обычно создаёт группу docker. Создайте её только при отсутствии и добавьте текущего пользователя:

getent group docker || /usr/sbin/groupadd docker
/usr/sbin/usermod -aG docker $USER

После изменения членства завершите сеанс и войдите снова. Учитывайте предупреждение из официальной послеустановочной инструкции Docker: членство в группе docker предоставляет привилегии уровня root.

Шаг 2. Настройка группы iSpace

Создайте группу ispace, добавьте в нее пользователя и назначьте ее основной:

/usr/sbin/groupadd ispace
/usr/sbin/usermod -aG ispace $USER
/usr/sbin/usermod -g ispace $USER

Шаг 3. Автозапуск Docker

systemctl enable docker.service
systemctl enable containerd.service

Шаг 4. Каталог данных и журналов

mkdir /var/iSpace
chown $USER:ispace /var/iSpace
chmod 775 /var/iSpace

Шаг 5. Каталог конфигурации

Конфигурационные файлы рекомендуется разместить в /var/iSpace/docker. В инструкции этот путь обозначается переменной $ISPACE_CONF_DIR.

Переменная устанавливается только для текущего сеанса:

export ISPACE_CONF_DIR=/var/iSpace/docker
mkdir $ISPACE_CONF_DIR
sudo chown $USER:ispace $ISPACE_CONF_DIR
chmod 775 $ISPACE_CONF_DIR

Шаг 6. DNS

Создайте DNS-запись для доменного имени, по которому пользователи будут обращаться к платформе.

Шаг 7. HTTPS

По умолчанию доступ к платформе и взаимодействие между ее компонентами выполняются по HTTPS. Для работы по HTTPS подготовьте закрытую (private.key) и открытую (public.crt) части SSL-сертификата формата X.509 для выбранного доменного имени.

Warning

Перенастройка платформы на HTTP не рекомендуется по соображениям безопасности.

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

  • Создайте файл конфигурации (например, san.cnf) для добавления в сертификат SAN. Скопируйте и сохраните следующий текст, заменив example.com, данные компании и IP-адреса на ваши данные:
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt             = no

[ req_distinguished_name ]
C  = RU
ST = Moscow
L  = Moscow
O  = MyCompany
OU = IT
CN = example.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = example.com
DNS.2 = ://example.com
IP.1  = 192.168.1.100
  • Сгенерируйте сертификат:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out public.crt -config san.cnf
  • Добавьте сертификат в доверенные:

Скопируйте файл вашего сертификата public.crt в директорию для пользовательских сертификатов:

sudo cp public.crt /usr/local/share/ca-certificates/

Обновите кэш доверенных сертификатов:

sudo update-ca-certificates