Начало работы
Быстрый старт
Используйте эту страницу, когда нужен кратчайший надёжный путь от access token до созданной виртуальной машины ZennoHosting. Сценарий остаётся на уровне workflow и ссылается на generated reference там, где нужна точная форма схем.
Предварительные условия
- Рабочий API token, уже выпущенный в аккаунтной части ZennoHosting.
Клиент, который умеет отправлять HTTPS-запросы с заголовком
Authorization.- Права на чтение live-каталогов образов и тарифов до сборки payload для VM.
Проверка подключения
Когда токен уже получен, начните с безопасного read-запроса. Он подтверждает корректность base URL и bearer-заголовка до того, как вы начнёте готовить проект и VM.
curl --request GET \
--url 'https://api.zennohosting.com/projects' \
--header 'Authorization: Bearer <token>' \
--header 'Accept: application/json'
- 1
Получите рабочий access token
Выпустите токен в аккаунтном flow ZennoHosting, затем сохраните его в runtime клиента или secret store.
- 2
Проверьте доступ безопасным read-запросом
Вызовите
GET /projects, чтобы убедиться, что API принимает base URL и bearer-заголовок до подготовки provisioning inputs. - 3
Получите доступные provisioning inputs
Сначала прочитайте configurations, images и VM tariffs. Если при создании VM вы хотите новый public IP, отдельно определите и тариф для public IP, а не переиспользуйте VM tariff.
- 4
Создайте проект
Проекты определяют scope для VM, SSH-ключей, сетей и public IP. Создайте проект до любых дочерних ресурсов и переиспользуйте его идентификатор в следующих вызовах.
- 5
Подготовьте параметры доступа
Решите, будет ли VM получать raw
sshPublicKeysпрямо в запросе создания или использовать существующие project-levelsshKeyIds. Если вам нужна backup-related automation при provisioning, заранее решите, передавать лиplugins. - 6
Создайте VM
Отправьте запрос создания VM с образом, VM tariff, именем и параметрами доступа. При необходимости в том же payload можно описать стратегию public IP, тариф public IP, подключения к private network и plugins.
- 7
Сразу сохраните пароль, если он вернулся
Ответ на создание VM может содержать пароль, который показывается только один раз. Если он есть, сохраните его немедленно, потому что API не следует рассматривать как место для повторного получения этого значения.
- 8
Читайте VM, пока её состояние не станет пригодным
Создание VM асинхронно. Воспринимайте
202 AcceptedиcommandIdтолько как подтверждение приёма работы, затем читайте VM-resource и проверяйте необходимыеoperationStatusиbootStatus.
Ожидаемый результат
После завершения сценария у вас должен быть рабочий токен, идентификатор проекта, идентификатор VM, итоговые параметры доступа и подтверждённое состояние VM, а не просто принятая команда.
Типичные проблемы
Используйте идентификаторы из live-ответов API, а не скопированные значения из примеров. Большинство ошибок при
первом provisioning возникают из-за устаревших projectId, imageId или tariffId,
а также из-за предположения, что VM уже готова сразу после 202 Accepted.
Связанные endpoint
/configurationsПолучить доступные профили конфигураций VM.
/imagesПолучить идентификаторы образов для provisioning.
/tariffsПолучить идентификаторы тарифов, применимых к VM.
/projectsСоздать проект, который будет владеть VM.
/projects/{projectId}/vmsСоздать саму виртуальную машину.
/projects/{projectId}/vms/{vmId}Получить VM-resource и проверить operation и boot state.