> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/pam/de/knowledge-base/knowledge-base-articles/terraform-provider.md).

# Terraform-Anbieter

Der Terraform-Provider ermöglicht Ihnen die Verwaltung Ihrer Devolutions Server-Instanz. Um mehr über den Terraform-Provider zu erfahren, konsultieren Sie unser [GitHub.](https://github.com/Devolutions/terraform-provider-dvls?tab=readme-ov-file)

{% hint style="info" %}
Dieser Provider befindet sich in Arbeit; rechnen Sie mit Breaking Changes zwischen den Releases.
{% endhint %}

### Anforderungen

* [Terraform](https://www.terraform.io/downloads.html) 1.0
* [Go](https://golang.org/doc/install) 1.18
* [Devolutions Server](https://devolutions.net/server) 2025.2.4.0

### Erstellen des Providers

1. Klonen Sie das Repository
2. Wechseln Sie in das Repository-Verzeichnis
3. Erstellen Sie den Provider mit dem Go-Befehl `install`:

```go
go install
```

### Hinzufügen von Abhängigkeiten

Dieser Provider verwendet [Go-Module](https://github.com/golang/go/wiki/Modules). Bitte konsultieren Sie die Go-Dokumentation für die aktuellsten Informationen zur Verwendung von Go-Modulen.

So fügen Sie eine neue Abhängigkeit `github.com/author/dependency` zu Ihrem Terraform-Provider hinzu:

```go
go get github.com/author/dependency
go mod tidy
```

Übertragen Sie dann die Änderungen an `go.mod` und `go.sum`.

### Verwenden des Providers

Besuchen Sie das Terraform Registry unter <https://registry.terraform.io/providers/Devolutions/dvls/latest> für Informationen zur Verwendung.

### Entwickeln des Providers

Wenn Sie am Provider arbeiten möchten, müssen Sie zunächst [Go](http://www.golang.org/) auf Ihrem Rechner installieren (siehe [Anforderungen](https://github.com/Devolutions/terraform-provider-dvls?tab=readme-ov-file#requirements) oben).

* Um den Provider zu kompilieren, führen Sie `go install` aus. Damit wird der Provider erstellt und die Provider-Binärdatei im Verzeichnis `$GOPATH/bin` abgelegt.
* Um Dokumentation zu generieren oder zu aktualisieren, führen Sie `go generate` aus.
* Um die vollständige Suite der Acceptance Tests auszuführen, führen Sie `make testacc` aus.

*Hinweis:* Acceptance Tests erstellen echte Ressourcen und verursachen häufig Kosten.

`make testacc`

### Testen des Providers während der Entwicklung

Um einen Test des Providers durchzuführen, erstellen bzw. aktualisieren Sie die Datei `~/.terraformrc` (`%APPDATA%\terraform.rc` unter Windows) mit folgendem Inhalt:

```hcl
provider_installation {
  dev_overrides {
    "devolutions/dvls" = "/Users/USERNAME/go/bin"
  }
  direct {
  }
}
```

Ersetzen Sie `/Users/USERNAME/go/bin` durch den Pfad zur kompilierten Provider-Binärdatei entsprechend Ihrem Betriebssystem und Ihrer Umgebung.

Führen Sie dann den folgenden Befehl aus, sofern Sie macOS oder Linux verwenden:

`go build -o ~/go/bin/terraform-provider-dvls_v0.5.0`

`chmod +x ~/go/bin/terraform-provider-dvls_v0.5.0`

Hinweise: Die Versionsnummer sollte mit der Version des Providers übereinstimmen, an dem Sie arbeiten.

Sie können dann eine Datei `test.tf` oder `example.tf` mit dem erforderlichen Inhalt erstellen; hier ist ein Beispiel:

```hcl
provider "dvls" {
  base_uri   = "https://your-dvls-instance.com/"
  app_id     = "your-app-id"
  app_secret = "your-app-secret"
}

data "dvls_entry_website" "example" {
  id = "id-of-website-entry"
}

output "website_name" {
  value = data.dvls_entry_website.example.name
}

terraform {
  required_providers {
    dvls = {
      source = "devolutions/dvls"
    }
  }
}
```

Führen Sie dann den folgenden Befehl aus:

`terraform plan`

Dies wird die Ausgabe sein:

```
│ Warning: Provider development overrides are in effect
│
│ The following provider development overrides are set in the CLI configuration:
│  - devolutions/dvls in /Users/USERNAME/go/bin
│
│ The behavior may therefore not match any released version of the provider and applying changes may cause the state to become incompatible
│ with published releases.
╵
data.dvls_entry_website.example: Reading...
data.dvls_entry_website.example: Read complete after 1s [id=123e4567-e89b-12d3-a456-426614174000]

Changes to Outputs:
  + website_name = "TestWebsite"
```

Bitte beachten Sie, dass die `.gitignore` die Dateien `dev.tfrc`, `.terraform.lock.hcl`, `test.tf`, `example.tf` und `terraform.tfstate` sowie den Ordner `.terraform/` bereits ignoriert.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/pam/de/knowledge-base/knowledge-base-articles/terraform-provider.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
