Ответ
Да, я использовал Terraform для управления инфраструктурой как код (IaC) в нескольких проектах. Основной опыт связан с провайдерами AWS и GCP.
Примеры задач:
- Создание модульных конфигураций для виртуальных машин, сетей (VPC, подсети, security groups), балансировщиков нагрузки и баз данных (RDS, Cloud SQL).
- Рефакторинг монолитных конфигураций в переиспользуемые модули для командной работы.
- Управление состоянием (state) через Terraform Cloud с блокировками и историей изменений.
- Интеграция с CI/CD (GitLab CI) для автоматического планирования и применения изменений после code review.
Пример создания EC2-инстанса в AWS:
resource "aws_instance" "app_server" {
ami = data.aws_ami.ubuntu.id
instance_type = "t3.micro"
subnet_id = module.vpc.public_subnets[0]
tags = {
Name = "AppServer-${var.environment}"
Environment = var.environment
}
}
Используемые практики: модульная структура, remote state в S3 с блокировкой через DynamoDB, использование workspaces для разделения сред (dev/stage/prod), валидация кода с terraform validate и tflint.