InfoGrab Docs

Terraform으로 Teleport 리소스 가져오기

기존 Teleport 리소스를 Terraform으로 가져오는 방법

이 가이드는 기존 Teleport 동적 리소스를 Terraform 리소스로 가져오는 방법을 보여줍니다. tctl 이나 Kubernetes Operator 같은 다른 클라이언트 도구를 사용하여 Teleport 리소스를 이미 생성했고, Terraform 구성으로 모든 Teleport 리소스를 관리하고 싶다면, 기존 Teleport 리소스를 나타내는 resource 블록이 포함된 .tf 파일을 생성하는 다음 단계를 따르세요. 모든 Teleport 리소스를 한 곳에 정의함으로써 클러스터 구성이 예상과 일치하는지 확인하는 데 도움이 됩니다. 동작 방식 # 다른 호환 가능한 Terraform 프로바이더와 마찬가지로, Teleport 프로바이더를 사용하면 Teleport Auth Service가 백엔드에 저장한 기존 리소스를 기반으로 Terraform 구성을 생성할 수 있습니다. Terraform 프로바이더가 지원하는 모든 Teleport 리소스 목록은 Terraform 리소스 참조 를 참조하세요. 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단계.