Провайдер Terraform

Быстрый старт: Terraform Provider

Несколько шагов до первого terraform apply со Status200.

Требования

  • Terraform >= 1.0
  • Аккаунт Status200 (облако или self-hosted)
  • API key Status200

Шаг 1: API key

Облако

  1. Status200 → вход
  2. SettingsAPI Keys
  3. Create API Key
  4. Имя, например «Terraform Provider»
  5. Нужные permissions
  6. Скопировать ключ

Self-hosted

  1. Ваш инстанс Status200
  2. SettingsAPI Keys
  3. Далее как для облака

Шаг 2: Конфигурация Terraform

Каталог и main.tf:

terraform {
  required_providers {
    status200 = {
      source  = "status200/status200"
      # Облако
      version = "~> 7.0"
      
      # Self-hosted — точная версия
      # version = "= 7.0.123"
    }
  }
  required_version = ">= 1.0"
}

provider "status200" {
  status200_url = "https://status200.ru"
  # Self-hosted:
  # status200_url = "https://status200.yourcompany.com"
  
  api_key = var.status200_api_key
}

variable "status200_api_key" {
  description = "Status200 API Key"
  type        = string
  sensitive   = true
}

# Проекты создаются вручную в dashboard; укажите существующий project ID
variable "project_id" {
  description = "Status200 project ID"
  type        = string
}

resource "status200_monitor" "website" {
  name        = "Website Monitor"
  description = "Monitor for website uptime"
  data        = jsonencode({
    url = "https://example.com"
    interval = "5m"
    timeout = "30s"
  })
}

output "monitor_id" {
  value = status200_monitor.website.id
}

Шаг 3: terraform.tfvars

status200_api_key = "your-api-key-here"
project_id        = "your-project-id-here"

Добавьте terraform.tfvars в .gitignore.

Шаг 4: init и apply

terraform init
terraform plan
terraform apply

Шаг 5: Проверка

В dashboard проекта убедитесь, что монитор создан и работает.

Дальше

  1. Остальные ресурсы — complete-guide
  2. Алерты и каналы уведомлений
  3. Status pages
  4. Команды и права

Версии

Облако

terraform {
  required_providers {
    status200 = {
      source  = "status200/status200"
      version = "~> 7.0"
    }
  }
}

provider "status200" {
  status200_url = "https://status200.ru"
  api_key       = var.status200_api_key
}

Self-hosted (pin)

terraform {
  required_providers {
    status200 = {
      source  = "status200/status200"
      version = "= 7.0.123"
    }
  }
}

provider "status200" {
  status200_url = "https://status200.mycompany.com"
  api_key       = var.status200_api_key
}

Частые проблемы

Provider not found

Error: Failed to query available provider packages

Решение: terraform init

Authentication failed

Error: Invalid API key

Решение: ключ и права в dashboard; верный status200_url

Version mismatch (self-hosted)

Error: API version incompatible

Решение: версия Status200 в dashboard = версия provider; terraform init -upgrade

Удаление

terraform destroy

Удалит ресурсы, созданные в этом quick start.