0Pricing
Terraform Infrastructure as Code · Lekcja

Tworzenie modułów wielokrotnego użytku

Nauczą się Państwo tworzyć własne moduły Terraform, definiując dane wejściowe, wyjściowe i zasoby w celu budowania modularnych i elastycznych konfiguracji.

Tworzenie modułów wielokrotnego użytku to bezpłatna lekcja Terraform Infrastructure as Code na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Terraform Infrastructure as Code, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Terraform Infrastructure as Code zawiera 4 lekcji w sumie.

Tworzenie własnych modułów Terraform

W poprzedniej lekcji nauczyliśmy się korzystać z istniejących modułów Terraform. Teraz zajmiemy się tworzeniem własnych modułów wielokrotnego użytku!

Tworzenie modułów pomaga hermetyzować typowe wzorce infrastruktury, dzięki czemu konfiguracje są przejrzystsze, bardziej spójne i łatwiejsze w utrzymaniu.

Organizowanie plików modułu

Moduł Terraform to zasadniczo zbiór plików .tf przechowywanych w dedykowanym katalogu.

W najprostszej postaci katalog modułu zawiera:

  • variables.tf: Definiuje zmienne wejściowe modułu.
  • main.tf: Zawiera deklaracje zasobów.
  • outputs.tf: Definiuje wartości wyjściowe modułu.

Można także dodać plik versions.tf z wymaganiami dotyczącymi dostawcy oraz plik README.md z dokumentacją.

Dane wejściowe modułu: zmienne

Aby moduł był elastyczny, należy zdefiniować zmienne wejściowe. Umożliwiają one użytkownikom modułu dostosowanie jego działania bez zmieniania podstawowego kodu modułu.

Zmienne definiuje się za pomocą bloku variable, określając description, type i opcjonalnie wartość default.

Przykład: definiowanie zmiennej modułu

Oto sposób definiowania zmiennej określającej typ instancji w pliku variables.tf modułu:

# variables.tf
variable "instance_type" {
  description = "The EC2 instance type to use."
  type        = string
  default     = "t2.micro"
}

Zasoby modułu: podstawowa logika

Sercem modułu są jego deklaracje zasobów. Są to rzeczywiste zasoby chmurowe, które moduł aprowizuje.

Te bloki zasobów, takie jak instancja AWS EC2 lub zasobnik S3, należy umieścić w pliku main.tf modułu.

Co ważne, zasoby wewnątrz modułu często korzystają ze zdefiniowanych zmiennych wejściowych.

Deklarowanie zasobu za pomocą danych wejściowych

Zadeklarujmy instancję EC2 w pliku main.tf, korzystając ze zmiennej instance_type:

# main.tf
resource "aws_instance" "web_server" {
  ami           = "ami-0abcdef1234567890" # Example AMI ID
  instance_type = var.instance_type
  tags = {
    Name = "MyWebServer"
  }
}

Wartości wyjściowe modułu: udostępnianie informacji

Tak jak moduły przyjmują dane wejściowe, mogą również udostępniać wartości wyjściowe. Są one przydatne do eksportowania informacji o zasobach utworzonych przez moduł.

Można na przykład udostępnić publiczny adres IP instancji EC2 lub ARN zasobnika S3.

Wartości wyjściowe definiuje się w pliku outputs.tf za pomocą bloku output.

Definiowanie wartości wyjściowej modułu

Oto sposób definiowania wartości wyjściowej dla publicznego adresu IP naszej instancji EC2 w pliku outputs.tf:

# outputs.tf
output "instance_public_ip" {
  description = "The public IP address of the EC2 instance."
  value       = aws_instance.web_server.public_ip
}

Wywoływanie nowego modułu

Po zdefiniowaniu modułu można używać go w konfiguracji głównej (lub w innym module) tak samo jak każdego innego modułu.

Należy określić parametr source (ścieżkę do katalogu modułu) i przekazać wartości do jego zmiennych wejściowych.

# root_config/main.tf
module "my_web_server_module" {
  source        = "../my-ec2-module" # Path to your module
  instance_type = "t3.small"         # Override default
}

output "web_server_ip" {
  value = module.my_web_server_module.instance_public_ip
}

Sprawdzenie elementów modułu

Udało się Państwu poznać najważniejsze pliki w module Terraform. Który plik służy przede wszystkim do definiowania wartości, które można przekazać do modułu?

Podsumowanie: tworzenie modułów wielokrotnego użytku

Świetna praca! Wiedzą już Państwo, jak tworzyć własne moduły Terraform.

  • Moduły to katalogi zawierające pliki .tf.
  • Plik variables.tf służy do definiowania danych wejściowych.
  • Definicje zasobów należy umieszczać w pliku main.tf.
  • Wartości wyjściowe należy definiować w pliku outputs.tf, aby udostępniać dane.

Ta umiejętność ma kluczowe znaczenie podczas tworzenia skalowalnej, łatwej w utrzymaniu i spójnej infrastruktury jako kodu.

Często zadawane pytania

Czy lekcja „Tworzenie modułów wielokrotnego użytku” jest bezpłatna?

Tak — pełny tekst „Tworzenie modułów wielokrotnego użytku” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Terraform Infrastructure as Code, przejdź na CoddyKit PRO. Kurs Terraform Infrastructure as Code zawiera 4 lekcji w sumie.

Co nauczysz się w „Tworzenie modułów wielokrotnego użytku”?

Nauczą się Państwo tworzyć własne moduły Terraform, definiując dane wejściowe, wyjściowe i zasoby w celu budowania modularnych i elastycznych konfiguracji. Ćwiczysz Terraform Infrastructure as Code z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Terraform Infrastructure as Code?

Nie wymagamy żadnego doświadczenia. Terraform Infrastructure as Code w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Tworzenie modułów wielokrotnego użytku”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Terraform Infrastructure as Code?

Tak. Każda lekcja Terraform Infrastructure as Code zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wprowadzenie do modułów Terraform
  2. Tworzenie modułów wielokrotnego użytku
  3. Korzystanie z obszarów roboczych dla środowisk
  4. Publikowanie modułów w rejestrze
← Powrót do Terraform Infrastructure as Code