본문 바로가기!

Terraform Cloud(HCP Terraform)

HCP Terraform(Terraform Cloud)의 Variable Sets

728x90
반응형

2024년 4월 22일부터 Terraform Cloud의 이름이 HCP Terraform으로 변경되었습니다.

하기 내용에서는 Terraform Cloud 이름 대신 HCP Terraform 이름으로 대체하여 설명을 진행하도록 하겠습니다.

 

 

 

1. HCP Terraform의 Variable Sets 이란?

 

HCP Terraform의 Variable Set은 여러 Workspace 또는 Project 에 걸쳐 공통으로 사용할 수 있는 변수들의 집합입니다.

Variable Sets 을 통해 변수 설정을 중앙에서 관리할 수 있게 하여, Workspace 또는 Project 간에 일관성을 유지하고 관리의 복합성을 줄일 수 있습니다.

 

Variable Sets의 주요 기능

  • 중앙 집중식 관리 
    • 여러 Workspace에서 공통으로 사용하는 변수들을 하나의 Variable Set으로 관리하여 일관성을 유지합니다.
  • 재사용성
    • 한 번 설정한 변수들을 여러 Workspace에서 재사용할 수 있어 설정 작업을 줄일 수 있습니다.
  • 보안 및 민감 데이터 보호 
    • 민감한 데이터를 변수로 설정할 때 Sensitive(보안) 기능을 통해 안전하게 관리할 수 있습니다.

 

 

 

2. Variable Sets 사용 예시

 

HCP Terraform UI에서 새 Variable Sets를 생성합니다.

  • "Settings" -> "Variable sets"를 선택합니다.

 

 

 

Variable set scope

  • Apply golbally: Organization에 존재하는 모든 Workspace에 적용
  • Apply to specific projects and workspaces
    • Apply to projects: 선택한 Project들에 있는 모든 Workspace에 적용
    • Apply to workspaces: 선택한 Workspace들에 적용

 

 

 

Variable set priority

  • Prioritize the variable values in this variable set 을 선택하게 되면 동일한 키를 가진 다른 모든 변수보다 이 variable set이 우선으로 적용되게 됩니다.

Variables

  • Select variable category: 변수를 'Terraform variable' 또는 'Environment variable'로 설정합니다.
    • Terraform variable: Terraform 코드 내에서 참조되는 변수
    • Environment variable: Terraform 실행 환경에서 사용되는 환경 변수
  • Key: 변수의 이름을 입력합니다.
  • Value: 변수 값을 입력합니다.
  • HCL: 이 옵션을 체크하면 변수 값이 HCL로 해석됩니다.
  • Sensitive: 민감한 데이터일 경우 이 옵션을 체크하여 UI상에서 해당 값을 숨길 수 있습니다.

 

 

 

3. OSS 와의 비교

  • OSS의 경우 각 워크스페이스(폴더)마다 변수를 개별적으로 관리해야합니다.
  • HCL Terraform의 경우 Variable Sets을 통해 여러 Project 또는 Workspace에서 공통으로 사용할 변수를 한 번에 관리할 수 있으며 Sensitive 기능을 통해 변수값을 안전하고 일관성을 유지하는데 도움을 줄 수 있습니다.

 

 

 

4. HCP Terraform의 Variable 우선순위

  • HCP Terraform은 다음 우선순위에 따라 충돌하는 변수의 우선순위를 지정하고 덮어씁니다.
  1. Priority Gloabl Variable Sets
  2. Priority Project-Scoped Variable Sets
  3. Priority Workspace-Scoped Variable Sets
  4. Command Line Argument Variables
  5. Local Environment Variable Prefixed with TF_VAR_
  6. Workspace-Sepcific Vairbles
  7. Workspace-Scoped Variable Sets
  8. Project-Scoped Variables Sets
  9. Global Variable Sets
  10. *.auto.*tfvars Variable Files
  11. terraform.tfvars Variable file
728x90
반응형