Подготовка управляющего хоста
|
Все IP-адреса, доменные имена и учетные записи пользователей в командах ниже указаны в качестве примера. Для корректного выполнения команд необходимо заменить значения этих параметров на актуальные. Команды выполняются на управляющем хосте (Manager host). |
1. Дополнительные компоненты
-
Проверьте, что установлена версия GNU. Для этого выполните команду:
tar --version | grep GNUЕсли в выводе присутствует строка
GNU tar, значит установлена корректная версия утилиты. Пример вывода:tar (GNU tar) 1.34 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/ gpl.html>. -
Убедитесь, что установлен Python версии 3.9 или выше. Для проверки выполните команду:
python3 --version -
Убедитесь, что установлен модуль venv. Для этого выполните команду:
python3 -m venv --helpЕсли модуль установлен, отобразится справочная информация.
Если появляется сообщение об ошибке вида
No module named venv, необходимо установить пакетpython3-venv.
| На ОС Linux venv устанавливается с отдельным пакетом python3-venv. |
2. Установка образа deploy-manager и настройка config
| Команды выполняются на управляющем хосте (Manager host). |
-
Скачайте дистрибутив в архиве с расширением
tar.gzи распакуйте его. -
В случае установки с помощью manage-tool пропустите этот шаг, иначе:
-
Установите образ
deploy-manager, который находится в распакованном архиве. Пример установки версии 1.8.1:docker load < deploy-manager:1.8.1.tar -
(Опционально) Проверьте образ на доступность:
docker imagesПример ответа в случае, если образ доступен:
REPOSITORY TAG IMAGE ID CREATED SIZE deploy-manager 1.8.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 -
Подключитесь на target хост(ы) с помощью доступных вам вариантов (ssh, vnc, novnc и т.п.).
-
Добавьте содержимое публичного ключа из первого шага:
echo 'ssh-rsa AAAAB3NzaC1yc ... ' >> ~/.ssh/authorized_keys
-
-
-
Заполните файл hosts. Файл должен находиться по пути inventories/box/hosts.
В примере ниже используется IP-адрес 192.168.0.1. В файле hosts он задаётся параметром ansible_host, например:ansible_host=192.168.0.1— это IP-адрес целевого хоста.Пример файла hosts при установке Single instance
[k3s_server] astra01.sample.box ansible_host=192.168.0.1 [k3s_agent] [k3s_lb] [k3s_lb_vip] [k3s:children] k3s_server k3s_agent k3s_lb [all:vars] ansible_user=astra ansible_ssh_private_key_file=~/.ssh/cloudlink/dev domain_int=astra01.sample.box domain_ext=astra01.sample.box
-
ansible_user— пользователь, под которым вы производите подключение к target хосту — дополнительный ключ. -
ansible_ssh_private_key_file— путь до закрытого ключа на управляющем хосте: дополнительный ключ. -
domain_int— внутренне доменное имя: обязательный ключ. -
domain_ext— внешнее доменное имя (если не предполагается использование внешнего доменного имени, должно быть указано такое же значение, как и в domain_int) — обязательный ключ.
Пример файла hosts при установке High Availability instance
[k3s_server] astra-server01.sample.box ansible_host=192.168.0.1 astra-server02.sample.box ansible_host=192.168.0.2 astra-server03.sample.box ansible_host=192.168.0.3 ansible_user=almalinux [k3s_agent] astra-client01.sample.box ansible_host=192.168.0.4 astra-client02.sample.box ansible_host=192.168.0.5 astra-client03.sample.box ansible_host=192.168.0.6 [k3s_lb] astra-lb01.sample.box ansible_host=192.168.0.7 astra-lb02.sample.box ansible_host=192.168.0.8 [k3s_lb_vip] astra-lb-vip.sample.box ansible_host=192.168.0.100 [k3s:children] k3s_server k3s_agent k3s_lb [all:vars] ansible_user=astra ansible_ssh_private_key_file=~/.ssh/cloudlink/dev domain_int=astra01.sample.box domain_ext=astra01.sample.box
-
В случае если пользователь отличается от указанного в
ansible_user, можно передать имя пользователя в строке с описанием хоста. -
Для группы хостов k3s_lb_vip указывается IP-адрес на данный момент не существующего хоста. Требования:
-
Данный IP-адрес не должен находиться в пуле выдачи DHCP сервера, либо должен быть зарезервирован
-
Данный IP-адрес должен находиться в одной и той же подсети, что и target хост(ы).
-
Данный IP-адрес не должен использоваться в сети каким либо другим узлом.
-
-
-
Измените настройки в файле 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
-
vCloud
Название платформ нужно указать в параметре
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
username: 'user@internal'
password: '*******'
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. |
username password |
Например, |
Учётные данные для подключения. Задайте логин и пароль для платформы |
params |
weight |
Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке.
Например, |
cluster_id |
Скопируйте ID кластера в интерфейсе Zvirt. Для этого: 1. Перейдите в раздел Compute → Clusters. 2. Нажмите на название кластера. Откроется страница с подробной информацией. 3. Скопируйте Cluster ID из соответствующего поля. Например, |
|
cluster_name |
Введите название кластера. Например, |
|
storage_name |
Скопируйте название хранилища в интерфейсе zVirt. Для этого перейдите в раздел Storage → Domains. |
Как найти cluster_id для zVirt
-
Получение cluster_id:
-
В интерфейсе zVirt перейдите в раздел Compute → Clusters.
-
Нажмите на название кластера. Откроется страница с подробной информацией.
-
Скопируйте Cluster ID из соответствующего поля.
-
-
Получение storage_name:
-
В интерфейсе zVirt перейдите в раздел Storage → Domains.
-
Скопируйте название хранилища.
-
Поиск ID кластера для 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
username: 'admin'
password: '******'
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'
username: 'administrator@vsphere.local'
password: 'P@ssw0rd'
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. |
username password |
Например, |
Учётные данные для подключения. Задайте логин и пароль для платформы. |
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 для 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'
username: 'admin'
password: 'password'
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. |
username password |
Например, |
Учётные данные для подключения. Задайте логин и пароль для платформы |
params |
weight |
Вес платформы в интерфейсе заказа продукта. Чем меньше вес, тем выше в списке.
Например, |
region |
Укажите название региона. |
|
domain_name |
Укажите название домена OpenStack. |
|
tenant_prefix |
Человеко читаемый префикс. Подставляется перед именем проекта OpenStack при создании заказа в проекте Cloudlink. |
Как найти ID кластера для OpenStack
-
Авторизуйтесь на платформе OpenStack.
-
В интерфейсе платформы выберите раздел Compute → Instances.
-
Нажмите на название нужной виртуальной машины. Вы попадете на страницу расширенной информации о ВМ.
-
Скопируйте значение из строки ID. Это значение нужно вставить в файл config.yml.
|
Вы можете добавить самоподписанный сертификат после установки Cloudlink или указать TLS-сертификат до запуска развертывания, выполнив необходимые подготовительные действия. |