> 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/da/knowledge-base/knowledge-base-articles/terraform-provider.md).

# Terraform-udbyder

Brug Terraform-udbyderen til Devolutions Server til at administrere serverressourcer, bygge udbyderen fra kildekoden og teste konfigurationsændringer lokalt.

Terraform-udbyder gør det muligt for Dem at administrere Deres Devolutions Server-instans. For at få mere at vide om Terraform-udbyder kan De se vores [GitHub.](https://github.com/Devolutions/terraform-provider-dvls?tab=readme-ov-file)

{% hint style="info" %}
Denne udbyder er et igangværende arbejde, forvent brydende ændringer mellem udgivelser.
{% endhint %}

### Krav

* [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

### Opbygning af udbyderen

1. Klon lageret
2. Gå ind i lagermappen
3. Byg udbyderen med Go-kommandoen `install`:

```go
go install
```

### Tilføjelse af afhængigheder

Denne udbyder bruger [Go-moduler](https://github.com/golang/go/wiki/Modules). Se Go-dokumentationen for de mest opdaterede oplysninger om brug af Go-moduler.

For at tilføje en ny afhængighed `github.com/author/dependency` til Deres Terraform-udbyder:

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

Lav derefter et commit af ændringerne til `go.mod` og `go.sum`.

### Brug af udbyderen

Besøg Terraform Registry på <https://registry.terraform.io/providers/Devolutions/dvls/latest> for at få oplysninger om brug.

### Udvikling af udbyderen

Hvis De vil arbejde på udbyderen, skal De først have [Go](http://www.golang.org/) installeret på Deres maskine (se [Krav](https://github.com/Devolutions/terraform-provider-dvls?tab=readme-ov-file#requirements) ovenfor).

* For at kompilere udbyderen skal De køre `go install`. Det bygger udbyderen og placerer udbyderens binære fil i mappen `$GOPATH/bin`.
* For at generere eller opdatere dokumentationen skal De køre `go generate`.
* For at køre hele sættet af accepttest skal De køre `make testacc`.

*Bemærk:* Accepttest opretter rigtige ressourcer og koster ofte penge at køre.

`make testacc`

### Test af udbyderen under udvikling

For at udføre en test af udbyderen skal De oprette/opdatere filen `~/.terraformrc` (`%APPDATA%\terraform.rc` på Windows) med følgende indhold:

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

Erstat `/Users/USERNAME/go/bin` med stien til den kompilerede udbyderbinære fil i henhold til Deres operativsystem og miljø.

Kør derefter følgende kommando, under forudsætning af at De er på macOS eller Linux:

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

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

Bemærkninger: versionsnummeret skal svare til versionen af den udbyder, De arbejder på.

De kan derefter oprette en fil `test.tf` eller `example.tf` med det nødvendige indhold; her er et eksempel:

```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"
    }
  }
}
```

Kør derefter følgende kommando:

`terraform plan`

Dette bliver outputtet:

```
│ 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"
```

Bemærk, at `.gitignore` allerede ignorerer filerne `dev.tfrc`, `.terraform.lock.hcl`, `test.tf`, `example.tf` og `terraform.tfstate` samt mappen `.terraform/`.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
