Найти в Дзене
Поясни за DevOps

Terraform: терминология и ключевые ресурсы 🏗️

Перед выходом видео про Terraform разберёмся с базовой терминологией и ключевыми блоками, с которыми чаще всего приходится работать. 🔹 Что такое Terraform? Terraform — это инструмент Infrastructure as Code (IaC), который позволяет описывать и управлять инфраструктурой через с помощью кода. Он позволяет работать с различными облаками: Yandex Cloud, AWS, GCP — и не только. 📘 Базовые понятия: 🔹 Provider – плагин, через который Terraform общается с облаком или системой. Например, yandex, aws и др. 🔹 Resource – базовая единица: виртуальная машина, сетевой интерфейс, диск. Всё, что создаётся. 🔹 Variable – переменные, через которые можно переиспользовать конфигурации. 🔹 Output – способ вывести важные выходные параметры, например IP-адрес после создания VM. 🔹 State – файл terraform.tfstate, в котором Terraform хранит, что уже создано. 🔹 Module – шаблон с повторно используемыми ресурсами. ⚙️ Примеры ключевых блоков: 1️⃣ Resource (ресурс) Создание виртуальной машины: resource "yandex_com

Перед выходом видео про Terraform разберёмся с базовой терминологией и ключевыми блоками, с которыми чаще всего приходится работать.

🔹 Что такое Terraform?

Terraform — это инструмент Infrastructure as Code (IaC), который позволяет описывать и управлять инфраструктурой через с помощью кода.

Он позволяет работать с различными облаками: Yandex Cloud, AWS, GCP — и не только.

📘 Базовые понятия:

🔹 Provider – плагин, через который Terraform общается с облаком или системой. Например, yandex, aws и др.

🔹 Resource – базовая единица: виртуальная машина, сетевой интерфейс, диск. Всё, что создаётся.

🔹 Variable – переменные, через которые можно переиспользовать конфигурации.

🔹 Output – способ вывести важные выходные параметры, например IP-адрес после создания VM.

🔹 State – файл terraform.tfstate, в котором Terraform хранит, что уже создано.

🔹 Module – шаблон с повторно используемыми ресурсами.

⚙️ Примеры ключевых блоков:

1️⃣ Resource (ресурс)

Создание виртуальной машины:

resource "yandex_compute_instance"
; "vm-1" { name = "terraform-example"
resources {
cores = 4
memory = 4
}
boot_disk {
disk_id = yandex_compute_disk.boot-disk-1.id
}
network_interface {
subnet_id = yandex_vpc_subnet.subnet-1.id
nat = true
}
metadata = {
user-data = "${file("meta.txt")}"
}
}

2️⃣ Variable (переменная)

Объявление и использование переменной:

variable "vm_name" {
default = "my-vm"
}
resource "yandex_compute_instance" "vm" {
name = var.vm_name
}

3️⃣ Output (вывод)

Выводим внешний IP:

output "external_ip_address_vm_1" {
value = yandex_compute_instance.vm-1.network_interface.0.nat_ip_address
}

4️⃣ Module (модуль)

Подключение готового модуля:

module "vpc" {
source = "terraform-yandex-modules/vpc/yandex"
network_name = "my-network"
subnets = [...]
}

💡 Terraform не просто создаёт ресурсы — он отслеживает их состояние, управляет зависимостями и позволяет всё откатить при необходимости.

Бонус: он идемпотентный — повторный terraform apply ничего не сломает, если всё уже актуально.

💬 Какие провайдеры и модули используете чаще всего? Делитесь в комментариях 👇😊

#ПоясниЗаDevOps #IaC #Terraform