Zum Inhalt springen

Verwaltung mit Terraform

In dieser Anleitung lernen Sie, wie Sie eine Instanz für STACKIT MongoDB Flex mit Terraform erstellen. Dazu richten Sie zunächst eine Umgebung ein. Nach Abschluss dieses Leitfadens verfügen Sie über Grundkenntnisse in der Nutzung von Terraform mit MongoDB Flex. Im Anschluss können Sie Ihr Wissen mit den verlinkten Ressourcen vertiefen.

  • Sie verfügen über einen Service Account mit ausreichenden Berechtigungen.
  • Sie besitzen eine Schlüsseldatei für Ihren Service Account.
  • Auf Ihrem Client ist Terraform installiert.
  1. Überprüfen Sie, ob Terraform aufrufbar ist.

    Terminal-Fenster
    terraform --version

    Sie erhalten eine Ausgabe wie:

    Terraform v1.12.2
    on darwin_arm64
  2. Erstellen Sie einen Ordner für Ihr Terraform-Projekt und wechseln Sie in dieses Verzeichnis.

    Terminal-Fenster
    mkdir stackit-terraform-mongodb
    cd stackit-terraform-mongodb
  3. Kopieren Sie die Schlüsseldatei Ihres Service Accounts in den Ordner und benennen Sie diese in service-account-key.json um. Diese Anleitung geht davon aus, dass sich Ihre heruntergeladene Schlüsseldatei im Download-Ordner befindet und den Namen sa-key-ee76107b-8923-4661-9ae6-27417d5004f0.json trägt. Bitte passen Sie den folgenden Befehl entsprechend Ihrer lokalen Umgebung an.

    Terminal-Fenster
    mv ~/Downloads/sa-key-ee76107b-8923-4661-9ae6-27417d5004f0.json ./service-account-key.json
  4. Erstellen Sie die Datei main.tf.

    Terminal-Fenster
    terraform {
    required_providers {
    stackit = {
    source = "stackitcloud/stackit"
    version = "~> 0.30.0" # Verwenden Sie die neueste Version
    }
    }
    }
    provider "stackit" {
    service_account_key_path = "./service-account-key.json"
    region = "eu01"
    }
    resource "stackit_mongodbflex_instance" "example" {
    project_id = var.project_id
    name = "my-mongodb-instance"
    acl = [
    "79.206.199.114/32" # Achtung: Erlaubt Zugriff von überall. Nur für Tests!
    ]
    backup_schedule = "0 2 * * *" # Täglich um 02:00 Uhr nachts
    flavor = {
    cpu = 1
    ram = 4
    }
    storage = {
    class = "premium-perf2-mongodb"
    size = 10
    }
    version = "8.0"
    replicas = 1
    options = {
    type = "Single"
    snapshot_retention_days = 2 # Wie lange Snapshots gespeichert werden
    point_in_time_window_hours = 15 # Zeitfenster für Point-in-Time-Wiederherstellung in Stunden
    }
    }
    resource "stackit_mongodbflex_user" "example_user" {
    project_id = var.project_id
    instance_id = stackit_mongodbflex_instance.example.instance_id
    username = "myuser"
    database = "default"
    roles = ["readWrite"]
    }
  5. Erstellen Sie die Datei variables.tf.

    variable "project_id" {
    description = "STACKIT Project ID"
    type = string
    }
  6. Erstellen Sie die Datei terraform.tfvars.

    project_id = "<PROJECT_ID>"
  7. Führen Sie die folgenden Befehle aus:

    Terminal-Fenster
    terraform plan
    terraform apply
  8. Prüfen Sie die Ausgabe. Sie erhalten eine Ausgabe wie:

    ...
    Do you want to perform these actions?
    Terraform will perform the actions described above.
    Only 'yes' will be accepted to approve.
    Enter a value: yes
    stackit_mongodbflex_instance.example: Creating...
    stackit_mongodbflex_instance.example: Still creating... [10s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [20s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [30s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [40s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [50s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [1m0s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [1m10s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [1m20s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [1m30s elapsed]
    stackit_mongodbflex_instance.example: Still creating... [1m40s elapsed]
    stackit_mongodbflex_instance.example: Creation complete after 1m42s [id=118e6780-c9d0-48d0-87a3-044fe90c17c4,4cf6f720-1524-40dc-b76f-64e6533b1453]
    stackit_mongodbflex_user.example_user: Creating...
    stackit_mongodbflex_user.example_user: Creation complete after 1s [id=118e6780-c9d0-48d0-87a3-044fe90c17c4,4cf6f720-1524-40dc-b76f-64e6533b1453,8f1b5a44-5e10-4a3b-86ab-5377cfb711df]
    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

Sie haben erfolgreich Ihre erste Instanz und einen Benutzer für MongoDB Flex mit Terraform erstellt. Sie können einen Blick in die Datei terraform.tfstate werfen, um nachzuvollziehen, was Terraform durchgeführt hat. Zudem können Sie das GitHub-Repository des STACKIT Terraform Providers erkunden, um mehr über dessen Funktionsumfang zu erfahren. Weitere Informationen zu Terraform allgemein finden Sie auf der offiziellen Website von Terraform.