Заказ сервера OpenStack (через API)
Чтобы заказать сервер на базе OpenStack:
- Создайте сервисный аккаунт.
- Создайте API-ключ.
- Для выполнения API-запросов получите сессионный токен.
- Для заказа сервера (instance) выполните POST-запрос согласно примеру:
curl -sS -X POST 'https://api.t1.cloud/order-service/api/v1/projects/<ID_ПРОЕКТА>/compute/instances' -H 'accept: application/json' -H 'Content-Type: application/json' -H "Authorization: <ТОКЕН>" -d '
{"order":
{"project_name":"<ID_ПРОЕКТА>","product_id":"e6fa78c9-2ee1-4f9e-b86c-5d7246f38526",
"attrs":{
// Имя сервера
"name":"testvm",
// ID и имя образа сервера. Подробнее см. раздел https://t1-cloud.ru/docs/article/api/znacheniya-parametrov-v-api#obraz-servera
"image":{
"id":"cf85e269-d367-4296-b07a-a1031f128a01",
"name":"AltLinux10SP"},
// Конфигурация сервера. Подробнее см. раздел https://t1-cloud.ru/docs/article/api/znacheniya-parametrov-v-api#konfiguraciya-servera
"flavor":{
"id":"490c6661-878d-4f21-bcc4-f1837d93273b",
// Объём оперативной памяти в МБ
"ram":2048,
// Имя конфигурации - https://kb.t1-cloud.ru/pages/viewpage.action?pageId=4527319
"name":"b4.medium.2",
// Количество процессоров
"vcpus":1},
// Регион расположения сервера. Как получить список всех регионов - https://swagger.t1.cloud/?urls.primaryName=Compute#/regions/get_regions_api_v1_regions_get
"region":{
"id":"0c530dd3-eaae-4216-8f9d-9b5710a7cc30",
"name":"ru-central1",
// Описание сервера
"description":""},
// SSH-ключ для подключения к серверу. Как получить список SSH-ключей в текущем проекте - https://swagger.t1.cloud/?urls.primaryName=PortalBack#/ssh_keys/getV2ProjectsProjectNameSshKeys
// SSH-ключ не указывается, если настройки сервера указываются в сценарии cloud-init (в атрибуте "user_data")
"ssh_keys":["b5dba483-b46e-4d7f-9278-1e4fec84b6cb"],"description":"",
"volumes_config":{
// Системный диск
"boot_volume":{
// Размер диска в ГБ
"size":4,
// ID, имя, тип диска. Подробнее см. раздел https://t1-cloud.ru/docs/article/api/znacheniya-parametrov-v-api#tip-diska
"volume_type":{
"id":"bcd198cb-a231-4f78-bce6-e165ef458d16",
"name":"dorado-sp01",
"extra_specs":{
"disk_type":"High cluster 1",
"max_read_iops":15000,
"max_write_iops":5000}}},
// Дополнительный диск (если нужен)
"extra_volumes":[{
"name":"dopdisk",
// Размер диска в ГБ
"size":5,
// ID, имя, тип диска. Подробнее см. раздел https://t1-cloud.ru/docs/article/api/znacheniya-parametrov-v-api#tip-diska
"volume_type":{
"id":"cb4724f6-e53e-4632-ac78-f83c4332add3",
"name":"ceph_hdd",
"extra_specs":{
"disk_type":"Light",
"max_read_iops":500,
"max_write_iops":300}}}]},
// Группы безопасности (правила, контролирующие входящий и исходящий трафик сервера), можно указать несколько групп.
// Как получить список всех групп безопасности - https://swagger.t1.cloud/?urls.primaryName=VPC#/security%20groups/get_security_groups_api_v1_projects__project_name__security_groups_get
"security_groups":[{
"id":"cef79960-4845-41b3-a4de-1b46c0849796",
"name":"default"}],
// Зона доступности (ЦОД), в которой будет находиться сервер.
// Как получить список всех зон доступности - https://swagger.t1.cloud/?urls.primaryName=Compute#/availability%20zones/get_availability_zones_api_v1_availability_zones_get
"availability_zone":{
"id":"d3p1k01",
"name":"ru-central1-a",
"description":""},
"network_configuration":{
// Сеть, к которой будет подключен сервер.
// Как получить список всех сетей - https://swagger.t1.cloud/?urls.primaryName=VPC#/networks/get_networks_api_v1_projects__project_name__networks_get
"network":{
"id":"9e807a6f-02d6-4523-89c0-fcc8778f39b8"},
// Подсеть, к которой будет подключен сервер.
// Как получить список всех подсетей сети - https://swagger.t1.cloud/?urls.primaryName=VPC#/subnets/get_subnets_api_v1_projects__project_name__subnets_get
"subnet":{
"id":"ec2e4a65-8e09-43f7-8355-64ca0ec7e83b",
"cidr":"10.128.0.0/24",
"name":"default-ru-central1-a"},
// IP-адрес сетевого интерфейса. Если установлено false, параметр "requested_ip" не указывается
"set_ip_address":true,
"requested_ip":"10.128.0.199"},
// Если публичный IP-адрес не нужен, удалите связанные с ним строки.
// В параметре "add_public_ip" укажите true, если серверу нужно присвоить публичный IP-адрес, указанный в параметре "floating_ip_address"
"add_public_ip":true,
// В параметре "create_public_ip" укажите true, чтобы серверу автоматически присвоился IP-адрес из пула свободных публичных IP-адресов
"create_public_ip":false,
// # Как получить список всех IP-адресов - https://swagger.t1.cloud/?urls.primaryName=VPC#/ip-addresses/get_ip_addresses_api_v1_projects__project_name__subnets__subnet_id__ip_addresses_get
"public_ip":{
"item_id":"1c54e3cd-0b6d-4f01-a0b4-dade1888bd00",
"order_id":"cd4275f4-e121-4d1f-b796-e8b0c079de23",
"floating_ip_address":"80.85.250.149"},
// Правило размещения сервера среди гипервизоров. Подробнее см. раздел https://t1-cloud.ru/docs/article/api/znacheniya-parametrov-v-api#politika-razmeshcheniya-servera
// Если политику размещения указывать не нужно, удалите связанные с ней строки.
"add_placement_policy":true,
"placement_policy":{
"item_id":"90f65e4b-03c8-44c1-9056-b0b913631672",
"order_id":"09b4ed8d-2868-41f6-b1cb-fcd62da68a00"}},
// Передать сценарий настройки сервера можно с помощью cloud-init (в атрибуте "add_user_data").
// Подробнее см. раздел https://t1-cloud.ru/docs/article/cloud-engine-openstack/cloud-compute/zakaz-servera
"add_user_data":false,
"count":1}}'
где:
<ID_ПРОЕКТА> — идентификатор проекта.
Где посмотреть идентификатор проекта?- Щёлкните на текущий контекст. Подробнее см. раздел Выбор организации, папки или проекта.
- Выберите организацию.
- В списке найдите нужный проект. Идентификатор проекта указан в столбце Идентификатор.
- <ТОКЕН> — сессионный токен, полученный в шаге 3.
Мы ответили на ваш вопрос?