Подготовка управляющего хоста
|
Все IP-адреса, доменные имена и учетные записи пользователей в командах ниже указаны в качестве примера. Для корректного выполнения команд необходимо заменить значения этих параметров на актуальные. Команды выполняются на управляющем хосте (Manager host). |
1. Дополнительные компоненты
-
Убедитесь, что установлен Python версии 3.9 или выше. Для проверки выполните команду:
python3 --version -
Убедитесь, что установлен модуль venv. Для этого выполните команду:
python3 -m venv --helpЕсли модуль установлен, отобразится справочная информация.
Если появляется сообщение об ошибке вида
No module named venv, необходимо установить пакетpython3-venv.На ОС Linux venv устанавливается с отдельным пакетом python3-venv. -
Убедитесь, что установлены нужные компоненты Docker-образа:
-
Для РЕД ОС:
-
Если установлен пакет podman-docker, удалите его:
sudo dnf remove podman-dockerПакет podman-docker необходимо удалить на РЕД ОС перед установкой docker-ce, поскольку оба пакета предоставляют совместимые компоненты и могут вызывать конфликты при установке и работе Docker. -
Установите пакеты docker-ce и jq с включенным автоматическим запуском и запустите сервис Docker CE:
sudo dnf install -y docker-ce jq && systemctl enable --now dockerВ подготовленных шаблонах виртуальных машин автозапуск сервиса Docker CE может быть уже включен.
-
-
Для ОС Astra Linux и Ubuntu установите пакеты docker.io и jq с включенным автозапуском и запустите сервис Docker:
sudo apt install -y docker.io jq && systemctl enable --now docker
-
2. Установка образа deploy-manager и настройка config
| Команды выполняются на управляющем хосте (Manager host). |
-
Скачайте дистрибутив в архиве с расширением
tar.gzи распакуйте его. -
В случае установки с помощью manage-tool пропустите этот шаг, иначе:
-
Установите образ
deploy-manager, который находится в распакованном архиве. Пример установки версии 1.9.1:docker load < deploy-manager:1.9.1.tar -
(Опционально) Проверьте образ на доступность:
docker imagesПример ответа в случае, если образ доступен:
REPOSITORY TAG IMAGE ID CREATED SIZE deploy-manager 1.9.1 35ca14ec55b4 2 weeks ago 1.01GB
-
-
Скопируйте пример inventory:
cp -R inventories/sample inventories/boxИзмените данные подключения к порталу в файле hosts, расположенном в каталоге inventories/box/. Описание настроек находится в комментариях к этому файлу.
-
Создайте SSH-ключ и скопируйте его на целевой хост(ы):
-
Создайте ключ, если он отсутствует:
ssh-keygen -
Скопируйте SSH-ключ на целевой хост:
ssh-copy-id [id-пользователя] # Команда с примером id-пользователя -- ssh-copy-id root@192.168.0.1Если авторизация по паролю на сервере запрещена добавьте ключ вручную:
-
Выведите содержимое публичного ключа:
cat ~/.ssh/id_rsa.pub -
Подключитесь на целевой хост с помощью доступных вам вариантов: ssh, vnc, novnc и так далее.
-
Добавьте содержимое публичного ключа из первого шага в файл authorized_keys:
echo 'ssh-rsa AAAAB3NzaC1yc ... ' >> ~/.ssh/authorized_keys
-
-
-
Заполните файл hosts, расположенный в каталоге inventories/box/hosts. Описание настроек находится в комментариях этого файла.
Пример файла hosts при установке Single instance
В примере используется IP-адрес 10.10.10.1. В файле hosts он задаётся параметром ansible_host, например:ansible_host=10.10.10.1— это IP-адрес целевого хоста.[k3s_server] target-cloudlink.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=cloudlink.sample.box (3) domain_ext=cloudlink.sample.box (4) prefix_int='' prefix_ext=''
1 Доменное имя целевого хоста и его IP-адрес 2 ansible_user— пользователь, который подключается к серверу с ролью целевого хоста и может получить права sudo без дополнительного ввода пароля. Это обязательный ключ.3 domain_int— внутренний домен и, опционально, поддомен организации. Это обязательный ключ.4 domain_ext— внешний домен и, опционально, поддомен организации. Если не предполагается использование внешнего доменного имени, должно быть указано то же значение, что и в параметре domain_int. Это обязательный ключ.Пример файла hosts при установке High Availability instance
В примере используется IP-адрес 10.10.10.1. В файле hosts он задаётся параметром ansible_host, например:ansible_host=10.10.10.1— это IP-адрес целевого хоста.[k3s_server] server1-cloudlink.sample.box ansible_host=10.10.10.1 server2-cloudlink.sample.box ansible_host=10.10.10.2 server3-cloudlink.sample.box ansible_host=10.10.10.3 [k3s_agent] agent1-cloudlink.sample.box ansible_host=10.10.10.4 agent2-cloudlink.sample.box ansible_host=10.10.10.5 agent3-cloudlink.sample.box ansible_host=10.10.10.6 [k3s_lb] lb01-cloudlink.sample.box ansible_host=10.10.10.7 lb02-cloudlink.sample.box ansible_host=10.10.10.8 [k3s_lb_vip] lb-vip-cloudlink.sample.box ansible_host=10.10.10.9 [k3s:children] k3s_server k3s_agent k3s_lb [all:vars] ansible_user=root (1) domain_int=cloudlink.sample.box (2) domain_ext=cloudlink.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-адрес не должен использоваться в сети другим узлом
-
-
Измените настройки в файле config.yml, расположенном к каталоге inventories/box/group_vars/k3s/config.yml.
3. Заполнение файла config.yml
В файле config.yml находится описание полей, которые нужно заполнить для выбранной/выбранных платформ виртуализации. Для этого нужно раскомментировать строки платформы виртуализации и подставить значения. Заполнить файл config.yml можно как вручную, так и через пользовательский интерфейс, запустив команду:
manage-tool --ui
Поддерживаются следующие типы платформ:
-
zVirt
-
vSphere
-
Openstack
-
RedVirt
-
K2_Cloud
-
Hyper-V
-
Yandex Cloud
Название платформ нужно указать в параметре
type.
Типы платформ должны быть строго выбраны из списка: zvirt, vsphere, openstack, redvirt, k2_cloud, hyper_v, yandex_cloud.
Параметр type чувствителен к регистру символов, поэтому важно указать названия платформ корректно.
|
3.1. Параметры config.yml для платформы zVirt
platforms:
zvirt:
type: zvirt
label: zVirt
scheme: https
host: engine.cloudlink.local
port: 443
params:
weight: 100
cluster_id: d90193d6-5c5a-11ee-bd56-00163e10167d
cluster_name: Default
storage_name: Main_VM
| Параметр | Значение | Описание |
|---|---|---|
type |
zvirt |
Тип платформы. Зависит от того, какую платформу вы устанавливаете.
Могут быть следующие типы: |
label |
zVirt |
Человеко читаемое название платформы. В этом параметре можно указать любое удобное вам название "Zvirt-1", "Zvirt-test" и т.д |
scheme |
https |
Схема для доступа к zVirt API. Протокол https является протоколом по умолчанию. Рекомендуется использовать именно этот протокол. |
host port |
Например: |
IP-адрес zVirt API. |
params |
weight |
Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке.
Например, |
cluster_id |
Скопируйте ID кластера в интерфейсе Zvirt. Для этого: 1. Перейдите в раздел Compute → Clusters. 2. Нажмите на название кластера. Откроется страница с подробной информацией. 3. Скопируйте Cluster ID из соответствующего поля. Например, |
|
cluster_name |
Введите название кластера. Например, |
|
storage_name |
Скопируйте название хранилища в интерфейсе zVirt. Для этого перейдите в раздел Storage → Domains. |
Как найти cluster_id и storage_name для zVirt
-
Получение cluster_id:
-
В интерфейсе zVirt перейдите в раздел Compute → Clusters.
-
Нажмите на название кластера. Откроется страница с подробной информацией.
-
Скопируйте Cluster ID из соответствующего поля.
-
-
Получение storage_name:
-
В интерфейсе zVirt перейдите в раздел Storage → Domains.
-
Скопируйте название хранилища.
-
Поиск Cluster ID и storage_name для RedVirt
-
Авторизуйтесь на платформе RedVirt.
-
Перейдите на портал администрирования — Administration Portal.
-
В интерфейсе платформы выберите раздел Compute → Clusters.
-
Нажмите на название кластера. Вы попадете на страницу расширенной информации о выбранном кластере.
-
Скопируйте Cluster ID из соответствующего поля. Это значение нужно вставить в файл config.yml.
-
Получение storage_name:
-
В интерфейсе RedVirt перейдите в раздел Storage → Domains.
-
Скопируйте название подходящего хранилища (хранилище имеет тип "Master Data").
-
|
Вы можете добавить самоподписанный сертификат после установки Cloudlink или указать TLS-сертификат до запуска развертывания, выполнив необходимые подготовительные действия. |
3.2. Параметры config.yml для платформы vSphere
Для версии 6.7
platforms:
vsphere:
type: vsphere
version: 6.7
label: vSphere
scheme: https
host: 'vsphere.cloudlink.local'
port: 443
params:
weight: 100
cluster_name: CL01
domain_id: domain-c8
datastore_id: datastore-16
tenant_prefix: vms/cloudlink
template_inventory_path: templates/cloudlink
Для версии 7.0
vsphere:
type: vsphere
version: 7.0
label: vSphere
scheme: https
host: '10.0.0.100'
port: '443'
params:
weight: 100
cluster_name: CL01
domain_id: domain-c8
datastore_id: datastore-16
tenant_prefix: cloud
template_inventory_path: library/templates
| Параметр | Значение | Описание |
|---|---|---|
type |
vsphere |
Тип платформы. Зависит от того, какую платформу вы устанавливаете.
Могут быть следующие типы: |
version |
6.7 или 7.0 |
Данные параметр указывает версию для платформы VMware vSphere. |
label |
vSphere |
Человеко читаемое название платформы. В этом параметре можно указать любое удобное вам название "vSphere-1", "vSphere-test" и т.д |
scheme |
https |
Схема для доступа к vSphere API. Протокол https является протоколом по умолчанию. Рекомендуется использовать именно этот протокол. |
host |
Например: |
IP-адрес или FQDN vSphere API. |
port |
443 |
Номер порта для подключения к интерфейсу API. По умолчанию используется 443 — стандартный порт протокола https. |
params |
weight |
Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке.
Например, |
cluster_name |
Скопируйте имя кластера в интерфейсе vSphere Client. Для этого: 1. Перейдите в раздел Hosts and Clusters → Clusters. 2. Скопируйте Cluster name из соответствующего поля. |
|
domain_id |
Введите название кластера. Для этого:
1. Перейдите в раздел Hosts and Clusters в интерфейсе vSphere Client.
2. Нажмите по необходимому кластеру и скопируйте из URL значение параметра Например, URL - https://vc.cloudlink.local/ui/app/cluster;nav=h/urn:vmomi:ClusterComputeResource:domain-c7005:111111/summary значение параметра |
|
datastore_id |
Введите идентификатор хранилища (datastore id) в интерфейсе vSphere Client. Для этого:
1. Перейдите в раздел Storage.
2. Нажмите по необходимому хранилищу и скопируйте из URL значение параметра |
|
tenant_prefix |
Укажите имя директории (Folder), в которой будут создаваться директории Проектов. |
|
template_inventory |
Укажите имя директории (Folder), в которой находятся шаблоны для развертывания ВМ. По умолчанию директория для версии VMware vSphere 6.7 templates/cloudlink По умолчанию директория для версии VMware vSphere 7.0 library/templates |
Как найти cluster_name, domain_id и datastore_id для vSphere
-
Получение cluster_name:
-
Перейдите в раздел Hosts and Clusters → Clusters.
-
Скопируйте Cluster name из соответствующего поля.
-
-
Получение domain_id:
-
Перейдите в раздел Hosts and Clusters в интерфейсе vSphere Client.
-
Нажмите по необходимому кластеру и скопируйте из URL значение параметра
ClusterComputeResource.
-
-
Получение datastore_id:
-
Перейдите в раздел Storage.
-
Нажмите по необходимому хранилищу и скопируйте из URL значение параметра
Datastore.
-
|
Вы можете добавить самоподписанный сертификат после установки Cloudlink или указать TLS-сертификат до запуска развертывания, выполнив необходимые подготовительные действия. |
3.3. Параметры config.yml для платформы Openstack
openstack:
type: openstack
label: OpenStack
scheme: https
host: '10.0.0.100'
port: '5000'
params:
weight: 102
region: regionOne
domain_name: Default
tenant_prefix: box
| Параметр | Значение | Описание |
|---|---|---|
type |
openstack |
Тип платформы. Зависит от того, какую платформу вы устанавливаете. |
label |
OpenStack |
Человеко читаемое название платформы. В этом параметре можно указать любое удобное вам название "OpenStack-1", "OpenStack-test" и т.д |
scheme |
https |
Протокол https является протоколом по умолчанию. Рекомендуется использовать именно этот протокол. |
host |
Например: |
IP-адрес или FQDN хоста. |
port |
5000 |
Номер порта для подключения к интерфейсу API. По умолчанию используется 5000. |
params |
weight |
Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке.
Например, |
region |
Укажите название региона. |
|
domain_name |
Укажите название домена OpenStack. |
|
tenant_prefix |
Человеко читаемый префикс. Подставляется перед именем проекта OpenStack при создании заказа в проекте Cloudlink. |
Как найти ID кластера для OpenStack
-
Авторизуйтесь на платформе OpenStack.
-
В интерфейсе платформы выберите раздел Compute → Instances.
-
Нажмите на название нужной виртуальной машины. Вы попадете на страницу расширенной информации о ВМ.
-
Скопируйте значение из строки ID. Это значение нужно вставить в файл config.yml.
|
Вы можете добавить самоподписанный сертификат после установки Cloudlink или указать TLS-сертификат до запуска развертывания, выполнив необходимые подготовительные действия. |