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

Установка

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

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

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

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

  1. Проверьте, что GNU tar установлен при помощи команды:

    tar -- version | grep GNU

    В выводе должно присутствовать GNU.

    Пример вывода:
    tar (GNU tar) 1.34
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/ gpl.html>.
  2. Убедитесь, что установлен Python версии 3.9 или выше и venv.

    На ОС Linux venv устанавливается с отдельным пакетом python3-venv.

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

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

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

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

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

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

  4. Перейдите в директорию portal-box и загрузите образ deploy-manager командой:

    docker load < deploy-manager-1.8.1.tar.gz
  5. Скопируйте примеры заполненных конфигурационных файлов из каталога sample:

    cp -R inventories/sample inventories/box
  6. Создайте SSH-ключ и скопируйте его на целевой хост:

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

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

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

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

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

  7. Заполните файл hosts, расположенный в каталоге inventories/box/. Описание настроек находится в комментариях этого файла.

    Вид файла hosts при установке в режиме Single Instance
    [k3s_server]
    target-dcmanager.sample.box ansible_host=10.10.10.1
    
    [k3s_agent]
    
    [k3s_lb]
    
    [k3s_lb_vip]
    
    [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); обязательный ключ
  8. В файле config.yml, расположенном в каталоге inventories/box/group_vars/{}:

    1. В строке build_cluster: false оставьте значение по умолчанию.

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

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

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

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

      • type — укажите zvirt

      • label — укажите любое название платформы, например «zVirt»

      • scheme — оставьте значение по умолчанию

      • host — укажите доменное имя Hosted Engine подключаемой платформы, например: he.sample.box

      • port — оставьте значение по умолчанию

      • username — укажите имя пользователя с правами администратора, по умолчанию — admin@zvirt@internalsso

        Для инсталляций zVirt без Keycloak по умолчанию — admin@zvirt@internal.

      • password — укажите пароль для доступа к платформе

      • weight — оставьте значение по умолчанию

      • cluster_id — укажите идентификатор кластера

      • cluster_name — укажите название кластера

      • storage_name — укажите название домена хранения

        Чтобы скопировать идентификатор кластера, на административном портале zVirt перейдите в Ресурсы  Кластеры и нажмите название кластера. На странице с подробной информацией о кластере скопируйте значение поля ID кластера.

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

        Пример заполнения переменных для подключения zVirt в файле config.yml
         build_cluster: false
         platforms:
          zvirt:
            type: zvirt
            label: zVirt
            scheme: https
            host: he.sample.box
            port: 443
            username: 'admin@zvirt@internalsso'
            password: '12345'
            params:
              weight: 100
              cluster_id: d90193d6-5c5a-11ee-bd56-00163e10167d
              cluster_name: Default
              storage_name: Main_VM
        
        ####################################
        Продолжение конфигурационного файла

Подробное описание полей файла config.yml — в разделе Подготовка управляющего хоста.

2. Запуск развертывания

Docker-контейнер добавляется при загрузке образа deploy-manager.

Перед запуском Docker-контейнера необходимо создать папку ~/.kube/dcmanager, так как эта директория монтируется в контейнер.

На управляющем хосте запустите Docker-контейнер при помощи команды:

docker run -it --network host --rm \
    -v /$HOME/portal-box:/apps \ (1)
    -v ~/.ssh/id_rsa:/root/.ssh/id_rsa \ (2)
    -v ~/.kube/dcmanager:/root/.kube/dcmanager \ (3)
    deploy-manager:1.8.1 \ (4)
    -i inventories/box/hosts \ (5)
    -u $USER \ (6)
    portal_box.yml \ (7)
    --ask-vault-pass (8)

Параметры команды:

1 -v /$HOME/portal-box:/apps — монтирование директории /$HOME/portal-box с распакованным архивом в директорию /apps Docker-контейнера
2 -v ~/.ssh/id_rsa:/root/.ssh/id_rsa — монтирование файла с закрытым SSH-ключом в Docker-контейнер
3 -v ~/.kube/dcmanager:/root/.kube/dcmanager — монтирование файла, в котором будет находиться конфигурационный файл kube для подключения к кластеру
4 deploy-manager:1.8.1 — имя Docker-образа
5 -i inventories/box/hosts — путь до файла hosts
6 -u $USER — пользователь, под учетной записью которого будет осуществляться подключение на удаленный хост
7 portal_box.yml  — файл в директории portal-box
8 --ask-vault-pass — команда для запроса пароля в интерактивном режиме

После запуска Docker-контейнера, введите пароль для установки:

Vault password:

Пароль находится в репозитории zVirt DC Manager в файле с расширением txt.

По окончании установки модуля zVirt DC Manager в терминале будет выведена информация о подключении к Vault, оркестратору, а также данные для доступа к порталам zVirt DC Manager:

  • Portal address — URL пользовательского портала zVirt DC Manager

    Чтобы получить URL портала администрирования, замените portal на control в URL пользовательского портала

  • Portal username — логин учетной записи администратора

  • Portal password — пароль учетной записи администратора

Сохраните учётные данные, так как они понадобятся для дальнейшей настройки ~/.kube/dcmanager. В этой директории будет созданный оркестратором конфигурационный файл.

Информацию можно вывести повторно, для этого необходимо выполнить плейбук с тегом info:

docker run -it --network host --rm \
    -v /$HOME/portal-box:/apps \
    -v ~/.ssh/id_rsa:/root/.ssh/id_rsa \
    -v ~/.kube/dcmanager:/root/.kube/dcmanager \
    deploy-manager:1.8.1 \
    -i inventories/box/hosts \
    -u $USER \
    portal_box.yml \
    --ask-vault-pass
    --tags info

Перед тем как зайти на административный или пользовательский портал — установите корневой сертификат.

Отсутствие корневого сертификата приведет к ошибкам в работе портала.