Zum Inhalt springen

Verwalten mit Terraform

In dieser Anleitung erfahren Sie, wie Sie eine STACKIT PostgreSQL Flex-Instanz mit Terraform erstellen. Sie richten zuerst eine Umgebung ein. Nach Abschluss dieser Anleitung verfügen Sie über Grundkenntnisse in der Verwendung von Terraform mit PostgreSQL Flex. Im Anschluss können Sie Ihr Wissen mithilfe der verlinkten Ressourcen vertiefen.

  • Sie verfügen über einen Service Account mit ausreichenden Rechten.
  • Sie besitzen eine Schlüsseldatei für Ihren Service Account.
  • Auf Ihrem Client ist Terraform installiert.
  1. Überprüfen Sie, ob Terraform verfügbar 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-postgresql
    cd stackit-terraform-postgresql
  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 in Ihrem Download-Ordner befindet und den Namen sa-key-ee76107b-8923-4661-9ae6-27417d5004f0.json hat. 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" # Verwende die neueste Version
    }
    }
    }
    provider "stackit" {
    service_account_key_path = "./service-account-key.json"
    region = "eu01"
    }
    resource "stackit_postgresqlflex_instance" "example" {
    project_id = var.project_id
    name = "my-postgresql-instance"
    acl = [
    "79.206.199.114/32"
    ]
    backup_schedule = "0 2 * * *" # Täglich um 2 Uhr nachts
    flavor = {
    cpu = 1
    ram = 4
    }
    storage = {
    class = "premium-perf6-postgresql"
    size = 5
    }
    version = "17.0"
    replicas = 1
    options = {
    type = "Single"
    }
    }
    resource "stackit_postgresql_user" "example_user" {
    project_id = var.project_id
    instance_id = stackit_postgresqlflex_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 = "<PROJEKT_ID>"
  7. Führen Sie die Konfiguration aus.

    Terminal-Fenster
    terraform plan
    terraform apply
  8. Überprü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_postgresqlflex_instance.example: Creating...
    stackit_postgresqlflex_instance.example: Still creating... [10s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [20s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [30s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [40s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [50s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [1m0s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [1m10s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [1m20s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [1m30s elapsed]
    stackit_postgresqlflex_instance.example: Still creating... [1m40s elapsed]
    stackit_postgresqlflex_instance.example: Creation complete after 1m42s [id=118e6780-c9d0-48d0-87a3-044fe90c17c4,4cf6f720-1524-40dc-b76f-64e6533b1453]
    stackit_postgresqlflex_user.example_user: Creating...
    stackit_postgresqlflex_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 PostgreSQL Flex-Instanz und einen Benutzer mit Terraform erstellt. Sie können einen Blick in die Datei terraform.tfstate werfen, um zu verstehen, was Terraform durchgeführt hat. Sie können auch das GitHub-Repository des STACKIT Terraform-Providers erkunden, um mehr über dessen Funktionsumfang zu erfahren. Weitere Informationen zu Terraform im Allgemeinen finden Sie auf der offiziellen Terraform-Website.