0Pricing
DevOps Bootcamp · Lektion

Einführung in Terraform-Module

Verstehen Sie die Vorteile von Modulen zum Kapseln und Wiederverwenden gängiger Infrastrukturmuster und zur Verbesserung von Codeorganisation und Wartbarkeit.

Einführung in Terraform-Module ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was sind Terraform-Module?

Ein Terraform-Modul ist ein eigenständiges Paket aus Terraform-Konfigurationen. Sie können es sich wie eine Funktion oder eine Klasse in Programmiersprachen vorstellen. Damit können Sie zusammengehörige Ressourcen gruppieren und als eine Einheit verwalten.

Module helfen Ihnen dabei, Ihren Infrastrukturcode zu organisieren und übersichtlicher zu gestalten – besonders bei größeren Projekten.

Warum Terraform-Module verwenden?

Module bieten Ihrer Infrastruktur als Code mehrere wichtige Vorteile:

  • Wiederverwendbarkeit: Definieren Sie einen Teil der Infrastruktur einmal und verwenden Sie ihn in verschiedenen Projekten oder Umgebungen mehrfach.
  • Organisation: Teilen Sie komplexe Konfigurationen in kleinere, überschaubare und logisch strukturierte Komponenten auf.
  • Konsistenz: Stellen Sie sicher, dass Ressourcen jedes Mal auf standardisierte Weise bereitgestellt werden, wodurch Konfigurationsabweichungen und Fehler reduziert werden.
  • Zusammenarbeit: Teams können Module entwickeln und gemeinsam nutzen, wodurch die Entwicklung beschleunigt und die Einhaltung von Standards unterstützt wird.

Aufbau eines Moduls erklärt

Ein Terraform-Modul ist im Wesentlichen ein Verzeichnis, das eine oder mehrere .tf-Dateien enthält. Obwohl der Aufbau flexibel ist, umfasst eine häufige Struktur:

  • main.tf: Definiert die wichtigsten Ressourcen, die das Modul erstellt.
  • variables.tf: Deklariert Eingabevariablen, mit denen sich das Verhalten des Moduls anpassen lässt.
  • outputs.tf: Definiert Ausgabewerte, die das Modul seinen Aufrufern bereitstellt.
  • versions.tf: Gibt die Versionsanforderungen für Terraform und den Provider des Moduls an.

Diese strukturierte Organisation hilft dabei, Ihren Code übersichtlich und verständlich zu halten.

Ihr erster Modul-Code

Definieren wir ein sehr einfaches Modul, das einen AWS-S3-Bucket erstellt. Dieser Code würde normalerweise in einem eigenen Verzeichnis liegen, zum Beispiel in modules/my_s3_bucket/main.tf.

Diese vollständige Datei könnte als Root-Modul ausgeführt werden, um das Ergebnis zu sehen. Ihr Hauptzweck besteht hier jedoch darin, den internen Aufbau eines Moduls zu zeigen.

provider "aws" {
  region = "us-east-1" # Example region
}

variable "bucket_name" {
  description = "Name for the S3 bucket."
  type        = string
}

variable "acl_setting" {
  description = "ACL for the S3 bucket."
  type        = string
  default     = "private"
}

resource "aws_s3_bucket" "example_bucket" {
  bucket = var.bucket_name
  acl    = var.acl_setting

  tags = {
    Environment = "Dev" # Example tag
  }
}

output "bucket_id" {
  description = "The ID of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.id
}

output "bucket_arn" {
  description = "The ARN of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.arn
}

Moduleingaben: Variablen

Eingabevariablen ermöglichen es Ihnen, das Verhalten Ihres Moduls anzupassen, ohne dessen Kerncode zu ändern. Sie werden in einer Datei variables.tf innerhalb des Modulverzeichnisses definiert.

Beim Aufrufen eines Moduls übergeben Sie Werte an diese Variablen. Dadurch lässt sich das Modul für verschiedene Szenarien und Umgebungen wiederverwenden. Sie können sie sich als Funktionsargumente vorstellen.

variable "bucket_name" {
  description = "Name for the S3 bucket."
  type        = string
}

variable "acl_setting" {
  description = "ACL for the S3 bucket."
  type        = string
  default     = "private"
}

Modulausgaben: Daten bereitstellen

Ausgabewerte werden verwendet, um Daten aus einem Modul für die aufrufende Konfiguration bereitzustellen. So können Sie auf wichtige Informationen über die vom Modul erstellten Ressourcen zugreifen.

Ausgaben werden in einer Datei outputs.tf innerhalb des Modulverzeichnisses definiert und können von anderen Teilen Ihrer Terraform-Konfiguration oder sogar von anderen Modulen referenziert werden.

output "bucket_id" {
  description = "The ID of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.id
}

output "bucket_arn" {
  description = "The ARN of the S3 bucket."
  value       = aws_s3_bucket.example_bucket.arn
}

Ihr benutzerdefiniertes Modul aufrufen

Nachdem wir unser Modul my_s3_bucket definiert haben, rufen wir es aus einer Root-Konfiguration auf. Das Attribut source gibt an, wo Terraform das Modul finden kann.

Bei lokalen Modulen handelt es sich dabei um einen relativen Pfad zum Modulverzeichnis. Wir übergeben Werte an die Eingabevariablen des Moduls und können auf die bereitgestellten Ausgaben zugreifen.

provider "aws" {
  region = "us-east-1"
}

module "my_website_bucket" {
  source      = "./modules/my_s3_bucket" # Path to your local module
  bucket_name = "my-unique-website-bucket-12345"
  acl_setting = "public-read"
}

output "website_bucket_arn" {
  description = "ARN of the website S3 bucket."
  value       = module.my_website_bucket.bucket_arn
}

output "website_bucket_id" {
  description = "ID of the website S3 bucket."
  value       = module.my_website_bucket.bucket_id
}

Verschiedene Modulquellen

Module müssen nicht lokal sein! Terraform kann Module aus verschiedenen Quellen beziehen, sodass Sie flexibel bleiben:

  • Lokale Pfade: ./modules/my_module (wie in unserem Beispiel)
  • Terraform Registry: hashicorp/vpc/aws (öffentlich verfügbare Module)
  • Git-Repositories: git::https://example.com/repo.git
  • S3-Buckets: s3::https://s3-us-west-2.amazonaws.com/example-bucket/module.zip

Die Terraform Registry ist ein hervorragender Ort, um vorgefertigte und von der Community geprüfte Module für gängige Infrastrukturmuster zu finden.

Die praktische Bedeutung von Modulen

Stellen Sie sich vor, Sie verwalten Hunderte von Ressourcen in mehreren Umgebungen (Entwicklung, Staging und Produktion). Ohne Module hätten Sie umfangreiche und sich wiederholende Konfigurationsdateien.

Mit Modulen können Sie ein Muster für einen „Webserver“ oder eine „Datenbank“ einmal definieren. Anschließend rufen Sie dieses Modul für jede Instanz auf und übergeben unterschiedliche Variablen für umgebungsspezifische Einstellungen. Dadurch werden Fehler deutlich reduziert, Aktualisierungen vereinfacht und Ihre Infrastruktur wird wirklich skalierbar.

Kurze Überprüfung

Sie haben den Aufbau und die Vorteile von Terraform-Modulen kennengelernt. Überprüfen wir, ob Sie einen wichtigen Vorteil erkennen können.

Rückblick und nächste Schritte

In dieser Lektion haben wir Terraform-Module als leistungsstarke Werkzeuge zur Organisation und Wiederverwendung Ihres Infrastrukturcodes vorgestellt. Sie haben gelernt:

  • Module kapseln Ressourcen in wiederverwendbaren Einheiten.
  • Sie verbessern die Organisation, Konsistenz und Wiederverwendbarkeit des Codes.
  • Module verwenden variables.tf für Eingaben und outputs.tf für bereitgestellte Daten.
  • Sie können Module über lokale Pfade, Registries oder Git-Repositories aufrufen.

Als Nächstes beschäftigen wir uns eingehender mit der Erstellung eigener wiederverwendbarer Module sowie mit fortgeschritteneren Mustern und Best Practices.

Häufig gestellte Fragen

Ist die Lektion „Einführung in Terraform-Module“ kostenlos?

Ja — der vollständige Text von „Einführung in Terraform-Module“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Einführung in Terraform-Module“?

Verstehen Sie die Vorteile von Modulen zum Kapseln und Wiederverwenden gängiger Infrastrukturmuster und zur Verbesserung von Codeorganisation und Wartbarkeit. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Einführung in Terraform-Module“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einführung in Terraform-Module
  2. Wiederverwendbare Module erstellen
  3. Workspaces für Umgebungen verwenden
  4. Module in einer Registry veröffentlichen
← Zurück zu DevOps Bootcamp