Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Timeweb Cloud API: Полезные скрипты для автоматизации рутины

80
18 минут чтения
Средний рейтинг статьи: 5

API — это программный интерфейс, при помощи которого можно управлять инфраструктурой через код. Вместо того чтобы выполнять множество действий в веб-интерфейсе, всё сводится к вызову одной функции — будь то развертывание сервера или настройка сети. Облачный провайдер Timeweb Cloud обладает мощным API, при помощи которого можно легко автоматизировать различные рутинные задачи при работе с инфраструктурой.

Мы собрали практические скрипты на Python и Bash, которые помогут сэкономить время и избежать человеческих ошибок.

Облачные серверы

Масштабируемые вычислительные ресурсы
по всему миру с почасовой оплатой.

Предварительные требования

Для работы с Timeweb Cloud API нам понадобится:

  • Аккаунт в Timeweb Cloud. Зарегистрировать новый аккаунт можно по ссылке.

  • API-токен, который можно получить в личном кабинете.

Получение API-токена

Прежде чем использовать API, необходимо получить API-токен для аутентификации. Инструкция по получению токена доступна по ссылке.

Подготовка окружения

Прежде чем приступать к запуску скриптов, подготовим окружение для работы. В качестве примера будем использовать дистрибутив Linux Ubuntu.

1) Создаем новую директорию и переходим в нее:

    

2) Проверим, установлен ли интерпретатор языка Python:

    

Image1

Если в ответ команда вернула Command 'python3' not found, то необходимо установить Python вручную. Также дополнительно установим менеджер пакетов pip и виртуальное окружение: 

    

3) Далее создадим виртуальное окружение:

    

И активируем его:

    

4) Установим необходимые зависимости. Для работы с API нам потребуется пакет requests, а также пакет python-dotenv для считывания пар «ключ-значение» из файла .env, в котором мы будем хранить API-токен. Установим зависимости при помощи пакетного менеджера pip:

    

5) Настроим аутентификацию. Для этого в директории проекта создаем скрытый файл .env:

    

Объявляем переменную с именем TIMEWEB_TOKEN, в которой будет храниться наш API-токен, полученный в предыдущем разделе:

    

Image5

При дальнейших запусках скриптов для аутентификации будет использоваться значение из файла .env.

6) Создадим тестовый скрипт, который отобразит баланс на нашем аккаунте. Для этого создаем файл с именем check-balance.py:

    

И используем следующее содержимое:

    

7) Для запуска скрипта используем команду:

    

При успешном ответе API-сервер вернет данные о балансе аккаунта.

Image4

Работа с облачными серверами

Ниже представлены скрипты, которые можно использовать для настройки мониторинга облачных серверов с помощью таких инструментов, как Prometheus и Grafana.

Получение списка тарифов

Получим список всех тарифов для облачных серверов. Актуально при создании серверов с помощью API, так как необходимо знать ID тарифа. Документация по методам. 

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image7

Создание облачного сервера

Создадим облачный сервер на ОС Ubuntu 24.04 со следующими характеристиками: 1 × 3,3 ГГц CPU, 1 ГБ RAM, 15 ГБ NVMe. Скрипт позволит существенно ускорить и упростить создание инфраструктуры. Документация по методам.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image6

Перезагрузка сервера

Создадим скрипт, при помощи которого можно перезапустить облачный сервер. Документация по методам.

В строке url = ... замените 5618281 на свой ID сервера.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image10

Выключение сервера

Скрипт ниже выключит облачный сервер. Документация по методам.

В строке response замените 5700121 на свой ID сервера.

Создаем файл скрипта:

    

Со следующим содержимым:

    

Для запуска используем команду:

    

Image8

Запуск сервера

Скрипт ниже включит облачный сервер. Документация по методам.

В строке response замените 5700121 на свой ID сервера.

Создаем файл скрипта:

    

Его содержимое:

    

Для запуска используем команду:

    

Image13

Получение данных о серверах

Создадим скрипт, который будет отображать данные (ID, имя, статус, ОС, CPU, RAM, диск, IPv4) обо всех используемых серверах. Он будет полезен при наличии большого количества серверов, когда нужно быстро собрать информацию, например, для отчетности.

Документация по методам.

Создаем файл скрипта:

    

Со следующим содержимым:

    

Для запуска используем команду:

    

Image11

Сброс пароля сервера

Создадим скрипт, который сбросит пароль от root-пользователя на сервере с Linux. Документация по методам.

В строке response  замените 5698777 на свой ID сервера.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image12

После выполнения скрипта на электронную почту придет сообщение о том, что пароль был сброшен. Новый пароль будет доступен в панели управления сервером.

Image14

Создание диска сервера

Создадим диск размером 10 ГБ для уже запущенного облачного сервера. Документация по методам.

В строке response замените 5698777 на свой ID сервера.

Создаем файл скрипта:

    

И размещаем в нем следующий код:

    

Для запуска используем команду:

    

Image15

Получение информации о диске сервера

Данный скрипт отобразит подробную информацию о диске сервера, включая его ID, который понадобится для создания резервной копии диска. Документация по методам.

В строке response замените 5842441 на свой ID сервера.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image16

ID диска сервера будет находиться в поле id.

Создание резервной копии диска сервера

Данный скрипт автоматизирует процесс по созданию резервной копии. Для создания резервной копии диска сервера нам необходимо знать ID сервера и ID диска — его мы получили в скрипте выше. Документация по методам.

В строке response замените 5698777 на свой ID сервера, а 22305981 — на ID диска.

Создаем файл скрипта:

    

Сам скрипт:

    

Для запуска используем команду:

    

Image17

Получение информации о домене

Отобразим подробную информацию о домене, зарегистрированном через Timeweb Cloud. Это может быть полезно для бизнес-аналитики, например, для исследования рынка и деятельности конкурентов. Документация по методам.

В строке response вместо next-cloud-test.ru необходимо указать свое доменное имя.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image18

Работа с реестрами контейнеров

Рассмотрим работу с реестрами для хранения образов контейнеров. Готовые реестры можно использовать при настройке CI/CD или при работе с платформой Kubernetes.

Получение списка тарифов реестров

Прежде чем создавать реестр, необходимо получить ID тарифов. Документация по методам.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image19

Создание реестра контейнеров

Создадим новый реестр с тарифом, который включает в себя 5 ГБ места для хранения образов. ID тарифа — 1939, который задается в строке preset_id. Документация по методам.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image20

Работа с хранилищем S3

В облачном хранилище S3 можно размещать любые статические и неструктурированные данные, включая файлы резервных копий, медиа-файлы, логи и т.д.

Получение списка тарифов S3

Для начала получим список тарифов для дальнейшего создания хранилища. Документация по методам.

Создаем файл скрипта:

    
    

Для запуска используем команду:

    

Image21

Создание облачного хранилища

Создадим приватное хранилище с объемом 100 ГБ. Для это используем ID тарифа под номером 473, который зададим в поле preset_id. Документация по методам.

Создаем файл скрипта:

    

 

    

Для запуска используем команду:

    

Image9

Заключение

В данной статье мы рассмотрели несколько скриптов для автоматизации задач при работе с API облачного провайдера Timeweb Cloud. Главная ценность API заключается в гибкости: вы можете комбинировать эти примеры, дорабатывать их под свои конкретные задачи и создавать по-настоящему мощные инструменты для управления инфраструктурой.

80
18 минут чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server