У цій статті описано, як здійснювати операцію 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