ГлавнаяРазработчикам
Разработчикам

Инфраструктура как код

i4b проектируется как API-first платформа: помимо личного кабинета — публичный REST API, интерфейс командной строки и Terraform-провайдер. Описывайте ресурсы декларативно, встраивайте их в CI/CD и воспроизводите окружения без ручных действий в панели.

Открыть API — Swagger UI Справочник — ReDoc OpenAPI (JSON)
Интерактивная документация REST API — уже доступна (кнопки выше: Swagger UI и ReDoc генерируются из реальных методов сервиса). Публичный CLI и Terraform-провайдер — в разработке; примеры ниже показывают целевую модель работы, итоговый состав команд и ресурсов уточняется по мере готовности.
REST API

Публичный REST API

Единый программный интерфейс к ресурсам аккаунта: серверы, сети, тома, объектное хранилище, заказы и счета. Аутентификация по токену, JSON-запросы и ответы, понятные коды состояния HTTP.

Аутентификация HTTP
# Токен выпускается в личном кабинете
export I4B_TOKEN="ваш-токен"

curl https://api.i4b.ru/v1/account \
  -H "Authorization: Bearer $I4B_TOKEN"
Создать сервер HTTP
curl -X POST https://api.i4b.ru/v1/servers \
  -H "Authorization: Bearer $I4B_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-01",
    "cpu": 4,
    "ram_gb": 8,
    "disk_gb": 80,
    "location": "msk1"
  }'
Список серверов HTTP
curl https://api.i4b.ru/v1/servers \
  -H "Authorization: Bearer $I4B_TOKEN"
Объектное хранилище S3
# S3-совместимый доступ (aws-cli)
aws --endpoint-url https://s3.i4b.ru \
  s3 cp ./backup.tar.gz s3://my-bucket/
CLI

Интерфейс командной строки

Утилита i4b — тонкая обёртка над REST API для повседневных операций из терминала и скриптов. Одна авторизация, дальше — управление ресурсами командами.

Вход и контекст shell
# Разовая авторизация в аккаунте
i4b auth login

# Проверить, кто вы и какие площадки доступны
i4b account whoami
i4b location list
Управление серверами shell
i4b server create \
  --name web-01 --cpu 4 --ram 8 \
  --disk 80 --location msk1

i4b server list
i4b server reboot web-01
i4b server delete web-01
Terraform

Terraform-провайдер

Описывайте инфраструктуру декларативно и держите её в системе контроля версий. Провайдер синхронизирует состояние ресурсов i4b с вашими .tf-файлами — plan покажет изменения до применения.

Подключение провайдера HCL
terraform {
  required_providers {
    i4b = {
      source = "i4b/i4b"
    }
  }
}

provider "i4b" {
  token = var.i4b_token
}
Ресурс сервера HCL
resource "i4b_server" "web" {
  name     = "web-01"
  cpu      = 4
  ram_gb   = 8
  disk_gb  = 80
  location = "msk1"
}

output "ip" {
  value = i4b_server.web.ipv4
}
Применение shell
# Инициализация, предпросмотр изменений и применение
terraform init
terraform plan
terraform apply
cloud-init

Первичная настройка при старте

Задавайте начальную конфигурацию виртуальной машины через cloud-init: пакеты, пользователи, SSH-ключи, команды запуска. Настройка применяется автоматически при первом старте — без ручного входа на сервер.

user-data YAML
#cloud-config
package_update: true
packages:
  - docker.io
  - git

users:
  - name: deploy
    sudo: ALL=(ALL) NOPASSWD:ALL
    ssh_authorized_keys:
      - ssh-ed25519 AAAA... you@laptop

runcmd:
  - systemctl enable --now docker
Тот же user-data можно передать через API, CLI или поле cloud_init Terraform-ресурса — окружение станет полностью воспроизводимым из кода.

Хотите ранний доступ к API?

Расскажите, какие сценарии автоматизации вам важны — учтём при развитии API, CLI и Terraform-провайдера и позовём в раннее тестирование.