반응형
2024년 4월 22일부터 Terraform Cloud의 이름이 HCP Terraform으로 변경되었습니다.
하기 내용에서는 Terraform Cloud 이름 대신 HCP Terraform 이름으로 대체하여 설명을 진행하도록 하겠습니다.
1. HCP Terraform의 Project & Workspace
- Project
- HCP Terraform의 Project를 통해 사용자는 작업공간(workspace)의 특정 하위 집합을 격리하고 단일 조직 내에서 권한을 정의 가능가 가능합니다.
- Workspaces
- Workspace는 Terraform이 실행되는 독립적인 작업공간을 의미합니다.
- 설정된 backend에 workspace에 state를 저장하고 하나의 state는 하나의 workspace로 관리됩니다.
- HCP Terraform은 자체적은 backend를 제공합니다.
- Terraform OSS의 경우 기본적으로 local에 state를 저장하거나 backend를 AWS의 경우 S3에 저장하게끔 설정하게 되는데, HCP Terraform의 경우 기본적으로 자체 backend에 state를 저장하게 됩니다.
2. Project & Workspace 생성
- HCP Terraform 의 특정 Organization에 접속하면 다음과 같이 왼쪽 탭을 통해 Project, Workspace들을 확인할 수 있습니다.
2-1) Project 생성
- 왼쪽 탭의 Project를 클릭 --> New project를 클릭하여 새로운 Project를 생성합니다.
- Project 생성 확인
2-2) Workspace 생성
- 왼쪽 탭에서 Project를 선택하고 Workspace를 생성할 Project를 클릭합니다.
- 오른쪽 상단의 New 버튼 --> Workspace 를 클릭합니다.
- Workspace 생성 시 기존에 연동해놓은 VCS 선택을 위해 Version Control Workflow를 선택합니다.
- Connect to VCS에서는 사전에 등록한 VCS Provider를 클릭합니다.
- 사전에 등록한 VCS가 아닌 새로운 VCS의 Repository를 선택하고 싶은 경우 'Connect to a different VCS'를 클릭하여 새로운 VCS를 연동하여 Workspace를 생성할 수 있습니다.
- Choose a repository에서는 Workspace에 연동할 Repository를 선택합니다.
- Configure Settings
- Workspace의 이름과 Description을 작성합니다.
- Workspace Settings
- Terraform Working Directory: Terraform이 apply될 디렉토리의 경로(위치)를 의미합니다.
- VCS Triggers
- HCP Terraform은 Workspace에 VCS를 연동해놓으면 VCS에 내용이 업데이트될 경우 Trigger를 발생해 연동되어 있는 Workspace의 동작여부를 결정할 수 있습니다.
- Always trigger runs: 연동되어 있는 Repository에 변화가 있으면 모든 변화에 대해 Trigger가 발생해 동작하게 됩니다.
- Only trigger runs when files in specified paths change: 지정된 경로의 파일이 변경되는 경우에만 Trigger가 실행됩니다.
- Terrafom 이 동작(Apply) 될 디렉토리 경로의 위치가 루트라면 Workspace의 이름과 Description 내용만 입력 후 하단의 Create 버튼을 클릭합니다.
- 생성된 Workspace를 확인 후 오른쪽 상단의 New run을 클릭하여 Terraform을 실행합니다.
- Run Type 설정을 통해 Plan만 동작하게 할 것인지, Plan & Apply를 동작하게 할것인지 등을 선택하여 실행할 수 있습니다.
- Plan and Apply (standard)로 Run을 실행하였다면 다음과 같이 Workspace 동작을 확인할 수 있습니다.
반응형
'Terraform' 카테고리의 다른 글
[Terraform] Variables, Outputs, Data, functions (0) | 2024.05.12 |
---|---|
[Terraform] Resource Block 구문 문법(lifecycle, depends_on) (0) | 2024.05.12 |
[AWS Partner Summit Seoul] Hands On 세션 지원 후기 (Well-Architected 에 기반하여 워크로드를 안전하게 마이그레이션하고 현대화하기) (0) | 2024.04.27 |
[테라폼] ECS배포 및 revision관리 (1) | 2023.12.03 |
[테라폼] EKS 배포 및 Add on 설치 (0) | 2023.10.20 |