개인용 레지스트리를 사용하도록 Schematics 에이전트 구성

에이전트는 Schematics Terraform 작업과 함께 개인용 Terraform 레지스트리에서 소싱된 사용자 정의 Terraform 제공자의 사용을 지원합니다. 사용자 정의 제공자 사용에 대한 지원은 공유 멀티 테넌트 Schematics 서비스에서 사용할 수 없습니다. 에이전트에서만 사용 가능합니다. 에이전트에는 로컬 또는 개인용 제공자 레지스트리가 포함되지 않습니다. 또한 사용자는 에이전트에 액세스할 수 있는 사용자 사설 네트워크에서 레지스트리를 구성할 수 있습니다.

기본적으로 Schematics 작업이 실행될 때 Terraform CLI는 인터넷 또는 공용 네트워크를 통해 공용 Terraform 레지스트리에서 필수 Terraform 제공자 플러그인 또는 Terraform 모듈을 다운로드합니다. 에이전트가 사설 네트워크에 배치되면 보안 정책은 프록시 또는 미러 사이트가 제공자 플러그인 다운로드 및 캐싱에 사용되도록 지시합니다. 또한 환경 특정 리소스를 구성하기 위해 개인용 레지스트리에서 사용자 정의 개발 Terraform 제공자를 호스팅하는 것이 바람직할 수 있습니다.

이러한 유스 케이스의 경우 Terraform을 사용하면 Terraform CLI 구성에서 provider_installation 블록을 사용하여 대체 제공자 레지스트리에서 제공자 다운로드를 구성할 수 있습니다. 이를 통해 Terraform 기본 설치 동작을 사용자 정의할 수 있습니다. 제공자 다운로드 구성에 대한 자세한 정보는 제공자 설치 에 대한 Terraform 문서를 검토하십시오.

에이전트에서 다음 두 개의 작업공간 환경 변수를 사용하여 대체 저장소를 참조하고 이 레지스트리에서 이름 및 네임스페이스별로 제공자를 선택하도록 Terraform CLI를 구성할 수 있습니다.

  • 사용자 정의 Terraform 제공자가 호스팅되는 TF_NETWORK_MIRROR_URL Terraform 개인용 저장소, 웹 사이트 또는 Artifactory 인스턴스입니다.
  • 사용자 정의 위치에서 다운로드할 제공자의 TF_NETWORK_MIRROR_PROVIDER_NAME 이름 및 네임스페이스입니다. 제공자 이름 지정 및 네임스페이스에 대한 Terraform 문서를 참조하십시오. 지정되지 않은 경우 기본적으로 모든 네임스페이스 "*/*" 의 모든 제공자가 개인용 레지스트리에서 다운로드됩니다.

Schematics 는 다음 Terraform CLI 구성 파일 매개변수를 자동으로 생성합니다. 작업 실행 중에 Terraform은 사용하려는 소수의 사용자 정의 제공자에 대해 개인용 레지스트리를 사용하거나 모든 제공자에 대해 개인용 레지스트리를 사용할 수 있습니다.

provider_installation {
network_mirror {
url = "${TF_NETWORK_MIRROR_URL}"
include = ["${TF_NETWORK_MIRROR_PROVIDER_NAME}"]
}
direct {
exclude = ["TF_NETWORK_MIRROR_PROVIDER_NAME"]
}
}

개인용 제공자 레지스트리에 액세스하기 위한 신임 정보 설정

개인용 레지스트리의 경우 대상 레지스트리에 대한 액세스 토큰을 사용하여 Terraform을 구성해야 합니다. 에이전트에서 이는 TF_TOKEN_ 환경 변수를 사용하여 작업공간 레벨에서 정의됩니다. 신임 정보 토큰 전달 구성에 대한 자세한 정보는 Terraform 환경 변수 신임 정보 문서를 참조하십시오.

Artifactory 를 제공자 레지스트리로 사용

Artifactory 는 Terraform 제공자의 소싱을 위한 대체 솔루션을 제공하며 Terraform 제공자 레지스트리 프로토콜을 완전히 지원합니다. 정의된 검색 순서를 사용하여 처음 두 유형을 집계하는 원격, 로컬 및 가상 저장소를 지원합니다.

로컬 저장소는 실제 사용자 관리 로컬 저장소입니다. 저장소는 사용자가 사용자 정의 개발 제공자를 호스팅하고 공용 제공자를 수동으로 업로드하고 저장하여 공용 네트워크 액세스가 필요하지 않도록 하는 Terraform 사설 레지스트리 역할을 합니다. 또는 Terraform 사용자가 사용할 수 있는 공용 제공자를 제한하십시오.

원격 저장소는 사설 Terraform 레지스트리 및 공용 Terraform 레지스트리 모두에 대한 캐싱 프록시 역할을 할 수 있습니다. 원격 저장소를 구현하려면 여전히 공용 인터넷 액세스가 필요합니다. 여기서 공용 네트워크 액세스는 Terraform이 아닌 Artifactory 를 통해 이루어집니다. 일반적으로 많은 조직에는 Artifactory를 통해 안전한 공용 액세스를 허용하도록 네트워크 모니터링 및 네트워크 액세스 규칙이 있는 기존 Artifactory 설치가 있습니다.

로컬 저장소와 원격 프록시 저장소를 결합하는 가상 Terraform 저장소를 사용하면 추가 공용 Terraform 제공자에 대한 보안 액세스와 함께 사용자 정의 제공자를 로컬로 호스팅할 수 있습니다.

로컬 Artifactory 제공자 레지스트리 구성

로컬 Artifactory 레지스트리를 사용하여 사용자 사설 네트워크의 에이전트에서 사용할 사용자 정의 개발 제공자를 호스팅할 수 있습니다. Artifactory 액세스는 다음 작업공간 환경 변수를 사용하여 로컬 저장소를 참조하고 이 레지스트리에서 이름 및 네임스페이스별로 제공자를 선택하도록 Terraform CLI를 구성하여 구성됩니다.

TF_TOKEN_name.artifactory.user.com:<artifactory_local_registry_token> TF_NETWORK_MIRROR_PROVIDER_NAME:"user_namespace/provider_name" TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-virtual/providers/

Artifactory 와 UI를 참조하여 베어러 토큰과 로컬 레지스트리의 URL 에 대한 값을 소싱하십시오.

다음 예제는 Schematics 가 Terraform CLI 구성을 생성하는 것을 보여줍니다.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-local/providers/"
                        include = ["user_namespace/provider_name"]
                }
                direct {
                        exclude = ["user_namespace/provider_name"]
                }
}  

원격 Artifactory 제공자 레지스트리 구성

원격 Artifactory 레지스트리를 사용하여 Terraform 공용 네트워크 액세스를 제공하지 않고 Terraform에서 사용할 공용 제공자를 캐시할 수 있습니다. Artifactory 액세스는 원격 저장소를 참조하고 이 프록시 레지스트리를 사용하여 모든 제공자를 검색하도록 Terraform CLI를 구성하기 위해 다음 작업공간 환경 변수를 사용하여 구성됩니다.

TF_TOKEN_name.artifactory.user.com:<artifactory_remote_registry_token> TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-remote/providers/

Artifactory 와 UI를 참조하여 베어러 토큰과 원격 레지스트리의 URL 에 대한 값을 가져옵니다.

다음 예제는 Schematics 가 Terraform CLI 구성을 생성하는 것을 보여줍니다.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-remote/providers/"
                        include = ["*/*"]
                }
                direct {
                        exclude = ["*/*"]
                }
        }

가상 Artifactory 제공자 레지스트리 구성

가상 Artifactory 레지스트리를 사용하여 사용자 정의 제공자의 호스팅을 Terraform에서 사용할 공용 제공자의 캐싱과 결합할 수 있습니다. Artifactory 액세스는 가상 저장소를 참조하고 이 프록시 레지스트리를 사용하여 모든 제공자를 검색하도록 Terraform CLI를 구성하기 위해 다음 작업공간 환경 변수를 사용하여 구성됩니다.

TF_TOKEN_name.artifactory.user.com:<artifactory_virtual_registry_token> TF_NETWORK_MIRROR_URL=https://name.artifactory.user.com>/artifactory/api/terraform/<user-terraform-virtual/providers/

Artifactory 와 UI를 참조하여 베어러 토큰과 가상 레지스트리의 URL 에 대한 값을 가져옵니다. 가상 저장소는 이전 절에서 설명한 대로 로컬 및 원격 레지스트리의 집합으로 구성되어야 합니다.

다음 예제는 Schematics 가 Terraform CLI 구성을 생성하는 것을 보여줍니다.

provider_installation {
                network_mirror {
                        url = "https://name.artifactory.user.com/artifactory/api/terraform/user-terraform-virtual/providers/"
                        include = ["*/*"]
                }
                direct {
                        exclude = ["*/*"]
                }
        }