인포레터에서 최신 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_configcluster_maintenance_configteleport_cluster_networking_configcluster_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 설정 목록을 참조합니다: