Был ли у вас опыт работы с инструментами HashiCorp?

«Был ли у вас опыт работы с инструментами HashiCorp?» — вопрос из категории Terraform, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я работал с основной триадой HashiCorp для управления инфраструктурой и безопасностью.

1. Terraform (Infrastructure as Code): Использовал для провижининга облачных ресурсов в AWS. Писал модульные конфигурации для соблюдения принципа DRY.

# Модуль для создания безопасной VPC
module "network" {
  source = "./modules/aws-vpc"
  env_name = "production"
  cidr_block = "10.0.0.0/16"
  public_subnet_cidrs = ["10.0.1.0/24", "10.0.2.0/24"]
}

# Создание EKS кластера в этой VPC
resource "aws_eks_cluster" "main" {
  name     = "app-cluster"
  role_arn = aws_iam_role.eks_cluster.arn
  vpc_config {
    subnet_ids = module.network.private_subnet_ids
  }
  depends_on = [module.network]
}

Практики: Работа с workspaces для разных окружений (dev/stage/prod), использование remote state (хранил в S3 с блокировкой через DynamoDB), планирование изменений через terraform plan перед применением.

2. Vault: Настраивал для динамического управления секретами. Например, вместо статических паролей, приложение в Kubernetes получало временные учетные данные для доступа к БД через механизм Database Secrets Engine.

3. Consul: Использовал для service discovery и health checks в гибридном окружении (часть сервисов в K8s, часть на ВМ). Consul Template автоматически обновлял конфигурацию Nginx при изменении состава инстансов сервиса.