Инфраструктура · Урок 65

Terraform: инфраструктура как код

Если серверы и облако настраивают руками — окружения «расползаются». Terraform описывает инфраструктуру декларативно: изменения проходят reиvieuw как код и применяются одинаково в любой среде.

Декларативное описание

# main.tf — объявляем «что должно быть», а не «как»
terraform {
  required_providers {
    digitalocean = { source = "digitalocean/droplet", version = "~> 2.0" }
  }
}

resource "digitalocean_droplet" "app" {
  name     = "web"
  region   = "fra1"
  size     = "s-1vcpu-1gb"
  image    = "ubuntu-22-04-x64"
}

Цикл жизни

terraform init      # скачать провайдеры и модули
terraform plan      # показать: что создастся/изменится/удалится
terraform apply     # применить изменения
terraform destroy   # убрать всё, что описано в конфиге
💡
plan — ваш лучший друг: перед apply смотрим диф объявления, как перед git push. Шаг «а что это поменяет?» убирает 90% случайных изменений.

Зачем это команде

ℹ️
Terraform — стандарт, но не единственная система: есть Pulumi (языки программирования) и облачные специфики (CloudFormation). Идея та же: инфраструктура — это код.