---
type: how-to
title: Terraform 또는 OpenTofu 쓰기
summary: 공식 프로바이더로 Caputchin을 코드형 인프라로 관리하세요, 그것은 Terraform과 OpenTofu에서 똑같이 동작하며, 동작하는 예제와 전체 레지스트리 레퍼런스 링크와 함께.
---

공식 Caputchin 프로바이더는 당신의 계정을 코드형 인프라로 관리하게 합니다: 팀, 사이트 키, 보안 정책, 멤버, 토큰을 `.tf` 파일에 선언하고 여느 리소스처럼 적용하세요. 그것은 [자동화](/docs/automation/management-api) 아래의 다른 모든 것과 같은 관리 API를, Terraform 리소스로 표현한 것입니다.

그것은 한 번 공개되어 같은 소스에서 **Terraform과 OpenTofu 둘 다**와 동작합니다; HCL은 동일하고, CLI 바이너리(`terraform` 또는 `tofu`)와 레지스트리만 다릅니다. 아래 모든 곳에서, 당신이 돌리는 무엇이든 쓰세요.

## 액세스 토큰 발급하기 [#mint-an-access-token]

프로바이더는 `CAPUTCHIN_MANAGEMENT_TOKEN` 환경 변수에서 토큰을 읽습니다(권장, 소스 밖에 머물도록). 어느 종류의 토큰이든 동작합니다([API 인증](/docs/automation/management-api#mint-an-access-token)을 보세요): 전체 계정 인프라를 위한 [Personal Access Token](/docs/account-management/personal-access-token), 또는 당신의 구성이 관리하는 팀으로 범위 지정된 [Troop Access Token](/docs/troops/tokens).

```bash
export CAPUTCHIN_MANAGEMENT_TOKEN=cpt_pat_...
```

닭이 먼저냐 달걀이 먼저냐 하는 경우가 있습니다: 프로바이더는 토큰을 *발급*할 수도 있지만(`caputchin_account_token`과 `caputchin_troop_pat` 리소스), 애초에 인증하려면 토큰이 필요합니다. 첫 번째 것은 대시보드에서 손으로 발급하고, 그다음 Terraform이 나머지를 관리하게 하세요.

## 프로바이더 구성하기

```hcl
terraform {
  required_providers {
    caputchin = {
      source  = "caputchin/caputchin"
      version = "~> 0.1"
    }
  }
}

# Token from CAPUTCHIN_MANAGEMENT_TOKEN; endpoint defaults to https://api.caputchin.com.
provider "caputchin" {}
```

같은 `source = "caputchin/caputchin"`가 Terraform Registry와 OpenTofu Registry에서 해소되니, 그 블록은 어느 도구에서든 같습니다.

## 동작하는 예제: 게이트된 사이트 키를 둔 팀

이것은 팀, 그 안의 사이트 키를 만들고, 그 키에 게임 게이트를 켭니다:

```hcl
resource "caputchin_troop" "shop" {
  name = "shop-team"
}

resource "caputchin_site_key" "shop_frontend" {
  name     = "shop-frontend"
  troop_id = caputchin_troop.shop.id
}

resource "caputchin_site_security_settings" "shop_frontend" {
  site_id      = caputchin_site_key.shop_frontend.id
  require_game = true
}

# The public key is an attribute; the secret is sensitive, in state only.
output "shop_site_key" {
  value = caputchin_site_key.shop_frontend.key
}
```

그다음, 어느 도구로든:

```bash
terraform init && terraform apply
# or
tofu init && tofu apply
```

사이트 키의 `secret`은 민감한 계산 속성입니다; [백엔드 검증](/docs/integration-guides/verify-on-your-backend)을 구성하려면 상태에서 그것을 읽으세요(`terraform output`). 모든 apply는 Apex에서 [감사 로그](/docs/audit-logs/overview)에 당신의 토큰으로 귀속되니, Terraform을 통한 변경은 대시보드 편집만큼 추적 가능합니다.

## 관리할 수 있는 것

리소스는 대시보드와 같은 표면을 덮습니다: 팀과 그 멤버와 토큰, 사이트 키, 보안 설정, 호스팅 인증, 게임과 화이트라벨 맞춤화, 그리고 계정 토큰. 데이터 소스는 기존 팀, 사이트, 계정 정보, 통계를 구성으로 읽게 합니다.

## 전체 레퍼런스

모든 리소스와 데이터 소스가, 그 모든 인자와 속성과 임포트 문법과 함께, 프로바이더의 레지스트리 페이지에 있습니다. 그것은 프로바이더 소스에서 생성되니, 공개된 버전을 정확히 추적합니다:

- Terraform Registry: `registry.terraform.io/providers/caputchin/caputchin`
- OpenTofu Registry: `search.opentofu.org/provider/caputchin/caputchin`

각 리소스가 수행하는 바탕 작업은 [대화형 API 레퍼런스](/docs/api-reference)를 보세요.

## 함께 보기

- [API에서 Caputchin 관리하기](/docs/automation/management-api): 프로바이더가 앉은 HTTP API.
- [MCP 서버 쓰기](/docs/automation/mcp): AI 에이전트 표면.
- [팀](/docs/troops/overview)과 [사이트 키](/docs/site-keys/overview): 당신이 관리하는 리소스.
