"""Развернуть сервер под клиента: выбрать регион и систему, поднять, отдать доступы. Пример под перепродажу хостинга. Тариф собирается из требований, а не берётся из готового списка, так что можно продавать любую конфигурацию. """ import sys from regcloud_api import RegCloud, ValidationError api = RegCloud() CPU, RAM, DISK, LINE = 2, 4, 60, "hp" REGION = "openstack-msk1" OS = "ubuntu-24-04-amd64" size = RegCloud.make_size(CPU, RAM, DISK, LINE) # проверит сочетание сам print("тариф:", size, api.size_info(size)) available = {i.get("slug") for i in api.distributions()} if OS not in available: print(f"системы {OS} нет, доступны:", ", ".join(sorted(available)[:8])) sys.exit(1) try: srv = api.create_server(size=size, image=OS, name=api.random_name(), region=REGION) except ValidationError as exc: print("платформа не приняла заказ:", exc) sys.exit(1) info = api.wait_active(srv["id"]) print(f"готово. сервер {info['id']}, адрес {RegCloud.ip_of(info)}") print("пароль root приходит на почту, либо задайте ssh-ключ при создании")