# Terraform Provider

> 使用 Terraform 或 OpenTofu 以代码方式定义服务器、网络、负载均衡与 Shield 规则。

Source: https://docs.avenlith.com/zh/terraform  
Category: API 与自动化  
Last updated: 2026-09-22

## 配置

导出 API 令牌并声明 Provider：

```hcl
terraform {
  required_providers {
    avenlith = { source = "avenlith/avenlith", version = "~> 2.4" }
  }
}

resource "avenlith_server" "web" {
  count  = 2
  name   = "web-0${count.index + 1}"
  plan   = "vps-pro"
  region = "ist1"
  image  = "ubuntu-26.04"
  labels = { role = "web" }
}

resource "avenlith_load_balancer" "web" {
  name    = "web-lb"
  region  = "ist1"
  targets = avenlith_server.web[*].id
}
```

执行 `terraform init && terraform apply` 即可在伊斯坦布尔创建两台服务器和一个负载均衡器。

## 资源类型

`avenlith_server`、`avenlith_network`、`avenlith_firewall`、`avenlith_load_balancer`、`avenlith_floating_ip`、`avenlith_k8s_cluster`、`avenlith_db_cluster`、`avenlith_bucket`、`avenlith_shield_rule` 与 `avenlith_dns_record`。

> **Note:** > 该 Provider 无需修改即可用于 OpenTofu 1.8+。

## 远程状态

使用 `s3` 后端并设置 `skip_credentials_validation = true` 与区域端点，即可将状态存储在 Avenlith 对象存储中。
