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 생성
1. 왼쪽 탭의 Project를 클릭 --> New project를 클릭하여 새로운 Project를 생성합니다.
2. Project 생성 확인
2-2) Workspace 생성
1. 왼쪽 탭에서 Project를 선택하고 Workspace를 생성할 Project를 클릭합니다.
2. 오른쪽 상단의 New 버튼 --> Workspace 를 클릭합니다.
3. Workspace 생성 시 기존에 연동해놓은 VCS 선택을 위해 Version Control Workflow를 선택합니다.
4. Connect to VCS에서는 사전에 등록한 VCS Provider를 클릭합니다.
- 사전에 등록한 VCS가 아닌 새로운 VCS의 Repository를 선택하고 싶은 경우 'Connect to a different VCS'를 클릭하여 새로운 VCS를 연동하여 Workspace를 생성할 수 있습니다.
5. Choose a repository에서는 Workspace에 연동할 Repository를 선택합니다.
6.
- 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 버튼을 클릭합니다.
7. 생성된 Workspace를 확인 후 오른쪽 상단의 New run을 클릭하여 Terraform을 실행합니다.
- Run Type 설정을 통해 Plan만 동작하게 할 것인지, Plan & Apply를 동작하게 할것인지 등을 선택하여 실행할 수 있습니다.
8. Plan and Apply (standard)로 Run을 실행하였다면 다음과 같이 Workspace 동작을 확인할 수 있습니다.
'Terraform Cloud(HCP Terraform)' 카테고리의 다른 글
HCP Terraform(Terraform Cloud)의 No-code provisioning (0) | 2024.05.19 |
---|---|
HCP Terraform(Terraform Cloud)의 Module 사용 (0) | 2024.05.19 |
HCP Terraform(Terraform Cloud)의 VCS연동(Github, GitLab, Bitbucket..) (2) | 2024.05.19 |
HCP Terraform(Terraform Cloud)의 Variable Sets (0) | 2024.05.15 |
HCP Terraform(Terraform Cloud)의 계정 관리 (0) | 2023.08.10 |