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

Интеграция с 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. Настройка виртуальной машины

  1. Выполните шаги инструкции в зависимости от вашей ОС.

    Astra Linux Special Edition 1.7
    1. Добавьте репозитории для вашей версии ОС.

      # Подставьте в переменные значения соответствующие вашей версии ОС
      # В данном примере используется версия 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" | sudo tee -a /etc/apt/sources.list > /dev/null
      
      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" | sudo tee -a /etc/apt/sources.list > /dev/null
    2. Обновите все пакеты ОС.

      apt update
    3. Установите необходимые пакеты.

      apt install -y cloud-init cloud-guest-utils curl network-manager
    4. Установите пакеты для системы виртуализации.

      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. Добавьте репозитории для вашей версии ОС.

      # Подставьте в переменные значения соответствующие вашей версии ОС
      # В данном примере используется версия 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
    2. Обновите все пакеты ОС.

      apt update
    3. Установите необходимые пакеты.

      apt install -y cloud-init cloud-guest-utils curl network-manager
    4. Установите пакеты для системы виртуализации.

      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
    РЕД ОС
    1. Добавьте репозитории для вашей версии ОС.

      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
    2. Обновите все пакеты ОС.

      dnf update -y
    3. Установите необходимые пакеты.

      dnf install -y cloud-init cloud-utils-growpart curl
    4. Установите пакеты для системы виртуализации.

      dnf install -y open-vm-tools
      systemctl enable vmtoolsd

      Разрешите запуск пользовательских скриптов в Open VM Tools.

      vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
    AlmaLinux
    1. Обновите все пакеты ОС.

      dnf update -y
    2. Установите необходимые пакеты.

      dnf install -y cloud-init cloud-utils-growpart curl
    3. Установите пакеты для системы виртуализации.

      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
    1. Добавьте репозиторий

      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=0
      nano /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
    2. Установите необходимые пакеты.

      zypper install -y cloud-init curl
    3. Установите пакеты для системы виртуализации.

      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
    1. Обновите все пакеты ОС.

      apt update -y
    2. Установите необходимые пакеты.

      apt install -y cloud-init cloud-guest-utils curl network-manager
    3. Установите пакеты для системы виртуализации.

      apt install -y open-vm-tools
      systemctl enable vmtoolsd.service

      Разрешите запуск пользовательских скриптов в Open VM Tools.

      vmware-toolbox-cmd config set deployPkg enable-custom-scripts true
  2. Установите конфигурацию службы cloud-init. Файл /etc/cloud/cloud.cfg должен иметь следующее содержимое:

    #cloud-config
    locale: en_US.UTF-8
    users:
    - default
    
    datasouces_list: ["None"]
    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']
  3. Добавьте в автозагрузку службы.

    systemctl enable cloud-init
    systemctl enable systemd-timesyncd
  4. Выключите межсетевой экран.

    systemctl disable firewalld
    systemctl disable ufw

    Команда может вывести сообщение об отсутствии данного компонента. В этом случае дополнительных действий не требуется.

  5. Выключите systemd-resolved.

    sudo systemctl disable --now systemd-resolved
    rm /etc/resolv.conf
    touch /etc/resolv.conf
  6. Отключите selinux. Откройте файл /etc/default/grub с помощью текстового редактора и добавьте параметр selinux=0 в строку GRUB_CMDLINE_LINUX.

    GRUB_CMDLINE_LINUX="selinux=0"

    Создайте новый файл конфигурации grub:

    Для систем семейства Debian (включая Ubuntu и Astra Linux)
    grub-mkconfig -o /boot/grub/grub.cfg
    Для систем семейства RHEL и совместимых
    grub2-mkconfig -o /boot/grub2/grub.cfg

3.1. Дополнительные настройки

Для использование платформы Nova версии 7.3.0, 6.4.0 и выше в IPI режиме необходимо произвести дополнительные настройки.

  1. Настройте именование интерфейсов для сценария инициализации виртуальных машин. Откройте файл /etc/default/grub с помощью текстового редактора и добавьте параметр net.ifnames=0 в строку GRUB_CMDLINE_LINUX.

    GRUB_CMDLINE_LINUX="net.ifnames=0 selinux=0"

    Создайте новый файл конфигурации grub:

    Для систем семейства Debian (включая Ubuntu и Astra Linux)
    grub-mkconfig -o /boot/grub/grub.cfg
    Для систем семейства RHEL и совместимых
    grub2-mkconfig -o /boot/grub2/grub.cfg
  2. Только для AstraLinux. Для обеспечения сетевого взаимодействия через API необходимо выполнить следующие условия (Nova 7.3.0 и выше):

    • Управление сетью должно осуществляться исключительно через NetworkManager.

    • Все сетевые интерфейсы должны находиться под полным контролем NetworkManager (состояние managed).

    • Конфигурация не должна дублироваться или быть задана в устаревших файлах (например, /etc/network/interfaces), которые могут перехватывать управление.

  3. Удалите старые конфигурации (если они есть), чтобы избежать конфликтов:

    sudo rm -f /etc/network/interfaces.d/* /etc/network/interfaces
  4. Настройте NetworkManager на управление всеми интерфейсами. Убедитесь, что файл /etc/NetworkManager/conf.d/managed.conf присутствует и и имеет следующее содержание:

    [ifupdown]
    managed=true
  5. Перезапустите службу для применения изменений:

    sudo systemctl restart NetworkManager
  6. Проверьте конфигурацию.

    nmcli device status
    Пример вывода:
    DEVICE  TYPE      STATE                   CONNECTION
    eth0    ethernet  connected               cloud-init eth0
  7. Подготовьте пользовательскую учетную запись. Подробнее см. в статье Подготовка пользовательской учетной записи.

  8. Проведите очистку файлов созданных во время процесса настройки.

    sudo truncate -s 0 /etc/machine-id /var/log/lastlog /var/log/wtmp && \
    sudo rm -f /var/lib/dbus/machine-id && \
    sudo ln -s /etc/machine-id /var/lib/dbus/machine-id && \
    sudo rm -rf /var/lib/dhcp/* /var/lib/dhcp6/* /var/lib/dhclient/* /var/lib/NetworkManager/* && \
    sudo hostnamectl set-hostname ""
  9. Выключите виртуальную машину.

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
InventoryService.Tagging.AttachTag
InventoryService.Tagging.CreateCategory
InventoryService.Tagging.CreateTag
InventoryService.Tagging.DeleteCategory
InventoryService.Tagging.DeleteTag
InventoryService.Tagging.EditCategory
InventoryService.Tagging.EditTag
Sessions.ValidateSession
StorageProfile.Update
StorageProfile.View

vSphere vCenter Cluster

Host.Config.Storage
Resource.AssignVMToPool
VApp.AssignResourcePool
VApp.ImportVirtualMachine.Config.AddNewDisk

vSphere vCenter Resource Pool

Host.Config.Storage
Resource.AssignVMToPool
VApp.AssignResourcePool
VApp.Import
VirtualMachine.Config.AddNewDisk

vSphere Datastore

Datastore.AllocateSpace
Datastore.Browse
Datastore.FileManagement
InventoryService.Tagging.ObjectAttachable

vSphere Port Group

Network.Assign

Virtual Machine Folder

InventoryService.Tagging.ObjectAttachable
Resource.AssignVMToPool
VApp.Import
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.AdvancedConfig
VirtualMachine.Config.Annotation
VirtualMachine.Config.CPUCount
VirtualMachine.Config.DiskExtend
VirtualMachine.Config.DiskLease
VirtualMachine.Config.EditDevice
VirtualMachine.Config.Memory
VirtualMachine.Config.RemoveDisk
VirtualMachine.Config.Rename
VirtualMachine.Config.ResetGuestInfo
VirtualMachine.Config.Resource
VirtualMachine.Config.Settings
VirtualMachine.Config.UpgradeVirtualHardware
VirtualMachine.Interact.GuestControl
VirtualMachine.Interact.PowerOff
VirtualMachine.Interact.PowerOn
VirtualMachine.Interact.Reset
VirtualMachine.Inventory.Create
VirtualMachine.Inventory.CreateFromExisting
VirtualMachine.Inventory.Delete
VirtualMachine.Provisioning.Clone
VirtualMachine.Provisioning.MarkAsTemplate
VirtualMachine.Provisioning.DeployTemplate

vSphere vCenter Datacenter

InventoryService.Tagging.ObjectAttachable
Resource.AssignVMToPool
VApp.Import
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.AdvancedConfig
VirtualMachine.Config.Annotation
VirtualMachine.Config.CPUCount
VirtualMachine.Config.DiskExtend
VirtualMachine.Config.DiskLease
VirtualMachine.Config.EditDevice
VirtualMachine.Config.Memory
VirtualMachine.Config.RemoveDisk
VirtualMachine.Config.Rename
VirtualMachine.Config.ResetGuestInfo
VirtualMachine.Config.Resource
VirtualMachine.Config.Settings
VirtualMachine.Config.UpgradeVirtualHardware
VirtualMachine.Interact.GuestControl
VirtualMachine.Interact.PowerOff
VirtualMachine.Interact.PowerOn
VirtualMachine.Interact.Reset
VirtualMachine.Inventory.Create
VirtualMachine.Inventory.CreateFromExisting
VirtualMachine.Inventory.Delete
VirtualMachine.Provisioning.Clone
VirtualMachine.Provisioning.DeployTemplate
VirtualMachine.Provisioning.MarkAsTemplate
Folder.Create
Folder.Delete

6. Получение информации о VMware vSphere

6.1. Получение корневого сертификата vCenter

  1. Скачайте корневые сертификаты vCenter с главной страницы его веб-интерфейса, как показано на рисунке ниже.

    Получение корневых сертификатов сервера VMware vCenter
    Рисунок 1. Получение корневых сертификатов сервера VMware vCenter
  2. Распакуйте полученный архив, выполнив следующую команду:

    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
  3. В директории 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 - имя проверяемого файла сертификата.

  4. Закодируйте в base64 полученный сертификат:

    cat 5db219db.0 | base64 -w0

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