Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Подготовка управляющего хоста

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

Команды выполняются на управляющем хосте.

1. Дополнительные компоненты

  1. Убедитесь, что установлен Python версии 3.9 или выше и venv:

    python3 --version
    Пример вывода:
    Python 3.9.1
  2. Для РЕД ОС:

    1. Если установлен пакет podman-docker, удалите его:

      sudo dnf remove podman-docker

      Если на РЕД ОС установлен пакет podman-docker, он будет конфликтовать с пакетом docker-ce.

    2. Установите пакеты docker-ce и jq с включенным автозапуском и запустите сервис Docker CE:

      sudo dnf install -y docker-ce jq && systemctl enable --now docker

      В подготовленных шаблонах виртуальных машин автозапуск сервиса Docker CE может быть уже включен.

  3. Для Astra Linux и Ubuntu установите пакеты docker.io и jq с включенным автозапуском и запустите сервис Docker:

    sudo apt install -y docker.io jq && systemctl enable --now docker

2. Загрузка образа deploy-manager и настройка окружения

Для доступа к репозиторию zVirt DC Manager необходимо получить учетные данные для входа.

  1. Из репозитория zVirt DC Manager скачайте архив с расширением tar — архив с дистрибутивом.

  2. (Опционально) Проверьте целостность архива с дистрибутивом.

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

    В распакованном архиве будет находиться директория portal-box с файлами, необходимыми для установки.

  4. Перейдите в директорию portal-box.

  5. (Опционально) Проверьте образ на доступность:

    docker images

    Пример ответа, если образ доступен:

    REPOSITORY                        TAG         IMAGE ID      CREATED       SIZE
    docker.io/library/deploy-manager  1.11.0       243f5d6cb054  3 months ago  1.05 GB
  6. Скопируйте примеры заполненных конфигурационных файлов из каталога sample:

    cp -R inventories/sample inventories/box

    Каталог sample копируется, чтобы восстановить исходные данные или свериться с примерами заполнения при необходимости.

    Имя каталога, в который копируются примеры, произвольное: каталог box можно изменить на другой.

  7. Создайте SSH-ключ и скопируйте его на целевой хост:

    1. Создайте SSH-ключ, если он отсутствует:

      ssh-keygen
    2. Скопируйте SSH-ключ на целевой хост:

      ssh-copy-id [id пользователя]

      Команда с примером id пользователя: ssh-copy-id astra@10.10.10.6

      Если авторизация по паролю на сервере запрещена, добавьте ключ вручную в authorized_key:

      1. Выведите содержимое публичного ключа:

        cat ~/.ssh/id_rsa.pub
      2. Подключитесь на целевой хост с помощью доступных вам вариантов: ssh, vnc, novnc и так далее.

      3. Добавьте содержимое публичного ключа из первого шага в файл authorized_keys:

        echo 'ssh-rsa AAAAB3NzaC1yc ... ' >> ~/.ssh/authorized_keys
  8. Заполните файл hosts, расположенный в каталоге inventories/box/. Описание настроек находится в комментариях этого файла.

    Вид файла hosts при установке в режиме Single Instance
    [k3s_server]
    target-dcmanager.sample.box ansible_host=10.10.10.1 (1)
    
    [k3s_agent]
    
    [k3s_lb]
    
    [k3s_lb_vip]
    
    [k3s:children]
    k3s_server
    k3s_agent
    k3s_lb
    
    [all:vars]
    ansible_user=root (2)
    domain_int=dcmanager.sample.box (3)
    domain_ext=dcmanager.sample.box (4)
    prefix_int=''
    prefix_ext=''
    1 Доменное имя целевого хоста и его IP-адрес
    2 ansible_user — пользователь, который подключается к серверу с ролью целевого хоста и может получить права sudo без дополнительного ввода пароля; обязательный ключ
    3 domain_int — внутренний домен и, опционально, поддомен организации; обязательный ключ
    4 domain_ext — внешний домен и, опционально, поддомен организации. Если не предполагается использование внешнего доменного имени, должно быть указано то же значение, что и в параметре domain_int; обязательный ключ
    Вид файла hosts при установке в режиме High Availability
    [k3s_server]
    server1-dcmanager.sample.box ansible_host=10.10.10.1
    server2-dcmanager.sample.box ansible_host=10.10.10.2
    server3-dcmanager.sample.box ansible_host=10.10.10.3
    
    [k3s_agent]
    agent1-dcmanager.sample.box ansible_host=10.10.10.4
    agent2-dcmanager.sample.box ansible_host=10.10.10.5
    agent3-dcmanager.sample.box ansible_host=10.10.10.6
    
    
    [k3s_lb]
    lb01-dcmanager.sample.box ansible_host=10.10.10.7
    lb02-dcmanager.sample.box ansible_host=10.10.10.8
    
    [k3s_lb_vip]
    lb-vip-dcmanager.sample.box ansible_host=10.10.10.9
    
    
    [k3s:children]
    k3s_server
    k3s_agent
    k3s_lb
    
    [all:vars]
    ansible_user=root (1)
    domain_int=dcmanager.sample.box (2)
    domain_ext=dcmanager.sample.box (3)
    prefix_int=''
    prefix_ext=''
    1 ansible_user — пользователь с правами sudo, который подключается к серверу с ролью целевого хоста; дополнительный ключ
    2 domain_int — внутреннее доменное имя; обязательный ключ
    3 domain_ext — внешнее доменное имя (если не предполагается использование внешнего доменного имени, должно быть указано то же значение, что и в параметре domain_int); обязательный ключ

    Для группы хостов k3s_lb_vip укажите IP-адрес, который на данный момент не привязан ни к одному хосту. Этот IP-адрес (VIP) будет использоваться попеременно балансировщиками нагрузки. Требования:

    • VIP-адрес не должен находиться в пуле выдачи DHCP-сервера, либо должен быть зарезервирован

    • VIP-адрес должен находиться в одной подсети c целевым хостом

    • VIP-адрес не должен использоваться в сети другим узлом

3. Настройки файла config.yml

В таблице ниже перечислены параметры настроек, содержащиеся в файле config.yml.

Таблица 1. Описание параметров config.yml для платформы zVirt
Параметр Значение Описание

type

zvirt

Тип платформы виртуализации, фиксированное значение

Параметр type чувствителен к регистру символов, поэтому важно указать название платформы корректно

label

Человекочитаемое название платформы виртуализации

В параметре можно указать любое название, например, «Zvirt-1», «Zvirt-test» и так далее

scheme

По умолчанию: https

Схема для доступа к zVirt API. Протокол HTTPS — протокол по умолчанию, который рекомендуется использовать

host

he.sample.box

Доменное имя менеджера управления подключаемой платформы

port

По умолчанию: 443

Если иной порт не указан, то используется 443 — стандартный порт протокола HTTPS

params

weight

По умолчанию: 100

Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке. Например, weight:11, weight:102

cluster_id

Скопируйте ID кластера в интерфейсе zVirt. Для этого:

  1. На административном портале zVirt перейдите в раздел Ресурсы  Кластеры.

  2. Нажмите название кластера. Откроется страница с подробной информацией.

  3. Скопируйте ID кластера из соответствующего поля.

cluster_name

Введите название кластера

storage_name

Скопируйте название хранилища в интерфейсе zVirt

Для этого на административном портале zVirt перейдите в раздел Хранилище  Домены. Скопируйте имя нужного домена

dns_servers

По умолчанию: не задан

Опционально вы можете указать один или несколько DNS-серверов. Несколько DNS-серверов указываются списком, например:

- 1.1.1.1
- 2.2.2.2

Вы можете добавить самоподписанный сертификат после установки модуля zVirt DC Manager или добавить TLS-сертификат до запуска развертывания модуля zVirt DC Manager. Для добавления TLS-сертификата нужно выполнить дополнительные действия перед запуском развертывания модуля.

Параметры, перечисленные в таблице ниже, заполняются только при добавлении TLS-сертификата.

Таблица 2. Описание параметров config.yml для вставки CA-сертификата

Параметр

Значение

Описание

tls_ca_cert

Цепочка сертификатов (CA chain)

Описание параметров и дополнительных действий для добавления TLS-сертификата — в разделе Добавление TLS-сертификата

tls_cert

Серверный сертификат

tls_key

Приватный ключ сервера

Вы можете заполнить настройки в файле config.yml через текстовый пользовательский интерфейс или вручную.

3.1. Заполнение файла config.yml через текстовый пользовательский интерфейс

С помощью текстового пользовательского интерфейса (TUI) вы можете:

Файл config.yml, заполняемый через TUI, сразу же будет добавлен в директорию inventories/box/group_vars/k3s.

Чтобы заполнить настройки в новом файле config.yml через TUI:

  1. Из каталога, в котором хранится файл config.yml, откройте TUI командой:

    ./manage-tool.sh --ui

    Откроется редактор конфигурации, который содержит разделы с настройками. Навигация по разделам возможна с помощью клавиатуры или мыши.

  2. Задайте значения для обязательных настроек:

    1. Общие настройки  Кластерный режим — активируйте для развертывания модуля в режиме High Availability (true), по умолчанию выбран режим Single Instance (false).

    2. Платформы виртуализации — нажмите Добавить запись:

      • В открывшемся окне выберите тип платформы — zVirt

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

      • Нажмите OK.

        После этого откроется окно с настройками параметров платформы.

        tui new cfg1
      • Заполните нужные параметры платформы.

        Каждая настройка в TUI привязана к конкретному параметру из config.yml. Когда вы выбираете настройку, TUI показывает служебное имя соответствующего параметра. Подробное описание параметров config.yml — в таблице выше.

        tui cfg params
    3. После заполнения параметров платформы перейдите в другие разделы и заполните нужные настройки, следуя подсказкам на экране.

  3. После заполнения нужных настроек нажмите Сохранить.

    При сохранении изменений выполняется валидация настроек — проверяется, например, наличие обязательных параметров и корректность формата значений. Если настройки содержат ошибки, при попытке сохранения появится окно со списком параметров и описанием каждой ошибки.

Чтобы валидировать существующий файл config.yml через TUI:

  1. В каталоге с файлом config.yml введите команду:

    ./manage-tool.sh --ui --validate config.yml
  2. Убедитесь, что валидация прошла успешно, иначе — отредактируйте файл config.yml.

Чтобы редактировать существующий файл config.yml через TUI:

  1. Из каталога, в котором хранится файл config.yml, откройте TUI командой:

    ./manage-tool.sh --ui --load config.yml
  2. Внесите нужные изменения и нажмите Сохранить.

3.2. Заполнение файла config.yml вручную

Чтобы заполнить настройки вручную, в каталоге inventories/box/group_vars/{} откройте файл config.yml.

В файле config.yml:

  1. Для режима Single Instance значение параметра build_cluster: false — оставьте по умолчанию. Для режима High Availability активируйте установку в кластерном режиме: build_cluster: true

  2. В строке platforms:{} удалите фигурные скобки: platforms:.

  3. Раскомментируйте строки платформы виртуализации и подставьте нужные значения. В параметре type укажите zvirt.

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

Пример заполнения переменных для подключения zVirt в файле config.yml
 build_cluster: false (1)
 platforms:
  zvirt:
    type: zvirt
    label: zVirt
    scheme: https
    host: he.sample.box
    port: 443
    params:
      weight: 100
      cluster_id: d90193d6-5c5a-11ee-bd56-00163e10167d
      cluster_name: Default
      storage_name: Main_VM

####################################
Продолжение конфигурационного файла
1 false — значение по умолчанию для Single Instance

4. Проверка целостности дистрибутива

Для проверки целостности дистрибутива:

  1. После загрузки дистрибутива запустите утилиту md5sum с указанием имени дистрибутива:

    md5sum <имя_дистрибутива>.tar
    Пример:
    md5sum zvirt-dc-manager-1.27-20250827T192016.tar

    После выполнения проверки будет выдано сообщение с контрольной суммой.

    Пример:
    f458058f29e5f6cbcc0618acb71a88d6  zvirt-dc-manager-1.27-20250827T192016.tar
  2. Сравните значение из файла с расширением md5 с полученным в результате проверки значением.

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

    crc check