Установка и настройка провайдера
Подробное руководство по установке провайдера microsrv: официальный реестр OpenTofu, сетевые и OCI-зеркала, параметры аутентификации и data-источники.
Подключение провайдера
Провайдер microsrv опубликован и верифицирован в официальном открытом реестре OpenTofu Registry под именем:
microsrv-cloud/microsrv
Полный идентификатор провайдера: registry.opentofu.org/microsrv-cloud/microsrv.
Варианты установки
1. Официальный реестр (рекомендуемый способ)
Для большинства инсталляций достаточно указать источник провайдера в блоке required_providers:
terraform {
required_version = ">= 1.6.0"
required_providers {
microsrv = {
source = "microsrv-cloud/microsrv"
# Версию можно опустить для загрузки последней стабильной сборки,
# либо зафиксировать диапазон:
# version = "~> 1.0"
}
}
}
При запуске tofu init OpenTofu автоматически скачивает бинарный файл, проверяет цифровую подпись GPG (ключ Microsrv Releases <releases@microsrv.ru>, отпечаток 1EE5DF70…626C19FB) и записывает криптографические хэши в .terraform.lock.hcl.
2. Сетевое зеркало (GitHub Pages)
Если прямой доступ к registry.opentofu.org заблокирован корпоративным фаерволом или нестабилен, используйте официальное сетевое зеркало на GitHub Pages в стандартном формате Provider Network Mirror:
https://microsrv-cloud.github.io/terraform-provider-microsrv/
Чтобы настроить OpenTofu на использование зеркала, создайте или отредактируйте файл ~/.tofurc (или файл, путь к которому указан в переменной TF_CLI_CONFIG_FILE):
provider_installation {
network_mirror {
url = "https://microsrv-cloud.github.io/terraform-provider-microsrv/"
include = ["registry.opentofu.org/microsrv-cloud/microsrv"]
}
direct {
exclude = ["registry.opentofu.org/microsrv-cloud/microsrv"]
}
}
После настройки зеркала вы продолжаете использовать стандартный блок source = "microsrv-cloud/microsrv". Зеркало обновляется автоматически при каждом релизе.
3. OCI-зеркало (GitHub Packages / GHCR)
Каждый релиз провайдера публикуется в реестре контейнеров GitHub Container Registry в виде OCI-артефакта (требуется OpenTofu >= 1.7, для анонимной загрузки без авторизации — OpenTofu >= 1.13):
ghcr.io/microsrv-cloud/terraform-provider-microsrv:<версия>
Конфигурация в ~/.tofurc:
provider_installation {
oci_mirror {
repository_template = "ghcr.io/microsrv-cloud/terraform-provider-microsrv"
include = ["registry.opentofu.org/microsrv-cloud/microsrv"]
}
direct {
exclude = ["registry.opentofu.org/microsrv-cloud/microsrv"]
}
}
[!NOTE] При использовании пользовательских зеркал OpenTofu сохраняет контрольные суммы в
.terraform.lock.hclтолько для текущей операционной системы. Если вашей инфраструктурой управляет команда на разных платформах (Linux, macOS, Windows), выполните генерацию мультиплатформенного замка:tofu providers lock -platform=linux_amd64 -platform=linux_arm64 -platform=darwin_arm64 -platform=darwin_amd64
Аутентификация и параметры провайдера
Провайдер поддерживает настройку как через аргументы HCL-блока provider "microsrv", так и через переменные окружения:
provider "microsrv" {
# URL API шлюза (по умолчанию: https://api.microsrv.ru)
endpoint = "https://api.microsrv.ru"
# Токен доступа (PAT) с префиксом sel_
token = var.microsrv_token
}
| Параметр блока | Переменная окружения | По умолчанию | Описание |
|---|---|---|---|
endpoint |
MICROSRV_ENDPOINT |
https://api.microsrv.ru |
Базовый URL API плоскости управления |
token |
MICROSRV_TOKEN |
— | Персональный токен доступа (sel_…) |
api_key |
MICROSRV_API_KEY |
— | Псевдоним для параметра token (взаимоисключающий с token) |
[!TIP] Рекомендуемый подход для локальной разработки и CI/CD — не указывать токен в коде HCL, а передавать его через переменную окружения
export MICROSRV_TOKEN="sel_...". В этом случае блок провайдера остаётся пустым:provider "microsrv" {}
Data-источники для обнаружения параметров
Провайдер предоставляет набор data-источников для динамического получения идентификаторов регионов, конфигураций оборудования (flavor) и базовых образов ОС без жесткой привязки строковых ID.
1. Регионы (microsrv_regions и microsrv_region)
# Получение списка всех доступных регионов
data "microsrv_regions" "all" {}
# Поиск конкретного региона по символьному коду
data "microsrv_region" "central" {
code = "ru-yndx-central"
}
output "primary_region_id" {
value = data.microsrv_region.central.id
}
2. Конфигурации ресурсов (microsrv_flavors и microsrv_flavor)
Пресеты ресурсов определяют количество vCPU и объём RAM для виртуальных машин и контейнеров:
# Получение списка всех доступных конфигураций
data "microsrv_flavors" "all" {}
# Поиск конкретной конфигурации:
# - Для виртуальных машин: std.1c2g, std.2c4g, std.4c8g (требуется >= 1 vCPU / 2 GiB RAM)
# - Для контейнеров: micro.1c512m, std.1c2g, std.2c4g
data "microsrv_flavor" "std" {
code = "std.1c2g"
}
data "microsrv_flavor" "micro" {
code = "micro.1c512m"
}
3. Образы операционных систем (microsrv_images и microsrv_image)
Базовые дистрибутивы для создания загрузочных томов виртуальных машин:
# Поиск образа Ubuntu 24.04 LTS (Noble Numbat)
data "microsrv_image" "ubuntu" {
code = "ubuntu-noble"
}
4. Проекты, квоты и биллинг
# Поиск существующего проекта по имени
data "microsrv_project" "existing" {
name = "production"
}
# Текущие квоты активного проекта
data "microsrv_quotas" "current" {}
# Актуальная сетка тарификации
data "microsrv_pricing" "rates" {}