Интеграция с vSphere
Данный раздел содержит информацию по интеграции Nova Container Platform с vSphere. Раздел содержит следующие основные шаги:
1. Подготовка шаблонов виртуальных машин в среде vSphere
В данном разделе документации описывается процесс подготовки виртуальной машины и создание из нее шаблона, который будет использоваться для развертывания всех виртуальных узлов кластера Nova Container Platform.
2. Создание виртуальной машины
Воспользуйтесь официальной документацией VMware, чтобы создать новую виртуальную машину. Выберите версию документации, соответствующую вашей версии VMware vSphere.
|
Проверьте совместимость вашей версии VMware vSphere с Nova Container Platform в разделе Перечень матриц совместимости и протестированных интеграций. |
При создании виртуальной машины следуйте рекомендациям ниже:
-
Используйте адаптеры VMware Paravirtual SCSI (PVSCSI) для виртуальных дисков машин
-
Используйте виртуальные сетевые адаптеры VMware VMXNET3
3. Настройка виртуальной машины
|
В ядре Linux обнаружена уязвимость Copy Fail (CVE-2026-31431). Перед настройкой ОС убедитесь, что установлена версия ядра с исправлением уязвимости. Подробнее об уязвимости и способе устранения см. в статье Copy Fail. |
-
Выполните шаги инструкции в зависимости от вашей ОС.
Astra Linux Special Edition 1.7
-
Добавьте репозитории для вашей версии ОС.
# Подставьте в переменные значения соответствующие вашей версии ОС # В данном примере используется версия 1.7.6.uu2 VERSION_BASE="1.7.6" UPDATE="2" sudo echo "deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/${VERSION_BASE}/uu/${UPDATE}/repository-main/ 1.7_x86-64 main contrib non-free" > /etc/apt/sources.list sudo echo "deb https://dl.astralinux.ru/astra/frozen/1.7_x86-64/${VERSION_BASE}/uu/${UPDATE}/repository-update/ 1.7_x86-64 main contrib non-free" >> /etc/apt/sources.list -
Обновите все пакеты ОС.
apt update -
Установите необходимые пакеты.
apt install -y cloud-init cloud-guest-utils curl network-manager -
Установите пакеты для системы виртуализации.
apt install -y open-vm-tools systemctl enable open-vm-tools.serviceРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
Astra Linux Special Edition 1.8
-
Добавьте репозитории для вашей версии ОС.
# Подставьте в переменные значения соответствующие вашей версии ОС # В данном примере используется версия 1.8.1.uu1 VERSION_BASE="1.8.1" UPDATE="1" sudo echo "deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/${VERSION_BASE}/uu/${UPDATE}/repository-main/ 1.8_x86-64 main non-free non-free-firmware contrib" > /etc/apt/sources.list sudo echo "deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/${VERSION_BASE}/uu/${UPDATE}/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware" >> /etc/apt/sources.list -
Обновите все пакеты ОС.
apt update -
Установите необходимые пакеты.
apt install -y cloud-init cloud-guest-utils curl network-manager -
Установите пакеты для системы виртуализации.
apt install -y open-vm-tools systemctl enable open-vm-tools.serviceРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
РЕД ОС
-
Добавьте репозитории для вашей версии ОС.
sudo nano /etc/yum.repos.d/redos.repo[base] name=RedOS - Base baseurl=https://repo1.red-soft.ru/redos/7.3c/$basearch/os,https://mirror.yandex.ru/redos/7.3c/$basearch/os,http://repo.red-soft.ru/redos/7.3c/$basearch/os gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT enabled=1 [updates] name=RedOS - Updates baseurl=https://repo1.red-soft.ru/redos/7.3c/$basearch/updates,https://mirror.yandex.ru/redos/7.3c/$basearch/updates,http://repo.red-soft.ru/redos/7.3c/$basearch/updates gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RED-SOFT enabled=1 -
Обновите все пакеты ОС.
dnf update -y -
Установите необходимые пакеты.
dnf install -y cloud-init cloud-utils-growpart curl -
Установите пакеты для системы виртуализации.
dnf install -y open-vm-tools systemctl enable vmtoolsdРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true -
Создайте каталог
/usr/lib/cloud-initи добавьте в него символическую ссылку наds-identifyиз/usr/libexec/cloud-init.sudo mkdir -p /usr/lib/cloud-init sudo ln -sf /usr/libexec/cloud-init/ds-identify /usr/lib/cloud-init/ds-identify
AlmaLinux 8.10 / 9.6 / 9.7
-
Обновите все пакеты ОС.
dnf update -y -
Установите необходимые пакеты.
dnf install -y cloud-init cloud-utils-growpart curl -
Установите пакеты для системы виртуализации.
dnf install -y open-vm-tools systemctl enable vmtoolsdРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
MosOS 15.5
-
Добавьте репозиторий
nano /etc/zypp/repos.d/repo-oss.repo[repo-oss] name=Main MosOS Arbat repository enabled=0 autorefresh=1 baseurl=https://mos-repo.mos.ru/mosos/arbat/15.5/repo/oss/ path=/ type=rpm-md keeppackages=0nano /etc/zypp/repos.d/repo-update.repo[repo-update] name=Update repository with updates for MosOS Arbat enabled=0 autorefresh=1 baseurl=https://mos-repo.mos.ru/mosos/arbat/15.5/repo/update/ type=NONE keeppackages=0 -
Установите необходимые пакеты.
zypper install -y cloud-init curl -
Установите пакеты для системы виртуализации.
zypper install -y open-vm-tools systemctl enable vmtoolsdРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
Ubuntu 24.04
-
Обновите все пакеты ОС.
apt update -y -
Установите необходимые пакеты.
apt install -y cloud-init cloud-guest-utils curl network-manager -
Установите пакеты для системы виртуализации.
apt install -y open-vm-tools systemctl enable vmtoolsd.serviceРазрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
Alt Linux 11
-
Обновите все пакеты ОС.
apt-get update -
Установите необходимые пакеты.
apt-get install -y cloud-init cloud-utils-growpart curl NetworkManager -
Установите пакеты для системы виртуализации.
apt install -y open-vm-tools systemctl enable vmtoolsd -
Разрешите запуск пользовательских скриптов в Open VM Tools.
vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
-
-
Установите конфигурацию службы cloud-init.
Если необходимо - измените стандартного пользователя для cloud-init в system_info.default_user.name: nova-user.
Файл
/etc/cloud/cloud.cfgдолжен иметь следующее содержимое:#cloud-config locale: en_US.UTF-8 users: - default datasource_list: ["VMware"] disable_root: true ssh_pwauth: false preserve_hostname: true manage_etc_hosts: true ssh_deletekeys: true ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519'] syslog_fix_perms: ~ resize_rootfs: true growpart: mode: auto devices: ['/'] ignore_growroot_disabled: false package_update: false package_upgrade: false cloud_init_modules: - migrator - seed_random - bootcmd - write-files - growpart - resizefs - disk_setup - mounts - update_etc_hosts - ca-certs - rsyslog - users-groups - ssh cloud_config_modules: - ssh-import-id - locale - set-passwords - yum-add-repo - ntp - timezone - disable-ec2-metadata - runcmd cloud_final_modules: - package-update-upgrade-install - write-files-deferred - reset_rmc - refresh_rmc_and_interface - rightscale_userdata - scripts-vendor - scripts-per-once - scripts-per-boot - scripts-per-instance - scripts-user - ssh-authkey-fingerprints - keys-to-console - install-hotplug - phone-home - final-message - power-state-change system_info: default_user: name: nova-user lock_passwd: false gecos: Nova user groups: [wheel, adm, systemd-journal, sudo] sudo: ["ALL=(ALL) NOPASSWD:ALL"] shell: /bin/bash network: renderers: ['netplan', 'network-manager', 'eni', 'sysconfig'] activators: ['netplan', 'network-manager', 'eni', 'networkd'] -
Добавьте в автозагрузку службы.
systemctl enable cloud-init systemctl enable systemd-timesyncd -
Выключите межсетевой экран.
systemctl disable firewalld systemctl disable ufwКоманда может вывести сообщение об отсутствии данного компонента. В этом случае дополнительных действий не требуется.
-
Выключите systemd-resolved.
systemctl disable --now systemd-resolved rm /etc/resolv.conf touch /etc/resolv.conf -
Откройте файл
/etc/default/grubс помощью текстового редактора и добавьте параметрselinux=0в строкуGRUB_CMDLINE_LINUX.GRUB_CMDLINE_LINUX="selinux=0 apparmor=0 crashkernel=auto"Создайте новый файл конфигурации grub:
Для систем семейства Debian (включая Ubuntu и Astra Linux)update-grubДля систем семейства RHEL и совместимыхgrub2-mkconfig -o /boot/grub2/grub.cfg -
Выполните дополнительные настройки для конкретной ОС:
Astra Linux
Для обеспечения сетевого взаимодействия через API необходимо выполнить следующие условия:
-
Управление сетью должно осуществляться исключительно через NetworkManager.
-
Все сетевые интерфейсы должны находиться под полным контролем NetworkManager (состояние managed).
-
Конфигурация не должна дублироваться или быть задана в устаревших файлах (например,
/etc/network/interfaces), которые могут перехватывать управление.
Проверьте конфигурацию
/etc/network/interfaces:source /etc/network/interfaces.d/* auto lo iface lo inet loopbackНастройте NetworkManager на управление всеми интерфейсами. Убедитесь, что файл
/etc/NetworkManager/conf.d/managed.confприсутствует и и имеет следующее содержание:[main] dns=default rc-manager=file plugins=ifupdown,keyfile [ifupdown] managed=falseВключите NetworkManager.
systemctl enable NetworkManagerUbuntu 24.04
Для обеспечения сетевого взаимодействия через API необходимо выполнить следующие условия:
-
Отключите systemd-networkd:
systemctl disable systemd-networkd -
Отредактируйте файл с настройками
/etc/NetworkManager/NetworkManager.conf:[main] dns=default rc-manager=file plugins=ifupdown,keyfile [ifupdown] managed=false -
Добавьте настройку Netplan в
/etc/netplan/91-netplan-networkmanager.yaml:network: version: 2 renderer: NetworkManager -
Отредактируйте права:
chmod 600 /etc/netplan/91-netplan-networkmanager.yaml -
Включите NetworkManager:
systemctl enable NetworkManager
Alt Linux
-
Отключите службу network:
systemctl disable network
-
-
Проверьте timezone. Выполните команду и проверьте время\timezone на VM Cluster Manager, синхронизация должна быть активна, timezone верна:
timedatectl -
Подготовьте пользовательскую учетную запись. Подробнее см. в статье Подготовка пользовательской учетной записи.
-
Проведите очистку файлов созданных во время процесса настройки.
cloud-init clean truncate -s 0 /etc/machine-id /var/log/lastlog /var/log/wtmp /root/.bash_history rm -rf /etc/udev/rules.d/70-persistent-net.rules rm -rf /var/lib/dhcp/* rm -rf /var/lib/dhcp6/* rm -rf /var/lib/dhclient/* rm -rf /etc/NetworkManager/system-connections/* rm -rf /etc/NetworkManager/system-connections/* rm -rf /var/lib/NetworkManager/* rm -rf /etc/netplan/*-cloud-init.yaml rm -f /etc/ssh/ssh_host_* sudo hostnamectl set-hostname "" -
Выключите виртуальную машину.
4. Создание шаблона из виртуальной машины
Воспользуйтесь официальной документацией VMware, чтобы сконвертировать подготовленную виртуальную машину в шаблон. Выберите версию документации, соответствующую вашей версии VMware vSphere.
|
Проверьте совместимость вашей версии VMware vSphere с Nova Container Platform в разделе Перечень матриц совместимости и протестированных интеграций. |
5. Настройка пользователя в vSphere
Для автоматического создания ВМ, а также изменения их параметров и количества, вы можете использовать учетную запись администратора VMware vCenter. Однако рекомендуется создать служебного пользователя с ролью, имеющей ограниченный набор привилегий.
Воспользуйтесь официальной документацией VMware, чтобы подготовить необходимые учетные записи и роли. Выберите версию документации, соответствующую вашей версии VMware vSphere.
|
Проверьте совместимость вашей версии VMware vSphere с Nova Container Platform в разделе Перечень матриц совместимости и протестированных интеграций. |
В таблице ниже представлен перечень привилегий в vSphere API, необходимых для установки и поддержки жизненного цикла кластеров Nova Container Platform.
| Привилегии в vSphere API | |
|---|---|
vSphere vCenter |
Cns.Searchable |
vSphere vCenter Cluster |
Host.Config.Storage |
vSphere vCenter Resource Pool |
Host.Config.Storage |
vSphere Datastore |
Datastore.AllocateSpace |
vSphere Port Group |
Network.Assign |
Virtual Machine Folder |
InventoryService.Tagging.ObjectAttachable |
vSphere vCenter Datacenter |
InventoryService.Tagging.ObjectAttachable |
6. Получение информации о VMware vSphere
6.1. Получение корневого сертификата vCenter
-
Скачайте корневые сертификаты vCenter с главной страницы его веб-интерфейса, как показано на рисунке ниже.
Рисунок 1. Получение корневых сертификатов сервера VMware vCenter -
Распакуйте полученный архив, выполнив следующую команду:
unzip vcenter_certificates.zip Archive: vcenter_certificates.zip inflating: certs/lin/dbad4059.0 inflating: certs/mac/dbad4059.0 inflating: certs/win/dbad4059.0.crt inflating: certs/lin/8048c56c.r2 -
В директории
certs/linполучите корневой СА-сертификат vCenter.certs/lin ├── 5db219db.0 ├── 5db219db.r1 ├── 8048c56c.0 ├── 8048c56c.1 ├── 8048c56c.r0 ├── 8048c56c.r2 ├── dbad4059.0 ├── dbad4059.1 ├── dbad4059.r0 └── dbad4059.r1Проверьте, что полученный сертификат действительно является корневым, выполнив команду:
openssl x509 -text -noout -in certs/lin/5db219db.0 | grep 'CA' CA:TRUE, pathlen:0где
5db219db.0- имя проверяемого файла сертификата. -
Закодируйте в
base64полученный сертификат:cat 5db219db.0 | base64 -w0Закодированный сертификат потребуется вам в дальнейшем для установки платформы.