В этой статье, описано, как осуществлять операцию Rescue, с помощью API.
Использование Rescue
Чтобы запустить процесс Rescue для instance, выполняем запрос такого формата:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Пример значения | Обязательный параметр | Описание значения |
func | instances.fleio.rescue | Да | Функция для использования Boot from ISO |
auth | 21fc199...c43f71 | Нет | Токен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь |
out | json | Да | Тип ответа, который ожидать |
sok | ok | Да | Подтверждение операции |
elid | 5203773 | Да | ID instance |
select_boot | f8f2573f-56c4-44c5-8469-84eee4aa64e7 | Да | UUID образа, который планируем использовать |
password | MyPassword1 | Нет | Пароль доступа к серверу, в режиме Rescue. Рекомендуется устанавливать, чтобы иметь доступ к серверу |
zone | pub | Да | Тип зоны, где находится изображение. Доступные параметры: «own», «pub». |
Пример перехода Instance в режим Boot From ISO
Для примера, используем услугу:
и загрузим следующий образ:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Значение |
func | instances.fleio.rescue |
auth | 21fc199...c43f71 |
out | json |
sok | ok |
elid | 5203773 |
select_boot_from_iso | f8f2573f-56c4-44c5-8469-84eee4aa64e7 |
zone | pub |
password | MyPassword1 |
Вот пример запроса, который можно выполнить из консоли:
curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.rescue"' \
--form 'auth="43137b5f35a6ba4ee01f4a4e"' \
--form 'out="json"' \
--form 'elid="5203773"' \
--form 'sok="ok"' \
--form 'select_boot="f8f2573f-56c4-44c5-8469-84eee4aa64e7"' \
--form 'password="MyPassword1"' \
--form 'zone="pub"'
После выполнения запроса, видим, что instance перешел в режим «Rescue». Подтверждением этого, является результат на фото:
Также, если не передавать параметр sok, будет выполнен запрос в режиме предпросмотра. Выполнив данный запрос, можно получить доступные image, для перехода в rescue из выбранного image. Для примера, выполним следующий запрос, но без переданного параметра «sok»:
curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.rescue"' \
--form 'auth="43137b5f35a6ba4ee01f4a4e"' \
--form 'out="json"' \
--form 'elid="5203773"'
Получаем следующий ответ:
{
"doc": {
...
"slist": [
{
"$name": "zone",
"val": [
{
"$key": "pub",
"$": "pub"
},
{
"$key": "own",
"$": "own"
}
]
},
{
"$name": "select_boot",
"val": [
{
"$depend": "pub",
"$key": "f8f2573f-56c4-44c5-8469-84eee4aa64e7",
"$": "Ubuntu 22.04"
},
{
"$depend": "pub",
"$key": "0bf4deb2-855c-4863-8518-6006d804adbb",
"$": "Debian 10"
},
{
"$depend": "pub",
"$key": "18d0ee2e-4d57-4f40-9b56-03c1773b5831",
"$": "AlmaLinux 8"
},
{
"$depend": "pub",
"$key": "1d9dda4c-34b0-4304-a90a-8f3018722fa2",
"$": "Rocky-Linux-8"
},
{
"$depend": "pub",
"$key": "2af0af94-0e6e-4ef3-8837-d41fdbfa3564",
"$": "Windows Server 2016"
},
{
"$depend": "pub",
"$key": "3010ae60-0185-4021-98da-f50013147ebd",
"$": "Debian 11"
},
{
"$depend": "pub",
"$key": "479c96f1-ccc6-47a2-952c-c9e3bbdc8d07",
"$": "Ubuntu 20.04"
},
{
"$depend": "pub",
"$key": "5da4ad83-45f6-4c0e-9a7e-7a7c18b2be6c",
"$": "AlmaLinux 9"
},
{
"$depend": "pub",
"$key": "7d7911e3-7178-4f36-a308-d841db5fe654",
"$": "CentOS Stream 9"
},
{
"$depend": "pub",
"$key": "92fabac2-69cc-46ad-8439-c377e0c90632",
"$": "Ubuntu 23.04"
},
{
"$depend": "pub",
"$key": "93878ba5-6b9e-4924-a4be-34edb623f808",
"$": "Debian 12"
},
{
"$depend": "pub",
"$key": "a8b7bcb3-6698-4264-b413-f2b866a46a70",
"$": "Rocky-Linux-9"
},
{
"$depend": "pub",
"$key": "b10434c0-d839-428f-a919-cac733fd6552",
"$": "Windows Server 2019"
},
{
"$depend": "pub",
"$key": "bda2467e-e192-4e4e-becc-cda2e71b9767",
"$": "Windows Server 2022"
},
{
"$depend": "own",
"$name": "foo",
"$key": "a9e7c223-5f11-4546-a298-6af546bebde6",
"$": "Centos 9 x64"
},
]
}
],
}
}
Проанализировав данную структуру ответа, полученные интересующие данные находятся в следующей вложенности:
doc.slist.[]
Как видим, нам доступны изображения:
UUID | Нзвание Image | Навзание OS | Область видимости |
f8f2573f-56c4-44c5-8469-84eee4aa64e7 | - | Ubuntu 22.04 | pub |
0bf4deb2-855c-4863-8518-6006d804adbb | - | Debian 10 | pub |
18d0ee2e-4d57-4f40-9b56-03c1773b5831 | - | AlmaLinux 8 | pub |
1d9dda4c-34b0-4304-a90a-8f3018722fa2 | - | Rocky-Linux-8 | pub |
2af0af94-0e6e-4ef3-8837-d41fdbfa3564 | - | Windows Server 2016 | pub |
3010ae60-0185-4021-98da-f50013147ebd | - | Debian 11 | pub |
479c96f1-ccc6-47a2-952c-c9e3bbdc8d07 | - | Ubuntu 20.04 | pub |
5da4ad83-45f6-4c0e-9a7e-7a7c18b2be6c | - | AlmaLinux 9 | pub |
7d7911e3-7178-4f36-a308-d841db5fe654 | - | CentOS Stream 9 | pub |
92fabac2-69cc-46ad-8439-c377e0c90632 | - | Ubuntu 23.04 | pub |
93878ba5-6b9e-4924-a4be-34edb623f808 | - | Debian 12 | pub |
a8b7bcb3-6698-4264-b413-f2b866a46a70 | - | Rocky-Linux-9 | pub |
b10434c0-d839-428f-a919-cac733fd6552 | - | Windows Server 2019 | pub |
bda2467e-e192-4e4e-becc-cda2e71b9767 | - | Windows Server 2022 | pub |
a9e7c223-5f11-4546-a298-6af546bebde6 | foo | Centos 9 x64 | own |
Image с модификатором доступа «pub» доступен всем пользователям. Зато с «own» - доступен только владельцу image.
Также, для выхода из режима «Rescue» выполняем следующий API запрос, следующего формата:
URL:
https://api.zomro.com/
Метод: POST
Тело запроса(Form-data):
Параметр | Пример значения | Обязательный параметр | Описание значения |
func | instances.fleio.unrescue | Да | Функция, для выхода из режима «Rescue» |
auth | 21fc199...c43f71 | Нет | Токен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь |
out | json | Да | Тип ответа, который ожидать |
elid | 5203773 | Да | ID instance |
Как отключить режим «Rescue»
Для примера, отключим режим «Rescue» для Instance с ID 5203773.
Попробуем выполнить следующий запрос в консоли:
curl --location 'https://api.zomro.com/' \
--form 'func="instances.fleio.unrescue"' \
--form 'auth="0b31d69ab7b7b4839dfd6506"' \
--form 'out="json"' \
--form 'elid="5203773"'
После выполнения запроса, видим, что услуга активна:
Также предлагаем изучить статьи, которые могут быть полезными для взаимодействия с продуктами Cloud VPS с помощью API:
- API - Создание услуги
- API - Получение информации о доступных тарифах и их параметрах
- API - Операция Start & Stop
- API - Операция Reboot
- API - Операция Rebuild
- API - Операция Delete
- API - Взаимодействие с Image
- API - Взаимодействие с Backup Schedule
- API - Взаимодействие с Backup
- API - Взаимодействие с Snapshots
- API - Взаимодействие с Boot From ISO