인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
Terraform으로 Teleport 리소스 가져오기
이 가이드는 기존의 동적 Teleport 리소스를 Terraform 리소스로 가져오는 방법을 보여줍니다.
tctl
또는 Kubernetes Operator와 같은 다른 클라이언트 도구를 사용하여 이미 Teleport 리소스를 생성했으며, Terraform 구성을 사용하여 모든 Teleport 리소스를 관리하려는 경우, 기존 Teleport 리소스를 나타내는 resource
블록이 포함된 .tf
파일을 생성하는 다음 단계를 따르십시오.
모든 Teleport 리소스를 한 곳에서 정의함으로써 클러스터 구성이 기대에 맞게 일치하도록 도울 수 있습니다.
1/3단계. import
블록 추가
-
작업 공간에서 루트 Teleport Terraform 모듈로 이동합니다.
-
Terraform 가져오기를 구성하기 위해 텍스트 편집기에서 파일을 엽니다. 구성을 깔끔하게 유지하기 위해
imports.tf
라는 새 파일을 엽니다. -
imports.tf
에import
블록을 추가합니다.to
필드를 사용하여 Terraform에서 구성을 생성할 리소스의 이름을 지정합니다. 다음 예제는myrole
이라는 Teleport 역할을 가져옵니다:import { to = teleport_role.myrole }
2/3단계. 리소스의 ID 가져오기
-
리소스의 ID를 가져옵니다. 사용할 방법은 리소스 유형에 따라 다릅니다. 다음 규칙을 사용하십시오:
리소스가
teleport_provision_token
인 경우, ID는 리소스의metadata.id
입니다.리소스가 단일 인스턴스만 가질 수 있는 경우,
teleport
접두사를 제외한 리소스 유형의 이름을 사용합니다. 예를 들면:리소스 ID teleport_cluster_maintenance_config
cluster_maintenance_config
teleport_cluster_networking_config
cluster_networking_config
다른 모든 리소스의 경우, ID는 항상 리소스의
metadata.name
입니다.예를 들어,
teleport_role
리소스는 역할의metadata.name
필드를 ID로 사용합니다. 가능한 모든 역할 ID를 찾으려면 다음 명령을 실행하십시오:tctl get roles --format json | jq '.[].metadata.name' -
import
블록에서 이전에 가져온 리소스 ID에id
필드를 할당합니다. 예를 들어,metadata.name
이myrole
인 Teleport 역할을 가져오려면 다음을 추가하십시오:import { to = teleport_role.myrole + id = "myrole" }
3/3단계. 구성 파일 생성
-
리소스 구성을 생성합니다.
terraform plan -generate-config-out=imported-resources.tf -
결과 파일
imported-resources.tf
를 검토합니다. 새resource
블록이 올바르게 표시되면 파일을 소스 제어에 체크인할 수 있습니다.
다음 단계
- 사용자 및 역할 IaC 가이드를 따라 Terraform Provider를 사용하여 Teleport 사용자 생성 및 역할 부여를 진행합니다.
- 지원되는 Terraform 프로바이더 리소스의 전체 목록을 탐색합니다.
- 지원되는 Teleport Terraform 설정 목록을 참조합니다: