Secrets & configuration management
Тема дорожной карты · DevOps Engineer
Управление конфигурацией значит: каждое значение, которое приложение читает из окружения — строки подключения к БД, ключи API, feature-флаги, уровни логирования — приходит из централизованного, версионируемого, аудируемого источника, а не зашито в образ или скопировано на хосты вручную. Несекретный конфиг живёт в Git или в config-сервисе; секреты — в выделенном vault'e (Vault, AWS Secrets Manager, Sealed Secrets) и инжектятся в runtime, никогда не попадая в логи. Правило 12-Factor «config in environment» — стартовая точка.
Как это работает
Secrets & configuration management (Infrastructure as Code) — описание серверов, сетей, баз данных и Kubernetes-кластеров в декларативных конфиг-файлах, версионируемых в Git. Terraform (HashiCorp) читает HCL-файлы, общается с API провайдеров (AWS, GCP, Yandex Cloud, Kubernetes) и поддерживает state-файл, маппящий объявленные ресурсы на реальные ID. Ansible (Red Hat) выполняет идемпотентные playbooks по SSH для конфигурации машин. Packer строит golden images; Pulumi/CDKTF дают ту же декларативную модель на языках общего назначения. Результат — инфраструктура воспроизводимая, проходящая code review и допускающая rollback.
Когда применять
Внедряйте Secrets & configuration management как только у вас больше 2–3 серверов или появилось production-окружение. Ручной ClickOps небезопасен на масштабе: нет audit trail, нет review, нет rollback. Terraform подходит для долгоживущих cloud-ресурсов (VPC, базы данных, managed Kubernetes); Ansible — для изменяемой конфигурации на существующих хостах (security patches, user accounts). Комбинируйте: Terraform provisions VM, Ansible конфигурирует её. Для самого Kubernetes предпочтите GitOps (Argo CD, Flux) запуску kubectl apply из Terraform.
Типичные ошибки
Ловушки IaC: коммит tfstate в Git (содержит секреты — используйте S3/Yandex Object Storage backend с locking); монолитные root-модули (разбейте по окружению/сервису); terraform apply с ноутбука вместо CI (нет audit trail); Ansible playbooks, которые не идемпотентны (второй запуск ломает); plaintext-секреты в HCL/YAML (используйте sops, Vault или external secret stores); игнорирование drift между кодом и реальным cloud-состоянием. Запускайте terraform plan в CI на каждом PR.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…