Skip to content

Cloud.ru ​

Статус: доступен · пакет wg-flow-plugin-cloudru 0.1.0 · провайдер cloudru · категория cloud.

Плагин читает один проект Cloud.ru Evolution. В инвентарь попадают виртуальные машины, диски, подсети, клиентские VPC, публичные IP, группы безопасности и сетевые балансировщики. Секрет остаётся в YAML агента.

Агент меняет ключ доступа (Key ID и Key Secret) на IAM-токен и ходит с Authorization: Bearer. Токен живёт час, агент запрашивает новый сам. Подойдёт ключ сервисного аккаунта или персональный ключ доступа.

Один source — один проект. Идентификатор проекта копируется в консоли. Ключу нужно право читать этот проект.

Плагин только читает API. Платформа Cloud.ru Advanced этим плагином не покрывается.

Bare Metal, образы, бэкапы, группы размещения, SNAT-шлюзы, Managed Kubernetes, управляемые базы, Object Storage и DNS в 0.1.0 не читаются. Адреса консолей в инвентарь не копируются. Технические подсети, сервисные VPC и уже удалённые балансировщики пропускаются. Если API VPC или балансировщика отвечает 403 или 404, этот список пустой и source не падает. Ошибка любого другого списка роняет весь source: частичный снимок не отправляется.

Установка ​

Агент должен быть подключён к API.

bash
docker compose exec agent wg-flow-agent plugin install cloudru
# или
wg-flow-agent plugin install cloudru

Дальше — локальный UI → Connections → cloudru или YAML.

Ключ создаётся в консоли Cloud.ru: сервисный аккаунт → ключ доступа, либо персональный ключ в профиле. Key Secret показывается один раз. Обмен описан в документации Cloud.ru.

Что попадает в инвентарь ​

Объект Evolutionresource_typeЗаметки
Виртуальная машинаinstanceprovider_resource_id = instance:{id}. running → active, stopped → stopped, error* → error, переходные состояния → pending. Регион — зона (ru.AZ-1). Прямой публичный IP или floating → metadata.primary_ipv4, внутренние адреса → metadata.private_ips. vCPU, память и доля ядра — cpu_cores, mem_gb, core_fraction (1:1 → 100, 1:3 → 30, 1:10 → 10). Если диски собираются в том же запуске, размер загрузочного диска пишется в disk_gb
Дискstoragedisk:{id}. available, in_use и reserved → active. Размер уже в гигабайтах: metadata.disk_gb и metadata.size_gb
Подсетьnetworksubnet:{id}, metadata.product = subnet. CIDR в metadata.ip_ranges. Типы technical и zone_technical пропускаются
VPCnetworknetwork:{id}, metadata.product = network. Сервисные VPC пропускаются
Публичный IPnetworkaddress:{id}. metadata.product = public_ip. Адрес в metadata.primary_ipv4
Группа безопасностиfirewallfirewall:{id}. В metadata только rule_count, не сами правила
Сетевой балансировщикload_balancernlb:{id}. NLB_STATUS_RUNNING → active, NLB_STATUS_SUSPENDED → stopped. Удалённый балансировщик пропускается

Отдельного типа ip в инвентаре нет, поэтому публичный адрес — это network.

Куски сбора можно выключить отдельно. Выключенный кусок не запрашивается и не попадает в следующий успешный sync, и инвентарь помечает эти строки неактивными. disk_gb у машины появляется только когда сбор дисков включён.

Несколько проектов — несколько sources. provider_account — ваша метка.

YAML ​

yaml
plugins:
  cloudru:
    enabled: true
    sources:
      - id: prod
        provider_account: "cloudru-prod"
        sync_interval_seconds: 300
        project_id: "496e40f7-cc4b-4fa4-b42a-8cd2c9360716"
        key_id: "…"
        secret: "…"
        collect_instances: true
        collect_disks: true
        collect_networks: true
        collect_addresses: true
        collect_firewalls: true
        collect_load_balancers: true

Поля source ​

ПолеОбязательноОписание
idдаКлюч в логах (cloudru/prod)
provider_accountдаМетка проекта в инвентаре
project_idдаUUID проекта
key_idдаKey ID ключа доступа
secretдаKey Secret
collect_*нетПо умолчанию true
sync_interval_secondsнетМинимум 300

Проверка ​

bash
wg-flow-agent status
wg-flow-agent dry-run

В JSON provider: cloudru. Health получает IAM-токен и вызывает список ВМ с limit=1. Ключ и токен в инвентарь не пишутся.

Частые ошибки ​

СимптомЧто проверить
401Key ID и Key Secret от одного ключа доступа. API-ключ (Authorization: Api-Key) сюда не подходит
403 на проектУ сервисного аккаунта есть право читать этот project_id
Пустой список ВМcollect_instances включён и машины лежат в этом проекте Evolution, не в Advanced
Нет disk_gb у машиныcollect_disks выключен, размер диска не запрашивался
Нет VPC или балансировщиковНет доступа к этому API — это не ошибка source
Диски пропали после synccollect_disks выключили; инвентарь гасит пропущенные строки