Разбор yandex-cloud-install.sh
Что именно делает автоматический скрипт, какие credentials отправляются в OpsMan AI и как откатить настройку.
Yandex Cloud поддерживается с полным набором: биллинг-аккаунт, inventory ресурсов (Compute, Managed Databases, Object Storage, Load Balancer, Managed Kubernetes), метрики утилизации и CVoS-рекомендации.
Подключение состоит из двух частей:
Yandex Cloud существует в двух инсталляциях — российской (ru) и казахстанской (kz). Они независимы: у них разные endpoints, разные валюты биллинга и разные установочные скрипты. При подключении облака в OpsMan AI регион выбирается toggle’ом на шаге 1 модала Connect Cloud (дефолт — ru). Выбор повлияет на:
| Параметр | ru | kz |
|---|---|---|
| S3 endpoint для биллинг-бакета | storage.yandexcloud.net | storage.yandexcloud.kz |
| IAM endpoint | iam.api.cloud.yandex.net | iam.api.yandexcloud.kz |
| Валюта биллинга | RUB | KZT |
Инициализация yc | yc init | yc init --region=kz |
| Установочный скрипт OpsMan | files.opsman.ai/yandex-ru-cloud-install.sh | files.opsman.ai/yandex-kz-cloud-install.sh |
Regional value сохраняется на стороне OpsMan при создании записи облака (clouds.region + clouds.currency). Поменять регион после подключения нельзя — это изменит endpoint’ы, с которыми общается worker-collector. Нужно отключить облако и подключить заново с нужным регионом.
b1g...) и хотя бы один Folder (b1g...) внутри него.dn2...) — обычно создаётся автоматически при регистрации.admin или editor на каталог (для создания SA, бакета, выдачи ролей);billing.accounts.admin на платёжный аккаунт (чтобы выдать billing.accounts.viewer сервисному аккаунту).OpsMan AI публикует bash-скрипт, который делает всё end-to-end: создаёт бакет для биллинг-экспорта, два сервисных аккаунта (для S3 и для API), выдаёт минимально необходимые роли, выпускает ключи и отправляет credentials в OpsMan AI через защищённый callback. От пользователя — одна команда и один ручной шаг в UI Yandex Cloud (включить экспорт биллинга — публичного API для этого нет).
Установите yc CLI и авторизуйтесь через yc init. Если хотите понимать, что делает установщик yc — есть построчный разбор.
Получите TOKEN и CLUSTER в консоли OpsMan AI: Settings → Integrations → Cloud Providers → + Add → Yandex Cloud. Платформа покажет одноразовый токен и идентификатор кластера.
Запустите скрипт. Выберите вариант по региону облака:
Россия (ru):
curl -sSL https://files.opsman.ai/yandex-ru-cloud-install.sh | \ TOKEN="<токен из UI>" CLUSTER="<идентификатор кластера>" bashКазахстан (kz):
curl -sSL https://files.opsman.ai/yandex-kz-cloud-install.sh | \ TOKEN="<токен из UI>" CLUSTER="<идентификатор кластера>" bashВ UI модала Connect Cloud команда уже подставлена с учётом выбранного региона — кнопка Copy отдаст правильный вариант.
Когда скрипт дойдёт до шага «Настройка экспорта биллинга», он откроет в браузере страницу настройки экспорта в Yandex Cloud Console и подскажет, какие поля выбрать (бакет, папка, тип «Поресурсная»). Это единственный шаг, который требует ручного клика — у Yandex Cloud нет публичного API для этого действия.
После завершения OpsMan AI получит callback с credentials, и в течение 5 минут облако появится в Cluster list со статусом active.
| Шаг | Действие | Можно ли пропустить |
|---|---|---|
| 1 | Создаёт бакет finops-billing-export | Да, через env BUCKET_NAME=... |
| 2 | Открывает UI для включения биллинг-экспорта | Нет — это единственный ручной шаг |
| 3 | Создаёт SA finops-bucket-admin + статический S3-ключ | Нет |
| 4 | Создаёт SA finops-api-viewer + JSON-ключ | Нет |
| 5 | Выдаёт роли: storage.editor на каталог, viewer на облако, billing.accounts.viewer на billing | Нет |
| 6 | Сохраняет credentials в finops-radar-credentials.txt | Нет |
| 7 | Отправляет credentials в OpsMan AI (callback) | Да, если запустить без TOKEN |
Полный разбор каждого шага — на странице yandex-cloud-install.sh: что делает скрипт.
yc CLIПодходит, если у вас политика «никаких неподписанных скриптов из интернета», или вы хотите подключать несколько облаков одинаковым набором команд из своего runbook.
Установите yc CLI и выполните yc init. Опционально — прочитайте разбор установочного скрипта yc.
Подготовьте переменные:
export FOLDER_ID=$(yc config get folder-id)export CLOUD_ID=$(yc config get cloud-id)export BILLING_ACCOUNT_ID="<dn2...>" # из консоли Yandex Cloud BillingСоздайте сервисный аккаунт и выдайте роли:
yc iam service-account create --name opsman-readonlySA_ID=$(yc iam service-account get --name opsman-readonly --format json | jq -r .id)
yc resource-manager cloud add-access-binding $CLOUD_ID \ --role viewer --subject serviceAccount:$SA_ID
yc resource-manager cloud add-access-binding $CLOUD_ID \ --role monitoring.viewer --subject serviceAccount:$SA_ID
# billing.accounts.viewer выдаётся через Billing REST APIcurl -X POST \ -H "Authorization: Bearer $(yc iam create-token)" \ -H "Content-Type: application/json" \ -d "{\"accessBindingDeltas\":[{\"action\":\"ADD\",\"accessBinding\":{\"roleId\":\"billing.accounts.viewer\",\"subject\":{\"id\":\"$SA_ID\",\"type\":\"serviceAccount\"}}}]}" \ "https://billing.api.cloud.yandex.net/billing/v1/billingAccounts/${BILLING_ACCOUNT_ID}:updateAccessBindings"Выпустите authorized key:
yc iam key create \ --service-account-name opsman-readonly \ --output opsman-key.jsonНастройте экспорт биллинга в Object Storage (это единственная часть, которую нельзя автоматизировать через API): создайте бакет yc storage bucket create --name finops-billing-export, потом откройте https://center.yandex.cloud/billing/accounts/<BILLING_ACCOUNT_ID>/exports, нажмите «Создать», укажите бакет и папку, тип — «Поресурсная».
Перейдите к разделу Подключение в консоли OpsMan AI и введите credentials вручную.
Самый медленный, но не требует терминала.
В Yandex Cloud Console откройте IAM → Сервисные аккаунты и создайте opsman-readonly.
Откройте созданный SA → Назначить роль и выдайте:
viewer — на каталог (или на облако, если хотите видеть все каталоги);monitoring.viewer — на каталог;billing.accounts.viewer — на платёжный аккаунт (через Billing → Доступ).На вкладке Авторизованные ключи создайте ключ → формат JSON → скачайте файл (больше он не показывается).
Object Storage → создайте бакет finops-billing-export.
Billing → Экспорт → нажмите Создать → выберите бакет, папку (например billing/), тип — Поресурсная, язык — English.
Перейдите к разделу Подключение в консоли OpsMan AI.
Этот шаг нужен только для Вариантов 2 и 3 — в Варианте 1 платформа получает credentials автоматически через callback.
В консоли OpsMan AI откройте Cluster list → Connect Cloud или Settings → Integrations → Cloud Providers → + Add.
Выберите провайдера Yandex Cloud и заполните форму:
| Поле | Значение |
|---|---|
| Display name | Произвольное имя (Production, Sandbox) |
| Billing account ID | dn2xxxxxxxxxxxxxxxxx |
| Cloud ID | b1gxxxxxxxxxxxxxxxxx |
| Authorized key (JSON) | Содержимое JSON-файла ключа opsman-readonly |
| Bucket name | Имя бакета с биллинг-экспортом |
| Bucket prefix | Папка внутри бакета (billing/) |
| S3 access key ID / secret | Из ключа SA с доступом к бакету |
| Region | ru или kz — toggle в верхней части формы. Дефолт ru |
| Currency | RUB для ru / KZT для kz — проставляется автоматически по выбранному региону |
Нажмите Test connection — платформа проверит credentials и покажет список найденных ресурсов.
Нажмите Save.
В течение 5 минут:
В течение часа:
В течение 24 часов:
managed-kubernetes сущность в Resources. Для анализа внутренних подов установите агент metrics-collector по инструкции Kubernetes.object-storage-bucket; для неиспользуемых появляется рекомендация Unused S3 bucket.Yandex Cloud сам тарифицирует ресурсы — стоимость каждого дня поступает из Billing API. Задавать вручную ставки не нужно. Базовая валюта зависит от региона облака:
ru → биллинг приходит в RUBkz → биллинг приходит в KZTЕсли нужен пересчёт в USD / RUB / KZT для визуализации — установите соответствующую валюту в top bar консоли OpsMan AI; биллинг хранится в исходной валюте, пересчёт — визуальный.
Разбор yandex-cloud-install.sh
Что именно делает автоматический скрипт, какие credentials отправляются в OpsMan AI и как откатить настройку.
Разбор yc install.sh
Построчный анализ официального установочного скрипта Yandex Cloud CLI.