0Pricing
Terraform Infrastructure as Code · Урок

Использование рабочих пространств для окружений

Изучите рабочие пространства Terraform для управления отдельными состояниями разных окружений (например, разработки, тестирования и продакшена) в рамках одной конфигурации.

«Использование рабочих пространств для окружений» — бесплатный урок Terraform Infrastructure as Code на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Terraform Infrastructure as Code, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Terraform Infrastructure as Code содержит 4 уроков всего.

Что такое рабочие области Terraform?

Рабочие области Terraform помогают управлять несколькими отдельными состояниями для одной и той же конфигурации Terraform. Представляйте их как отдельные среды: «dev», «staging» или «prod».

Это означает, что Вы можете использовать один набор файлов .tf для развёртывания инфраструктуры в разных местах, не изменяя код, что повышает его повторное использование и согласованность.

Рабочая область «default»

При первой инициализации Terraform в каталоге (с помощью terraform init) автоматически используется рабочая область default.

Все начальные операции terraform apply будут сохранять состояние в этой рабочей области default, если Вы не создадите и не выберете другую. Она присутствует всегда!

Создание рабочих областей

Чтобы создать новую среду, используйте команду terraform workspace new. Эта команда также автоматически переключает текущий контекст на только что созданную рабочую область.

Создадим рабочую область dev:

terraform workspace new dev

После этого Terraform создаст отдельное состояние для среды dev.

Просмотр доступных рабочих областей

Вы можете просмотреть все доступные рабочие области в текущем каталоге конфигурации с помощью команды terraform workspace list.

Текущая активная рабочая область будет отмечена звёздочкой (*), что поможет Вам отслеживать различные среды.

terraform workspace list

Переключение рабочих областей

Чтобы переключаться между существующими рабочими областями, используйте команду terraform workspace select, указав после неё имя рабочей области. Эта команда изменяет активную среду.

Переключимся обратно на рабочую область default:

terraform workspace select default

Все последующие операции Terraform теперь будут работать с состоянием среды default.

Использование «terraform.workspace»

Вы можете сделать конфигурации динамическими, обращаясь к имени текущей рабочей области с помощью встроенной переменной terraform.workspace. Это особенно удобно для именования ресурсов или задания тегов, зависящих от среды.

Попробуйте выполнить этот пример. Сначала выполните terraform init, затем terraform workspace new dev и, наконец, terraform apply. Обратите внимание на имя и теги корзины.

provider "aws" {
  region = "us-east-1" # Or your preferred region
}

resource "aws_s3_bucket" "example" {
  bucket = "my-unique-bucket-${terraform.workspace}-12345"
  acl    = "private"

  tags = {
    Environment = terraform.workspace
    ManagedBy   = "CoddyKit"
  }
}

output "bucket_name" {
  description = "Name of the S3 bucket created."
  value       = aws_s3_bucket.example.bucket
}

Изолированные файлы состояния

Самая важная особенность рабочих областей заключается в том, что каждая из них поддерживает собственный полностью отдельный файл состояния.

Это означает, что ресурсы, развёрнутые в рабочей области dev, не будут влиять на ресурсы в рабочей области prod, даже если они определены одними и теми же файлами конфигурации. Terraform управляет этими файлами состояния в скрытом каталоге (.terraform/environments) внутри рабочего каталога.

Удаление рабочих областей

Если среда больше не нужна, Вы можете удалить её рабочую область с помощью команды terraform workspace delete <name>.

  • Важно: Нельзя удалить текущую активную рабочую область.
  • Крайне важно: Перед удалением рабочей области обязательно убедитесь, что уничтожили все связанные с ней ресурсы с помощью terraform destroy. Иначе могут остаться ресурсы, не связанные с управлением!
terraform workspace select default
terraform workspace delete dev

Рабочие области и отдельные каталоги

Рабочие области отлично подходят для небольших вариантов одной и той же конфигурации, но не всегда являются лучшим выбором. Учтите следующее:

  • Рабочие области: Идеальны для небольших различий между средами (например, количества ресурсов или тегов) при использовании одной и той же базовой архитектуры инфраструктуры.
  • Отдельные каталоги: Лучше подходят для существенно различающихся архитектур инфраструктуры или когда разные команды управляют полностью отдельными средами.

Выберите подход, который лучше всего соответствует сложности Вашего проекта и структуре команды.

Проверка рабочих областей

Вы узнали о рабочих областях Terraform. Давайте проверим, насколько хорошо Вы разобрались.

Повторение: рабочие области для сред

Отличная работа! Вы изучили рабочие области Terraform — мощную возможность для управления несколькими средами из одной конфигурации. Запомните основные моменты:

  • Рабочие области предоставляют изолированные файлы состояния для разных сред (например, dev и prod).
  • Используйте terraform workspace new, list и select для управления ими.
  • Переменная terraform.workspace позволяет создавать динамические конфигурации, зависящие от среды.
  • Всегда уничтожайте ресурсы перед удалением рабочей области, чтобы избежать появления неуправляемой инфраструктуры.

Это позволяет гибко и организованно развёртывать инфраструктуру!

Часто задаваемые вопросы

Урок «Использование рабочих пространств для окружений» бесплатный?

Да — полный текст урока «Использование рабочих пространств для окружений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Введение в модули Terraform
  2. Создание повторно используемых модулей
  3. Использование рабочих пространств для окружений
  4. Публикация модулей в реестре
← Назад к Terraform Infrastructure as Code