Terraform или Ansible: что учить первым для работы
Нужно подготовить новое окружение: создать машины, настроить сеть, установить пакеты и запустить приложение. В советах встречаются сразу Terraform и Ansible, причём оба обещают автоматизацию. Возникает ощущение, что это два конкурирующих курса об одном и том же. Удобнее разделить работу на конкретные операции.
Если окружения приходится создавать заново
Представьте тестовый стенд, который каждый раз собирают через интерфейс облака. Кто-то выбирает размер машины, создаёт сеть и выдаёт доступ. Через месяц трудно вспомнить, какие параметры отличались от предыдущего стенда. Здесь полезно описание инфраструктуры в коде и проверка планируемых изменений перед применением.
Это естественная точка входа в Terraform или OpenTofu. В обучении важны ресурсы, провайдеры и зависимости, но особенно — работа с состоянием. Нужно понимать, как инструмент сопоставляет описание и существующие ресурсы, где хранится state и кто может одновременно менять окружение.
В программе Terraform и OpenTofu есть HCL, plan, state, модули, импорт и проверки в CI. Практическая цель — описывать окружение так, чтобы коллега мог понять изменение до его применения. Для облачных упражнений понадобятся собственный аккаунт и бюджет на ресурсы; это стоит учесть заранее.
Если серверы уже есть, а настройки расходятся
На одной машине установлен пакет, на другой забыли обновить конфигурацию, на третьей сервис запущен от другого пользователя. Ручной список команд постепенно перестаёт быть надёжной инструкцией. Здесь полезен Ansible: inventory описывает управляемые машины, а playbook — действия и требуемое состояние.
Главное упражнение — применить настройку повторно и разобраться, что изменилось. Затем добавить ещё одну машину и проверить результат на ней. Так становится видно, какие параметры общие, какие зависят от окружения и где в автоматизации спряталась ручная предпосылка.
Курс Ansible включает inventory, playbooks, роли, шаблоны, переменные и поэтапное обновление сервиса. Перед стартом полезно уметь подключаться по SSH, работать с Linux и читать YAML. Если команды на отдельной машине пока непонятны, сначала разберите их вручную: автоматизация не объяснит назначение незнакомого параметра.
Когда нужны оба инструмента
В одном проекте могут быть и создание инфраструктуры, и настройка её содержимого. Граница зависит от архитектуры и выбранных инструментов. Важно заранее определить, какой процесс отвечает за каждое изменение: иначе два механизма начнут перезаписывать один и тот же результат.
Поэтому покупать два курса одновременно необязательно. Если работа начинается с уже существующего Linux-сервера, первым результатом может стать повторяемая настройка через Ansible. Если приходится выдавать новые окружения, начать разумно с Terraform/OpenTofu. Второй инструмент добавляйте под следующую операцию.
Как проверить выбор на своей задаче
Опишите последний ручной запуск окружения в трёх строках: что создали, что настроили внутри, как убедились в работоспособности. Затем выделите шаг, который чаще всего забывают или делают по-разному. Именно его и стоит принести в учебный проект.
Сравните программу Terraform/OpenTofu и программу Ansible с этим списком. А если вся цепочка пока незнакома, базовый DevOps-курс связывает инфраструктуру как код и управление конфигурацией с запуском учебного сервиса.
Продолжить на практике
- Terraform и OpenTofu: инфраструктура как код ↗
Описывайте инфраструктуру в коде, проверяйте изменения до применения и работайте со state без сюрпризов. HCL, модули, remote state, импорт, CI и различия Terraform/OpenTofu — на воспроизводимом учебном окружении.
- Ansible: автоматизация инфраструктуры ↗
Настраивайте серверы воспроизводимо: inventory, playbooks, роли, шаблоны и секреты. Соберите автоматизацию для нескольких окружений, проверьте повторный запуск и обновляйте сервисы управляемо.
- DevOps-инженер с нуля: полный курс ↗
Практический курс по DevOps для начинающих: от настройки Linux и сетей до сборки контейнеров, автоматизации в GitLab CI/CD, развёртывания в Kubernetes, мониторинга и восстановления данных на собственном компьютере.
