Переменные и выходные значения
Научитесь использовать входные переменные, чтобы сделать конфигурации гибкими и повторно используемыми, а выходные значения — чтобы извлекать важную информацию из развёрнутой инфраструктуры.
«Переменные и выходные значения» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Поставщики и ресурсы
- Переменные и выходные значения
- Основы управления состоянием
- Модули и повторное использование кода