0Pricing
DevOps Bootcamp · Урок

Переменные и выходные значения

Научитесь использовать входные переменные, чтобы сделать конфигурации гибкими и повторно используемыми, а выходные значения — чтобы извлекать важную информацию из развёрнутой инфраструктуры.

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

Гибкие конфигурации

Terraform позволяет описывать инфраструктуру как код. Но что делать, если Вы хотите повторно использовать код для разных окружений или настроек?

Здесь на помощь приходят переменные и выходные значения. Они делают конфигурации гибкими и упрощают управление ими.

Входные переменные: гибкость

Входные переменные работают как параметры конфигураций Terraform. Они позволяют настраивать отдельные аспекты инфраструктуры, не изменяя основной код.

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

Объявление переменных

Входные переменные объявляются в файле .tf, который часто называется variables.tf. Каждой переменной нужно уникальное имя.

Вот простое объявление:

variable "file_content" {
  description = "Content to write to a local file."
  type        = string
}

Типы и значения по умолчанию

Переменные могут иметь разные типы, например string, number, bool, list или map. Также можно указать значение по умолчанию, сделав переменную необязательной.

variable "environment" {
  description = "The deployment environment (e.g., dev, prod)."
  type        = string
  default     = "dev"
}

variable "instance_count" {
  description = "Number of instances."
  type        = number
  default     = 1
}

Использование переменных в коде

После объявления на значение переменной можно ссылаться с помощью префикса var., за которым следует её имя (например, var.environment).

Это позволяет ресурсам адаптироваться к переданным входным данным.

resource "local_file" "example" {
  content  = "Hello from ${var.environment}!"
  filename = "example-${var.environment}.txt"
}

Как передавать значения

Есть несколько способов передать значения переменным:

  • Командная строка: используйте -var="key=value" вместе с terraform plan или apply.
  • Файлы .tfvars: создайте файл, например terraform.tfvars или dev.tfvars.
  • Переменные окружения: используйте TF_VAR_name=value.

Файл terraform.tfvars часто используется для задания значений:

# terraform.tfvars
environment = "staging"
file_content = "This is some custom content."

Выходные значения: извлечение информации

Подобно тому как входные переменные позволяют передавать данные в конфигурацию, выходные значения позволяют извлекать данные из неё.

  • Отображать важную информацию о развернутых ресурсах (например, IP-адреса и URL-адреса).
  • Передавать данные между конфигурациями Terraform, особенно при использовании модулей.
  • Упрощать просмотр того, что было создано с помощью Terraform.

Объявление выходных значений

Выходные значения объявляются в файле .tf, который часто называется outputs.tf. Для каждого выходного значения требуется уникальное имя и аргумент value.

output "file_name" {
  description = "The name of the generated local file."
  value       = local_file.example.filename
}

Просмотр выходных значений

После выполнения команды terraform apply выходные значения можно просмотреть с помощью команды terraform output.

Аргумент value обычно ссылается на атрибут ресурса, например resource_type.resource_name.attribute.

# After 'terraform apply', run:
terraform output file_name

Переменные и выходные значения в действии

Объединим изученные concepts. В этом примере переменные используются для содержимого и окружения, а выходные значения содержат имя и содержимое файла. Создайте эти три файла в одном каталоге:

# main.tf
terraform {
  required_providers {
    local = {
      source = "hashicorp/local"
      version = "~> 2.1"
    }
  }
}

resource "local_file" "message" {
  content  = var.greeting_message
  filename = "hello_${var.env}.txt"
}

# variables.tf
variable "greeting_message" {
  description = "The message content for the file."
  type        = string
  default     = "Hello CoddyKit!"
}

variable "env" {
  description = "Environment name."
  type        = string
  default     = "dev"
}

# outputs.tf
output "generated_filename" {
  description = "The full path of the generated file."
  value       = local_file.message.filename
}

output "file_content_used" {
  description = "The content actually written to the file."
  value       = local_file.message.content
}

Быстрая проверка: переменные и выходные значения

Какие из следующих утверждений о переменных и выходных значениях Terraform являются TRUE?

Итоги: переменные и выходные значения

Отличная работа! Вы научились делать конфигурации Terraform динамическими:

  • Входные переменные позволяют определять параметры вашей инфраструктуры.
  • Значения переменных можно передавать через CLI, файлы .tfvars или переменные окружения.
  • Выходные значения помогают извлекать и отображать важную информацию о развернутых ресурсах.

Далее вы узнаете, как Terraform отслеживает вашу инфраструктуру с помощью управления состоянием!

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

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

Да — полный текст урока «Переменные и выходные значения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Переменные и выходные значения»?

Научитесь использовать входные переменные, чтобы сделать конфигурации гибкими и повторно используемыми, а выходные значения — чтобы извлекать важную информацию из развёрнутой инфраструктуры. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Переменные и выходные значения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

  1. Поставщики и ресурсы
  2. Переменные и выходные значения
  3. Основы управления состоянием
  4. Модули и повторное использование кода
← Назад к DevOps Bootcamp