Перейти к содержимому

Хостинг-провайдеры

Подключите аккаунт провайдера в Settings > Integrations > Hosting, чтобы создавать ВМ и управлять ими из Opfield. Сохранение подключения не создаёт ВМ; заказ подтверждается отдельно.

Выберите провайдера и раскройте инструкцию. Для добавления коннектора нужны права integrations:hosting:view и integrations:hosting:manage в Opfield; права токена провайдера настраиваются отдельно.

Создание QEMU ВМ и управление существующими ВМ/CT на выбранном хосте. Нужны API-токен, ACL и профиль хранилищ/сети для создания ВМ.

Настройка Proxmox VE
  1. В Proxmox откройте Datacenter > Permissions > Users > Add. Создайте отдельного пользователя, например gateway@pve, в области аутентификации Proxmox VE. Не используйте root@pam.
  2. В Permissions > Roles > Create создайте роли с привилегиями из таблицы ниже. Разделите права ВМ, хранилищ и необязательные права фаервола кластера, чтобы назначать каждую роль на нужном пути.
  3. В Permissions добавьте записи User Permission для gateway@pve на нужных путях. Включайте наследование только там, где доступ должны получать дочерние объекты. Для создания нужны разрешения на будущие VMID из диапазона выделения, а не только на существующие ВМ.
  4. Откройте Permissions > API Tokens > Add, выберите gateway@pve, задайте имя hosting и оставьте Privilege Separation включённым. Задайте срок действия. Сразу скопируйте секрет: повторно он не показывается.
  5. Добавьте соответствующие записи API Token Permission для gateway@pve!hosting. При разделении привилегий эффективные права — пересечение прав пользователя и токена. Административная учётная запись владельца не делает такой токен администратором автоматически.

Выдавайте только права для нужных функций. Замените шаблоны путей реальными объектами Proxmox: идентификатор ноды Opfield не является именем хоста Proxmox или VMID.

Операция Привилегии Proxmox Путь ACL
Обнаружение хостов и хранилищ Sys.Audit, Datastore.Audit Соответственно выбранные /nodes/<host> и /storage/<storage>
Чтение конфигурации и состояния ВМ VM.Audit /vms/<vmid>
Создание и настройка ВМ VM.Allocate, VM.Config.CPU, VM.Config.Memory, VM.Config.Disk, VM.Config.Network, VM.Config.HWType, VM.Config.Options, VM.Config.CDROM, VM.PowerMgmt Каждый разрешённый будущий /vms/<vmid> либо настроенный /pool/<pool>
Выделение дисков ВМ Datastore.AllocateSpace Дисковое /storage/<storage> с типом содержимого images
Загрузка/импорт образа ОС и загрузочного носителя Datastore.AllocateTemplate, Datastore.Allocate Хранилище образов с import и хранилище загрузочных носителей с iso
Скачивание образа гипервизором Sys.AccessNetwork Выбранный /nodes/<host>
Подключение моста или VNet SDN.Use Путь разрешений моста/VNet в Proxmox
Запуск, выключение, перезагрузка VM.PowerMgmt /vms/<vmid>
Изменение размера VM.Config.CPU, VM.Config.Memory, VM.Config.Disk; рост диска также требует выделения места Пути ВМ и дискового хранилища
Удаление ВМ VM.Allocate /vms/<vmid>
Чтение файлов идентификации гостевой ОС VM.GuestAgent.FileRead либо более широкое VM.GuestAgent.Unrestricted; в старых версиях — VM.Monitor /vms/<vmid>
Установка/восстановление через QEMU Guest Agent VM.GuestAgent.Unrestricted; в старых версиях — VM.Monitor /vms/<vmid>
Создание/удаление снапшотов VM.Snapshot /vms/<vmid>
Восстановление снапшота VM.Snapshot.Rollback; для последующего запуска также VM.PowerMgmt /vms/<vmid>
Чтение/изменение фаервола ВМ и участия интерфейса VM.Audit, VM.Config.Network /vms/<vmid>
Чтение состояния фаервола кластера Sys.Audit /
Управление группами безопасности Opfield в фаерволе кластера Sys.Modify / — необязательный широкий доступ на уровне кластера

Не выдавайте Sys.Modify на / только ради успешного теста соединения. Текущая интеграция фаервола использует его для групп безопасности кластера; это не разрешение на одну ВМ. Если такой доступ неприемлем, оставьте управление фаерволом недоступным. Opfield не включает фаервол кластера. Для образов и загрузочных носителей лучше выделить отдельные хранилища: Datastore.Allocate шире права загрузить один файл. VM.Backup не заменяет привилегии снапшотов.

Набор привилегий Guest Agent зависит от версии Proxmox. Выбирайте доступные в установленной версии и проверяйте право, указанное в ошибке API. Если получение сведений через Guest Agent требует VM.GuestAgent.Audit, добавьте его отдельно; чтение файлов само по себе не разрешает команды установки.

  1. Откройте Settings > Integrations, в блоке Hosting нажмите Add connector.
  2. На шаге Connection выберите Provider → Proxmox VE. Заполните Connector name (например, Proxmox production), API origin (https://pve.example.com:8006, без /api2/json), Token ID (gateway@pve!hosting) и API token (только секрет). Нажмите Continue.
  3. На шаге Proxmox host выберите Certificate verification: System trust для доверенного системного сертификата, Private CA certificate для собственного CA либо Verified certificate fingerprint для независимо проверенного отпечатка. В последних двух случаях заполните Trusted CA certificate в PEM или Certificate SHA-256 pin.
  4. Нажмите Test Connection. После загрузки списка выберите Physical host. Один коннектор привязан к одному физическому хосту; VMID уникальны во всём кластере.
  5. Оставьте VM provisioning включённым для создания ВМ. Если нужны только существующие ВМ/CT и их привязка, выключите его: шаги Infrastructure и Network будут пропущены. Нажмите Continue.
  6. На шаге Infrastructure заполните параметры из таблицы и нажмите Continue.
Поле Что указать
Disk storage Существующее хранилище выбранного хоста с содержимым images для дисков ВМ
Image storage Хранилище с import для образов ОС
Seed storage Хранилище с iso для загрузочного носителя
Allowed VMIDs Разрешённые ID и диапазоны, например 9000-9010,9020; не более 1000 уникальных ID. Занятые ID пропускаются
Maximum CPU budget (cores) Необязательный общий бюджет vCPU коннектора, включая ожидающие операции
Maximum memory budget (MiB) Необязательный общий бюджет RAM
Maximum disk budget (GiB) Необязательный общий бюджет дисков
Resource pool Имя существующего пула Proxmox, если он нужен; иначе пусто
  1. На шаге Network выберите Bridge и Address assignment. Для DHCP в выбранной сети должен работать DHCP. Для Static IPv4 pool укажите IP pool, Subnet и Gateway: адресов должно быть не меньше разрешённых VMID. Зарезервируйте их вне DHCP и ручного выделения.
  2. При необходимости задайте VLAN, DNS servers, Search domain, MTU. Interface firewall определяет участие сетевого интерфейса в фаерволе, но не включает фаервол кластера и не создаёт правила. Нажмите Review.
  3. Проверьте Profile summary. В Synchronization and scope настройте Automatic sync и Sync interval (seconds) — от 60 до 86400. Automatic adoption включайте, если нужно автоматически связывать существующие ноды при однозначном подтверждении идентичности; одного совпадения IP/VMID недостаточно.
  4. Нажмите Create connector. При выключенном VM provisioning эти настройки находятся на последнем шаге Settings, без сводки профиля. Сохранение коннектора не создаёт ВМ.
  5. Откройте сохранённый аккаунт из Nodes > Providers или списка интеграций. Проверьте синхронизацию и список ресурсов. Для создания ноды нажмите Create VM, выберите роль, имя, ОС и ресурсы, проверьте Review node и подтвердите Confirm and create VM. Дождитесь завершения установки и появления ноды онлайн.

Если Test Connection не загрузил хосты, проверьте сертификат и ACL. Если нет нужного хранилища, проверьте его тип содержимого и доступ на выбранном хосте. Кнопка Create VM требует включённого профиля создания и прав Opfield на создание нод и ресурсов выбранного аккаунта.

Если API отклоняет запрос, проверьте эффективные права токена из административной консоли Proxmox, заменив пути на свои:

Окно терминала
pveum user token permissions gateway@pve hosting --path /vms/9000
pveum user token permissions gateway@pve hosting --path /storage/gateway-images
pveum user token permissions gateway@pve hosting --path /

Команды только читают права. Для токена с разделением привилегий проверьте ACL и пользователя, и токена.

Документация Proxmox.

Создание и управление Droplets, фаерволами и снапшотами. Доступ задаётся правами персонального API-токена.

Настройка DigitalOcean
  1. В панели DigitalOcean переключитесь на нужную команду. Откройте API > Tokens > Generate New Token.
  2. Задайте отдельное имя и срок действия. Выберите Custom Scopes и права из нужных строк ниже вместе с обязательными зависимостями. Роль создателя в команде должна разрешать эти операции.
  3. Создайте токен и сразу скопируйте секрет для следующего шага.
Возможность Права токена
Учётная запись и список ВМ account:read, droplet:read
Локации, размеры, образы regions:read, sizes:read, image:read
Создание Droplet droplet:create, droplet:read, tag:create, tag:read, regions:read, sizes:read, actions:read, image:read, snapshot:read, vpc:read
Питание; создание/восстановление снапшота через действия Droplet droplet:update и droplet:read, regions:read, sizes:read, actions:read, image:read, snapshot:read
Изменение размера Права обновления из строки выше плюс droplet:create и его зависимости
Удаление Droplet droplet:delete, droplet:read
Просмотр/удаление снапшотов snapshot:read; для удаления также snapshot:delete
Управление и очистка фаерволов firewall:read, firewall:create, firewall:update, firewall:delete, droplet:read, tag:read
Баланс и финансы billing:read

Отдельного права snapshot:create в этом API нет: создание снапшота Droplet является действием над Droplet. Не нужны посторонние права Kubernetes, Spaces или баз данных. Чтобы изменить набор прав, создайте новый токен, замените его в Opfield, проверьте и только затем отзовите старый.

Источники: создание персонального токена, справочник прав DigitalOcean.

  1. Откройте Settings > Integrations, в блоке Hosting нажмите Add connector.
  2. На шаге Connection выберите Provider → DigitalOcean и задайте Connector name, например DigitalOcean production. API origin заполняется автоматически: https://api.digitalocean.com; менять его не нужно.
  3. В API token вставьте секрет созданного токена. Нажмите Test Connection. При сообщении Connected with limited permissions проверьте недостающие права по таблице выше; успешная авторизация не означает доступность всех операций.
  4. Нажмите Continue. На шаге Settings настройте параметры ниже.
Поле Что указать
Automatic sync Включить плановое обновление ресурсов провайдера
Sync interval (seconds) Интервал от 60 до 86400 секунд
Automatic adoption Автоматическая привязка существующих нод только при однозначном подтверждении идентичности
Node scope Необязательные UUID нод Opfield через запятую для ограничения автоматической привязки. Не ID ВМ провайдера; пустое поле означает все доступные для привязки ноды
Default location, Default size, Default image Необязательные ID из каталога провайдера для предварительного выбора в мастере создания ВМ. Если ID неизвестны, оставьте поля пустыми и выберите значения при создании
  1. Нажмите Create connector. Это сохраняет подключение, но не заказывает ВМ.
  2. Откройте сохранённый аккаунт из списка интеграций или Nodes > Providers. Проверьте синхронизацию, ресурсы нужного аккаунта/команды и доступные финансовые данные. Неизвестный баланс не равен нулю.
  3. Чтобы создать ноду, нажмите Create VM, выберите роль, имя, локацию, ОС и размер. Проверьте конфигурацию и цену в Review node, затем нажмите Confirm and create VM — это уже платный заказ. Дождитесь создания ВМ, установки демона и появления ноды онлайн.
  4. Для изменения настроек откройте меню аккаунта Configure, пройдите мастер и нажмите Save. При редактировании оставьте поле замены учётных данных пустым, чтобы сохранить прежний секрет.

Если Add connector недоступна, нужны права Opfield на администрирование хостинг-интеграций. Для Create VM дополнительно нужны права создания нод и ресурсов выбранного аккаунта, а также возможность создания у провайдера.

Управление облачными серверами одного проекта через API-токен. Hetzner Robot и выделенные серверы не поддерживаются.

Настройка Hetzner Cloud
  1. В Hetzner Console выберите нужный облачный проект и откройте Security > API Tokens > Generate API Token.
  2. Задайте имя. Выберите Read только для просмотра или Read & Write для создания ВМ, питания, изменения размера, фаервола и снапшотов. Отдельных прав по операциям, как в DigitalOcean, здесь нет.
  3. Создайте токен и сразу скопируйте секрет для следующего шага.

Ограничьте доступ отдельным проектом. Текущий коннектор Opfield не позволяет заменить токен проекта Hetzner на месте: создайте новый коннектор и явно согласуйте зависимые ресурсы перед удалением прежнего. Дополнительного права для баланса нет: интеграция не предоставляет API баланса аккаунта.

Источник: настройка API Hetzner Cloud.

  1. Откройте Settings > Integrations, в блоке Hosting нажмите Add connector.
  2. На шаге Connection выберите Provider → Hetzner Cloud и задайте Connector name, например Hetzner production. API origin заполняется автоматически: https://api.hetzner.cloud; менять его не нужно.
  3. В API token вставьте секрет созданного токена. Нажмите Test Connection. При сообщении Connected with limited permissions проверьте недостающие права по таблице выше; успешная авторизация не означает доступность всех операций.
  4. Нажмите Continue. На шаге Settings настройте параметры ниже.
Поле Что указать
Automatic sync Включить плановое обновление ресурсов провайдера
Sync interval (seconds) Интервал от 60 до 86400 секунд
Automatic adoption Автоматическая привязка существующих нод только при однозначном подтверждении идентичности
Node scope Необязательные UUID нод Opfield через запятую для ограничения автоматической привязки. Не ID ВМ провайдера; пустое поле означает все доступные для привязки ноды
Default location, Default size, Default image Необязательные ID из каталога провайдера для предварительного выбора в мастере создания ВМ. Если ID неизвестны, оставьте поля пустыми и выберите значения при создании
  1. Нажмите Create connector. Это сохраняет подключение, но не заказывает ВМ.
  2. Откройте сохранённый аккаунт из списка интеграций или Nodes > Providers. Проверьте синхронизацию, ресурсы нужного проекта и доступные финансовые данные. Неизвестный баланс не равен нулю.
  3. Чтобы создать ноду, нажмите Create VM, выберите роль, имя, локацию, ОС и размер. Проверьте конфигурацию и цену в Review node, затем нажмите Confirm and create VM — это уже платный заказ. Дождитесь создания ВМ, установки демона и появления ноды онлайн.
  4. Для изменения настроек откройте меню аккаунта Configure, пройдите мастер и нажмите Save. Для замены токена Hetzner создайте новый коннектор: поле токена существующего коннектора недоступно.

Если Add connector недоступна, нужны права Opfield на администрирование хостинг-интеграций. Для Create VM дополнительно нужны права создания нод и ресурсов выбранного аккаунта, а также возможность создания у провайдера.

Заказ и управление ВМ через API-ключ аккаунта Invapi. Ключ отдельного сервера не подходит для заказа новых ВМ.

Настройка HOSTKEY
  1. Войдите в Invapi, откройте API keys и создайте именованный ключ клиента/аккаунта. Ключ отдельного сервера не подходит для заказа других ВМ и чтения финансов аккаунта.
  2. Если ограничиваете IP, укажите внешний адрес исходящих соединений сервера Opfield и включите ключ. Это не адрес браузера, из которого вы настраиваете интеграцию.
  3. Сразу скопируйте оригинальный секрет. После создания интерфейс может показывать только хеш; он не подходит для авторизации Opfield. Если создание ключа для аккаунта недоступно, сначала уточните условия доступа у HOSTKEY.

У ключей HOSTKEY нет строк прав в формате DigitalOcean. Границы задаются типом ключа и ограничением IP; доступ уровня аккаунта может разрешать платные заказы. Не передавайте такой ключ пользователям, которым нужны только операции с существующей нодой Opfield.

Источник: авторизация и ключи API HOSTKEY.

  1. Откройте Settings > Integrations, в блоке Hosting нажмите Add connector.
  2. На шаге Connection выберите Provider → HOSTKEY и задайте Connector name, например HOSTKEY production. API origin заполняется автоматически: https://invapi.hostkey.com; менять его не нужно.
  3. В API key вставьте оригинальный API-ключ Invapi, не хеш и не временный токен сессии. Нажмите Test Connection. При сообщении Connected with limited permissions проверьте недостающие права по таблице выше; успешная авторизация не означает доступность всех операций.
  4. Нажмите Continue. На шаге Settings настройте параметры ниже.
Поле Что указать
Automatic sync Включить плановое обновление ресурсов провайдера
Sync interval (seconds) Интервал от 60 до 86400 секунд
Automatic adoption Автоматическая привязка существующих нод только при однозначном подтверждении идентичности
Node scope Необязательные UUID нод Opfield через запятую для ограничения автоматической привязки. Не ID ВМ провайдера; пустое поле означает все доступные для привязки ноды
Default location, Default size, Default image Необязательные ID из каталога провайдера для предварительного выбора в мастере создания ВМ. Если ID неизвестны, оставьте поля пустыми и выберите значения при создании
  1. Нажмите Create connector. Это сохраняет подключение, но не заказывает ВМ.
  2. Откройте сохранённый аккаунт из списка интеграций или Nodes > Providers. Проверьте синхронизацию, ресурсы нужного аккаунта и доступные финансовые данные. Неизвестный баланс не равен нулю.
  3. Чтобы создать ноду, нажмите Create VM, выберите роль, имя, локацию, ОС и размер. Проверьте конфигурацию и цену в Review node, затем нажмите Confirm and create VM — это уже платный заказ. Дождитесь создания ВМ, установки демона и появления ноды онлайн.
  4. Для изменения настроек откройте меню аккаунта Configure, пройдите мастер и нажмите Save. При редактировании оставьте поле замены учётных данных пустым, чтобы сохранить прежний секрет.

Если Add connector недоступна, нужны права Opfield на администрирование хостинг-интеграций. Для Create VM дополнительно нужны права создания нод и ресурсов выбранного аккаунта, а также возможность создания у провайдера.

Создание и управление облачными серверами CloudBlast, их фаерволами и резервными копиями через API-токен аккаунта. На новые серверы Opfield устанавливает свой демон по SSH.

Настройка CloudBlast
  1. Войдите в консоль CloudBlast и откройте Account Settings → API.
  2. Создайте токен с отдельным именем и скопируйте его для следующего шага.

Токен действует от имени всего аккаунта и может заказывать платные серверы. Не передавайте его пользователям, которым нужны только операции с существующей нодой Opfield.

  1. Откройте Settings > Integrations, в блоке Hosting нажмите Add connector.
  2. На шаге Connection выберите Provider → CloudBlast и задайте Connector name, например CloudBlast production. API origin заполняется автоматически: https://console.cloudblast.io; менять его не нужно.
  3. Вставьте токен в API token и нажмите Test Connection.
  4. Нажмите Continue. На шаге Settings настройте Automatic sync, Sync interval (seconds), Automatic adoption, Node scope и необязательные значения по умолчанию так же, как для других провайдеров.
  5. Нажмите Create connector. Это сохраняет подключение, но не заказывает сервер.
  6. Откройте сохранённый аккаунт из списка интеграций или Nodes > Providers. Проверьте синхронизацию, ресурсы, баланс аккаунта в евро и счета.
  7. Чтобы создать ноду, нажмите Create VM, выберите роль, имя, локацию, ОС и тариф. CloudBlast предлагает тарифы x86-64; Opfield показывает его шаблоны Ubuntu и Debian. Проверьте конфигурацию и цену, затем нажмите Confirm and create VM — это уже платный заказ.
  8. Для изменения настроек откройте меню аккаунта Configure. Оставьте поле токена пустым, чтобы сохранить прежний токен.

У CloudBlast нет пользовательских данных для первого запуска, поэтому Opfield устанавливает демон по SSH. Для каждого заказа он создаёт одноразовый SSH-ключ, регистрирует его открытую часть в аккаунте CloudBlast и создаёт сервер с этим ключом. Затем подключается как root, закрепляет ключ хоста сервера при первом подключении, запускает установщик ноды, а после этого удаляет ключ из аккаунта и с сервера. Закрытый ключ хранится только в зашифрованном виде вместе с операцией и удаляется по её завершении.

CloudBlast не сообщает через API, где находится сервер, поэтому Opfield показывает локацию, выбранную при создании. Смена тарифа через API CloudBlast недоступна, поэтому изменение размера не предлагается.

  1. Откройте Nodes > Add Node и выберите создание у провайдера либо создайте ВМ со страницы учётной записи.
  2. Выберите роль, имя, учётную запись, локацию, совместимую ОС и ресурсы ВМ.
  3. Проверьте конфигурацию и доступную оценку цены, затем подтвердите заказ один раз.
  4. Следите за созданием ВМ, установкой, регистрацией и готовностью роли.

Работающая ВМ не обязательно означает доступную ноду Opfield. Дождитесь демона и возможностей его роли. См. Добавление первой ноды и Роли нод.

Если ВМ создалась, но установка завершилась ошибкой, операция показывает последние строки вывода установщика без токенов регистрации. Используйте Retry installation в этой операции вместо нового заказа. Установка по SSH, прерванная перезапуском Opfield, отправляется повторно один раз. Удаление сервера, установка на котором оставила ожидающую ноду, удаляет и эту ноду. Неоднозначный ответ провайдера сначала нужно согласовать с его фактическим состоянием. Для установки на существующую ВМ нужен поддерживаемый канал Guest Agent либо доверенное SSH-подключение именно к этой ВМ. Совпадения VMID или IP недостаточно для автоматической привязки.

  • Питание и размер: действия зависят от состояния провайдера, прав и возможностей ресурса. Диски Proxmox можно увеличивать, но не уменьшать.
  • Фаервол: вкладка доступна только для поддерживаемых ресурсов: DigitalOcean, CloudBlast и Proxmox. В Proxmox участие сетевого интерфейса и включение фаервола ВМ — отдельные настройки; также важны фаервол кластера и права токена. Opfield не включает фаервол кластера за вас.
  • Снапшоты: у поддерживаемых ресурсов Proxmox, DigitalOcean, Hetzner и CloudBlast на странице ноды доступны создание, удаление, восстановление и папки. В CloudBlast снапшоты — это резервные копии всего диска сервера у провайдера, которые восстанавливаются на месте; имя может быть не длиннее 40 символов. Для создания выключать ВМ не нужно. Proxmox позволяет включить RAM работающей ВМ и управляет остановкой и запуском при восстановлении; для других интеграций Opfield сейчас требует остановленную ВМ перед восстановлением. HOSTKEY не заявлен как провайдер снапшотов.
  • Стоимость и согласованность: хранение снапшотов может быть платным. Таблица показывает оценку стоимости, если она доступна; прочерк означает неизвестный размер или цену. Снапшот ВМ не заменяет согласованную резервную копию базы данных и может не включать подключённые тома.

Создание, удаление и восстановление снапшотов нельзя выполнять одновременно с конфликтующими операциями над ВМ. Восстановление заменяет данные; проверьте выбранный снапшот перед подтверждением.

Права хостинга дополняют доступ к привязанной ноде, а не открывают скрытую ноду. Просмотр ресурсов аккаунта, действия с ВМ, администрирование коннектора и финансы — отдельные разрешения. Ограничьте создание нужными аккаунтами и провайдерами, а действия — нужными нодами и ресурсами. Для создания ноды у провайдера также нужно право создания нод. API-токены и разрешения OAuth или MCP могут выполнять действия хостинга, если содержат соответствующие области integrations:hosting:* и hosting:*, — всегда в пределах текущих прав владельца. Согласие OAuth по умолчанию оставляет невыбранными администрирование коннектора, создание и удаление ВМ, восстановление снапшота и пополнение депозита; см. Области доступа и токены.

Настройте уведомления об изменении питания ВМ, сбоях операций, синхронизации и порогах баланса там, где они поддерживаются. Для денежных правил нужны доступ к финансам и явная валюта. Устаревшие данные провайдера не означают успешную операцию или нулевой баланс.

Удаление ноды из Opfield не равно уничтожению ВМ. Перед удалением проверьте зависимости и выбранное действие провайдера. При сбоях сохраняйте запись операции и проверяйте ошибки провайдера, права токена, совместимость образа, ёмкость и связь для регистрации перед повторной попыткой.