Руководство
Создание и доступ к VM
Этот workflow покрывает стандартный путь провижининга: создать проект, определить способ передачи SSH-доступа, отправить запрос на создание VM и затем получить сам VM-ресурс для последующих операций.
Создайте проект
Проекты являются родительским scope для VM и большинства ресурсов, которые вы используете дальше.
curl --request POST \
--url 'https://client-api.dc.dev.k8s.zenno.services/projects' \
--header 'X-API-Key: <api-key>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"name": "automation-project"
}'
Подготовьте параметры доступа
Используйте
sshPublicKeys, если клиент уже хранит raw OpenSSH public keys.Используйте
sshKeyIds, если хотите переиспользовать project-level SSH keys.Заранее определите, должна ли VM получить публичный IP при создании через
publicIpMode.
Создайте VM
Пример ниже использует существующие project SSH keys, запрашивает новый public IP и подключает одну приватную сеть. Подстройте payload под свои входные данные.
curl --request POST \
--url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/vms' \
--header 'X-API-Key: <api-key>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"tariffId": "00000000-0000-0000-0000-000000000000",
"imageId": "00000000-0000-0000-0000-000000000000",
"vmName": "worker-01",
"sshKeyIds": [
"00000000-0000-0000-0000-000000000000"
],
"publicIpMode": "New",
"privateNetworkIds": [
"00000000-0000-0000-0000-000000000000"
]
}'
- 1
Получите идентификаторы образа и тарифа
Запросите каталоги images и tariffs до формирования payload, чтобы использовать актуальные идентификаторы.
- 2
Создайте проект и сохраните его идентификатор
Один и тот же
projectIdпотребуется для VM, SSH keys, сетей и backup calls. - 3
Создайте или выберите входные данные SSH-доступа
Либо создайте project SSH keys заранее, либо передайте raw public keys прямо в запросе создания VM.
- 4
Отправьте запрос на создание VM
Ожидайте command-oriented response. После принятия запроса нужно отдельно получить VM-ресурс для проверки operation state и сетевых привязок.
- 5
Получите детали VM
Запросите VM-ресурс, чтобы подтвердить идентификаторы, размеры, интерфейсы и дальнейшие действия.
Ожидаемый результат
В результате вы получаете созданный VM-ресурс, его идентификатор и понятную конфигурацию начального доступа и сетевых параметров, которые были указаны в запросе.
Замечание по реализации
Ответ на создание может содержать commandId и optional password. Для проверки итогового состояния ориентируйтесь на VM-ресурс, а не только на initial response.
Связанные endpoint
/projectsСоздание родительского проекта.
/projects/{projectId}/ssh-keysСоздание project-level SSH key для повторного использования.
/projects/{projectId}/vmsСоздание виртуальной машины.
/projects/{projectId}/vms/{vmId}Получение итогового VM-ресурса.
/projects/{projectId}/vms/{vmId}/ssh-keysПросмотр SSH keys, связанных с VM.