Основы управления состоянием
Разберитесь в понятии состояния Terraform, узнайте, почему оно важно для отслеживания развёрнутых ресурсов, и научитесь управлять локальным файлом состояния.
«Основы управления состоянием» — бесплатный урок Terraform Infrastructure as Code на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Terraform Infrastructure as Code, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Terraform Infrastructure as Code содержит 4 уроков всего.
Что такое состояние Terraform?
Состояние Terraform подобно памяти вашей инфраструктуры. Это снимок ресурсов, которыми управляет Terraform.
Представьте его как важную базу данных, которая отслеживает, что Terraform создал и настроил в реальном мире (у вашего облачного провайдера).
Почему состояние важно
Состояние необходимо, поскольку оно позволяет Terraform:
- Сопоставлять ресурсы: определять, какому блоку ресурса в конфигурации соответствует конкретный реальный облачный ресурс.
- Отслеживать метаданные: хранить атрибуты ресурсов, отсутствующие в конфигурации, например идентификаторы или IP-адреса.
- Планировать изменения: сравнивать желаемое состояние (вашу конфигурацию) с текущим состоянием (файлом состояния), чтобы определить, какие ресурсы нужно создать, обновить или уничтожить.
Роль состояния в рабочем процессе
Когда вы выполняете команду terraform apply, Terraform сначала просматривает ваши файлы .tf, чтобы понять, чего вы хотите. Затем он обращается к файлу состояния, чтобы проверить, что существует сейчас.
Сравнивая эти два источника, Terraform формирует «план» достижения желаемой конфигурации инфраструктуры. После применения изменений он обновляет файл состояния, отражая новую действительность.
Знакомство с `terraform.tfstate`
По умолчанию Terraform хранит состояние локально в файле с именем terraform.tfstate в рабочем каталоге.
Этот файл представляет собой документ JSON, содержащий подробное сопоставление вашей конфигурации с реальными ресурсами.
Наш первый ресурс
Используем простой ресурс null_resource, чтобы увидеть, как создается состояние. Этот ресурс ничего не создает в облаке, но Terraform по-прежнему отслеживает его.
Сохраните это содержимое в файл main.tf:
resource "null_resource" "my_example" {
triggers = {
always_run = timestamp()
}
}Создание файла состояния
Сначала инициализируйте Terraform, а затем примените конфигурацию, чтобы создать ресурс и файл terraform.tfstate.
Выполните эти команды в терминале:
terraform init
terraform apply --auto-approveСписок ресурсов состояния
После завершения команды apply у вас появится файл terraform.tfstate. Его содержимое можно проверить с помощью команд Terraform CLI.
Используйте команду terraform state list, чтобы просмотреть все ресурсы, отслеживаемые в состоянии:
terraform state listПросмотр сведений о ресурсе
Чтобы получить подробную информацию о конкретном ресурсе из файла состояния, используйте команду terraform state show, указав адрес ресурса.
Попробуйте выполнить её для нашего ресурса null_resource:
terraform state show null_resource.my_exampleНе редактируйте состояние вручную!
Файл terraform.tfstate имеет критическое значение и сложную структуру. Никогда не редактируйте его вручную напрямую.
Ручное редактирование может повредить состояние и привести к следующим последствиям:
- Несогласованная инфраструктура.
- Terraform перестанет отслеживать ресурсы.
- Неожиданное удаление или создание ресурсов.
Всегда используйте команды Terraform CLI (например, terraform state mv) для изменения состояния.
Проверка управления состоянием
Какие из следующих утверждений о состоянии Terraform верны?
Итоги управления состоянием
На этом уроке мы изучили состояние Terraform — важнейший компонент для отслеживания инфраструктуры.
- Мы узнали, что состояние сопоставляет конфигурацию с реальными ресурсами.
- Локальный файл состояния называется
terraform.tfstate. - Такие команды, как
terraform state listиterraform state show, помогают проверять состояние. - Никогда не редактируйте файл состояния вручную, чтобы избежать повреждения.
Понимание состояния — основа эффективного использования Terraform!
Изучай Terraform Infrastructure as Code с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Основы управления состоянием» бесплатный?
Да — полный текст урока «Основы управления состоянием» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Terraform Infrastructure as Code, подпишись на CoddyKit PRO. Курс Terraform Infrastructure as Code содержит 4 уроков всего.
Чему я научусь в уроке «Основы управления состоянием»?
Разберитесь в понятии состояния Terraform, узнайте, почему оно важно для отслеживания развёрнутых ресурсов, и научитесь управлять локальным файлом состояния. Ты практикуешь Terraform Infrastructure as Code с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Terraform Infrastructure as Code?
Предыдущий опыт не требуется. Terraform Infrastructure as Code на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Основы управления состоянием»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Terraform Infrastructure as Code?
Да. Каждый урок Terraform Infrastructure as Code включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Поставщики и ресурсы
- Переменные и выходные значения
- Основы управления состоянием
- Модули и повторное использование кода