Инфраструктура как код — это подход к управлению конфигурацией через declarative описание желаемого состояния системы. При таком подходе каждое изменение фиксируется в репозитории, а применяется автоматически средствами CI/CD. Это исключает ситуацию, когда сервер работает 'как у меня на ноутбуке', а на production ведет себя иначе.

Ansible использует playbooks для последовательного применения ролей к целевым хостам, а Terraform описывает ресурсы в HCL и гарантирует их создание в соответствии с state файлом. Оба инструмента ценят за способность восстанавливать инфраструктуру с нуля при её уничтожении. Это обеспечивает быструю recovery after failure.

Ключевая особенность immutability — после деплоя исходный конфиг не меняется. Любые ad-hoc команды оборачиваются тем, что через время конфигурация отклоняется от того, что описано в коде. Чтобы предотвратить несанкционированные изменения, на продакшне ставят chattr +i на критические файлы. Это делает невозможным редактирование без явного снятия атрибута.

CI/CD pipelines интегрируют проверку инфраструктуры на каждом пулл-рекесте. При merge запускаются валидаторы, которые сравнивают план изменений с текущим состоянием. Это дает обратную связь до попадания кода в production. Any uncaught drift обнаруживается на стадии тестирования, а не в midst работы сервисов.

#ftops #devops #linux #freebsd #sre #инфраструктура