Клиент дописан до всех двадцати семи эндпоинтов платформы. Добавлено: - регионы, образы с разбивкой на системы и готовые сборки, вторая версия API образов - все действия над сервером: старт, стоп, перезагрузка, переустановка, смена тарифа, клонирование, откат, консоль, бэкапы - снимки целиком, включая ожидание готовности и поиск поднятых из них серверов - ключи доступа, IP-адреса с обратными записями, приватные сети, kubeconfig - история операций, биллинг, расход в час и в сутки - сборка и проверка slug тарифа по правилам платформы - ошибки разложены по смыслу, чтобы ловить прицельно Claude-Session: https://claude.ai/code/session_01Loz5stgQZH6ofBdMqTxiJu
26 строки
1.1 KiB
Python
26 строки
1.1 KiB
Python
"""Эталонный образ: настроить машину один раз, снять снимок, дальше клонировать.
|
|
|
|
Так разворачивание клиента занимает минуты вместо часа настройки.
|
|
"""
|
|
from regcloud_api import RegCloud
|
|
|
|
api = RegCloud()
|
|
REGION = "openstack-msk1"
|
|
SIZE = "c2-m4-d60-hp"
|
|
|
|
srv = api.create_server(size=SIZE, image="ubuntu-24-04-amd64", name="golden", region=REGION)
|
|
info = api.wait_active(srv["id"])
|
|
print("настраивайте машину по адресу", RegCloud.ip_of(info))
|
|
input("нажмите Enter, когда закончите...")
|
|
|
|
api.snapshot(srv["id"], "golden-v1", offline=True)
|
|
snap = api.wait_snapshot("golden-v1")
|
|
print("снимок готов:", snap["id"], snap.get("size_gigabytes"), "ГБ")
|
|
|
|
api.destroy_server(srv["id"])
|
|
print("эталон удалён, снимок остался")
|
|
|
|
for n in range(1, 4):
|
|
copy = api.create_server(size=SIZE, image=snap["id"], name=f"client-{n:02d}", region=REGION)
|
|
print("поднял копию", copy["id"])
|