작업공간에서 환경 변수 사용
Terraform은 환경 변수를 사용하여 동작의 여러 측면을 사용자 정의합니다. 환경 변수는 디버깅을 위한 출력 상세도를 늘리거나 거의 사용되지 않는 런타임 매개변수를 설정하는 데 사용됩니다.
예를 들어, parallelism은 숫자 플래그 범위가 1 and 256 인 환경 변수 중 하나이며, 기본값은 10 입니다. 병렬 처리는 런타임에 terraform plan 및 terraform apply 을 실행할 때, 동시 작업 시 오류가 발생하거나 비표준 속도 제한이 적용되는 인프라
제공자를 구성하는 데 사용됩니다.
환경 변수는 작업공간 업데이트 API및 JSON 파일을 전달하는 CLI를 사용해서만 설정할 수 있습니다. 자세한 정보는 Workspace update CLI 명령 을 참조하십시오.
IBM Cloud 프로젝트 서비스에서 워크스페이스를 만든 경우 환경 변수를 설정하는 방법에 대한 참조로 CLI를 사용하여 Terraform 로그 활성화하기를 참조하세요.
사용량
TF_CLI_ARGS를 env-vars로 전달
Schematics 작업공간에서 Terraform 명령행 인수 TF_CLI_ARGS 를 환경 변수 (예: TF_CLI_ARGS_plan) 및 TF_CLI_ARGS_apply 로 전달하여 조작을 사용자 정의할 수 있습니다.
Terraform은 이러한 환경 변수를 읽고 런타임에 적용합니다. Terraform 명령줄 인수에 대한 자세한 내용은 다음을 참조하십시오. TF_CLI_ARGS and TF_CLI_ARGS_name.
병렬 처리 또는 TF_LOGS 설정 예
여기에 표시된 예제를 사용하여 Terraform에 전달할 환경 변수를 설정할 수 있습니다.
작성 시 병렬 처리 설정
코드 블록은 병렬 처리가 환경 변수로 전달된 Schematics API 작성 을 사용하여 작업공간을 작성하기 위한 샘플 페이로드입니다.
{
"name": "bb",
"type": [
"terraform_v1.4"
],
"template_repo": {
"url": "url"
},
"template_data": [
{
"folder": ".",
"type": "terraform_v1.4",
"variablestore": [
{
"value": "<val>",
"name": "ibmcloud_api_key",
"type": "string",
"secure": true
}
],
"env_values": [
{
"TF_LOG": "debug"
},
{
"TF_CLI_ARGS_apply": "-parallelism=20"
},
{
"TF_CLI_ARGS_plan": "-parallelism=20"
}
]
}
]
}
작성 후 병렬 처리 설정
Schematics Workspace 업데이트 API를 사용하여 환경 변수를 업데이트하기 위한 페이로드의 샘플 env_values 블록입니다. 자세한 예제는 작업공간 입력 변수 업데이트 API를 참조하십시오.
"env_values": [
{
"TF_CLI_ARGS_plan": "-parallelism=20"
},
{
"TF_LOG": "debug"
}
]
카탈로그 배치에 대한 병렬 처리 설정
환경 변수는 컨텐츠 온보딩 시에만 설정할 수 있습니다. TF_CLI_ARGS 환경 변수를 설정하려면 카탈로그 문서를 참조하십시오.
Terraform 환경 변수 목록
IBM Cloud Schematics에서는 디버깅 목적으로 다음 환경 변수를 지원합니다. 특수 환경 변수에 대한 자세한 내용은 “환경 변수”를 참조하십시오.
| 가변 | 설명 | 사용량 |
|---|---|---|
TF_LOG |
표준 오류에 표시되는 상세 로그. 지원 값은 TRACE, DEBUG, INFO, WARN 또는 ERROR입니다. | "TF_LOG": "TRACE" |
TF_LOG_PROVIDER |
Terraform 제공자 문제를 디버깅하려면 로그 출력 관리를 참조하십시오. | "TF_LOG_PROVIDER": "TRACE" |
TF_INPUT |
입력 값을 입력하기 위해 프롬프트를 사용하지 않는 명령입니다. 기본값은 false 또는 0입니다. | "TF_INPUT": "0" |
TF_CLI_ARGS 및 TF_CLI_ARGS_name |
TF_CLI_ARGS는 명령행에 추가 인수를 지정합니다. 이를 통해 클라우드 인프라 환경에서 좀 더 쉽게 자동화할 수 있습니다. 또한 자체 시스템에서 Terraform의 기본 동작을 수정합니다. TF_CLI_ARGS 및 TF_CLI_ARGS_name은(는) 컨텐츠 카탈로그가 아닌 경우에만 사용됩니다. |
"TF_CLI_ARGS_apply": "-parallelism=20" |
TF_REGISTRY_DISCOVERY_RETRY |
원격 레지스트리 클라이언트가 클라이언트 연결 오류에 시도할 수 있는 최대 요청 재시도 횟수를 설정하십시오. | "TF_REGISTRY_DISCOVERY_RETRY": "10" |
TF_REGISTRY_CLIENT_TIMEOUT |
외부 상황을 늘리도록 설정하십시오. 원격 레지스트리의 기본값은 10 seconds입니다. |
"TF_REGISTRY_CLIENT_TIMEOUT": "15" |
TF_IGNORE |
무시된 파일 및 폴더를 표시하도록 디버그 메시지를 출력하십시오. .terraformignore 파일이 포함된 저장소를 디버깅할 때 유용합니다. 기본값은 trace입니다. |
"TF_IGNORE": "trace" |
TF_PARALLELISM |
런타임 액션에서 병렬 처리 환경 변수를 읽어들이고, 콘텐츠 카탈로그에 한해 모든 ‘ Schematics ’ 액션에서 병렬 처리 값을 재설정합니다. ‘ TF_PARALLELISM ’는 콘텐츠 카탈로그에만 적용됩니다. |
"TF_PARALLELISM": "20" |
Terraform 제공자 문제를 디버깅하기 위해 추가 환경 변수가 지원됩니다. 로그 출력 관리를 참조하십시오.