REG.RU
Статус: доступен · пакет wg-flow-plugin-regru 0.1.0 · провайдер regru · категория cloud.
Плагин ходит в REG.API2 и отдаёт в инвентарь домены, DNS, виртуальный хостинг и VPS/выделенные серверы из кабинета REG.RU. Логин и пароль остаются в YAML агента.
В кабинете REG.RU нужно включить API и разрешить IP агента. Иначе health вернёт ACCESS_DENIED_FROM_IP.
Плагин шлёт только чтение: nop, service/get_list, zone/get_resource_records. service/get_details не вызывается: у хостинга в ответе пароль панели, у домена — контактные данные.
Облачные серверы cloud.reg.ru — отдельный плагин REG.RU Cloud (CloudVPS API). SSL, парковка, web-forwarding и лицензии в 0.1.0 не собираются.
Установка
Агент должен быть подключён к API.
docker compose exec agent wg-flow-agent plugin install regru
# или
wg-flow-agent plugin install regruДальше — локальный UI → Connections → regru или YAML.
Что попадает в инвентарь
| Объект REG.RU | resource_type | Заметки |
|---|---|---|
| Домен | domain | provider_resource_id = имя в нижнем регистре. A → active, N → pending, S / D / O → stopped |
| Hostname из A / AAAA / CNAME | domain | дочерние FQDN вроде docs.example.ru. Apex, * и _label как поддомен не дублируются |
| DNS-запись | dns | Стабильный id из зоны, типа, имени и значения. У REG.RU нет id записи |
Хостинг srv_hosting_* | hosting | hosting:{service_id}. Тариф — metadata.plan |
VPS srv_vps* и выделенный srv_dedicated* | server | server:{service_id} |
Зона, которой REG.RU не управляет, пропускается. Остальные домены этого source собираются. Ошибка всего get_list или всего запроса зон роняет source: частичный снимок не уходит, reconcile не гасит аккаунт.
В кабинете домены группируются по apex, как у SpaceWeb.
Куски сбора можно выключить отдельно. Выключенный кусок не попадает в следующий успешный sync, и инвентарь помечает эти строки неактивными.
Срок
expiration_date пишется в metadata.expires_at (YYYY-MM-DD). 0000-00-00 не пишется. Цены продления в get_list нет, поэтому billing_amount плагин не ставит. Сами алерты и тарифы он не создаёт.
YAML
plugins:
regru:
enabled: true
sources:
- id: account
provider_account: "regru-main"
sync_interval_seconds: 300
url: "https://api.reg.ru/api/regru2"
username: "account@example.com"
password: "…"
collect_domains: true
collect_dns: true
collect_hosting: true
collect_servers: trueНесколько кабинетов — несколько sources.
Поля source
| Поле | Обязательно | Описание |
|---|---|---|
id | да | Ключ в логах (regru/account) |
provider_account | да | Метка аккаунта в инвентаре |
url | нет | По умолчанию https://api.reg.ru/api/regru2 |
username / password | да | Логин кабинета и пароль API; password маскируется в UI |
collect_domains / collect_dns / collect_hosting / collect_servers | нет | true по умолчанию |
sync_interval_seconds | нет | Минимум 300 |
Проверка
wg-flow-agent status
wg-flow-agent dry-runВ JSON — provider: regru. Health дергает nop (логин не пишется в инвентарь).
Частые ошибки
| Симптом | Что проверить |
|---|---|
PASSWORD_AUTH_FAILED | логин и пароль API, не пароль от почты, если в кабинете задан отдельный |
ACCESS_DENIED_FROM_IP | IP агента в белом списке API |
| Пустой DNS у домена | зона обслуживается не в REG.RU — это нормально, домен всё равно попадает в инвентарь |
| Дубли с Cloudflare / SpaceWeb | разные provider — нормально; слияние в кабинете |