Terraform — это инструмент Infrastructure as Code (IaC): он позволяет описывать инфраструктуру в коде и разворачивать её автоматически. Вместо ручной настройки серверов, сетей и облачных сервисов вы создаёте .tf-файлы, а Terraform приводит окружение к нужному состоянию.
Что такое провайдер
Провайдер — это плагин, через который Terraform работает с конкретной платформой: AWS, Yandex Cloud, Azure, Google Cloud, Docker, GitHub и др.
Именно провайдер знает, как создать виртуальную машину, сеть, DNS-запись или контейнер в выбранной системе.
terraform {
required_providers {
local = {
source = "hashicorp/local"
version = "~> 2.0"
}
}
}
provider "local" {}
Что такое ресурс
Ресурс — это конкретный объект инфраструктуры, которым управляет Terraform: файл, сервер, база данных, сеть, bucket и т.д.
resource "local_file" "example" {
filename = "hello.txt"
content = "Hello, Terraform!"
}
Здесь Terraform создаст файл hello.txt с указанным содержимым.
Как работает Terraform на практике
Базовый процесс обычно такой:
terraform init— инициализация проекта и загрузка провайдеровterraform plan— просмотр плана измененийterraform apply— применение измененийterraform destroy— удаление созданных ресурсов
Это помогает избежать неожиданных изменений: сначала вы видите, что именно будет создано или удалено, и только потом подтверждаете выполнение.
Почему это важно новичкам
- повторяемость — одинаковая инфраструктура в dev, test и prod
- контроль версий — код можно хранить в Git 📦
- меньше ручных ошибок
- быстрый запуск новых окружений
На что обратить внимание в начале
- Начинайте с простых провайдеров:
local,docker - Изучите синтаксис HCL — это основной язык Terraform
- Не редактируйте созданные ресурсы вручную, иначе появится drift
- Храните
terraform.tfstateаккуратно: это файл состояния, по которому Terraform понимает, чем управляет 🔐
Минимальная структура первого проекта
terraform {
required_providers {
local = {
source = "hashicorp/local"
}
}
}
provider "local" {}
resource "local_file" "readme" {
filename = "readme.txt"
content = "Мой первый ресурс в Terraform"
}
Terraform для начинающих — это лучший способ понять, как работает современная автоматизация инфраструктуры. Освоив провайдеры, ресурсы, init, plan и apply, вы уже сможете собирать простые, но полезные сценарии для локальной среды и облака 🛠️
Заодно загляните в подборку каналов про IT — там много полезного по DevOps, облакам, автоматизации и разработке 📚