본문 바로가기!

Terraform Cloud(HCP Terraform)

HCP Terraform(Terraform Cloud)의 VCS연동(Github, GitLab, Bitbucket..)

728x90
반응형

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

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

 

 

1. VCS (Version Control System) 이란?

 

VCS는 코드의 변경 사항을 추적하고 관리하는 시스템을 말합니다.

소프트웨어 개발의 필수 도구로서, 여러 개발자가 동시에 작업할 수 있도록 도와주며 코드의 변경 내역을 기록하여 협업을 할 수 있습니다.

 

주요 기능 

  • 버전 관리: 코드의 변경 사항을 버전별로 관리하여 과거 상태로의 롤백이 가능하게 합니다. 이를 통해 실수나 버그가 발생했을 때 손쉽게 이전 버전으로 되돌릴 수 있습니다.
  • 브랜치 관리: 여러 브랜치를 사용하여 독립적인 개발을 진행하고, 최종적으로 메인 브랜치에 병합할 수 있습니다. 이를 통해 개발자들은 독립적으로 기능을 개발하고, 안정적인 메인 코드베이스를 유지할 수 있습니다.
  • 변경 내역 추적: 코드의 변경 사항을 기록하여 누가, 언제, 어떤 변경을 했는지 추적할 수 있습니다. 이를 통해 코드 변경의 원인과 결과를 명확히 이해할 수 있습니다.
  • 협업 도구: 풀 리퀘스트(Pull Request), 코드 리뷰, 이슈 추적 등의 기능을 통해 팀원 간 협업을 촉진합니다. 이러한 도구를 사용하면 코드 품질을 향상시키고, 팀원 간의 커뮤니케이션을 원활하게 할 수 있습니다.

VCS 사용의 장점

  • 안전성: 코드의 손실 위험을 줄이고, 안정적인 백업을 제공합니다. 각 코드 버전은 안전하게 저장되며, 필요시 언제든지 복원할 수 있습니다.
  • 효율성: 개발자들이 병렬로 작업할 수 있어 개발 속도가 향상됩니다. 브랜치 기능을 활용하면 여러 기능을 동시에 개발하고 테스트할 수 있습니다.
  • 투명성: 코드 변경 내역이 모두 기록되므로, 프로젝트의 진행 상황과 변경 이력을 투명하게 관리할 수 있습니다. 이를 통해 팀 전체의 협업과 커뮤니케이션이 개선됩니다.

VCS로는 Github, GitLab, Bitbucket 등이 있으면, HCP Terraform은 이러한 VCS와 연동을 통해 코드 변경 시 자동으로 Terraform 작업을 수행할 수 있습니다.

 

 

 

2. HCP Terraform 과 VCS(GitHub) 연동

HCP Terraform에서 VCS 제공자(GitHub SasS)를 연동할 때 GitHub.com과 GitHub.com(Custom)을 선택할 수 있습니다.

  • 이 두 옵션은 GitHub와 HCP Terraform 간의 연동 방식에 따라 다릅니다. 

 

  • GitHub.com App은 GitHub에서 공식적으로 제공하는 애플리케이션을 사용하여 HCP Terraform과 연동하는 방법입니다.
  • GitHub.com(custom)은 GitHub의 커스텀 OAuth 애플리케이션을 사용하여 HCP Terraform과 연동하는 방법으로 사용자가 직접 OAuth 애플리케이션을 설정하고 관리하는 방식입니다.

 

 

 

3. GitHub.com 으로 연동하는 법

 

1. Workspace 생성의 Connect to VCS에서 GitHub -> GitHub.com을 클릭합니다.

 

 

2. GitHub 의 인증 페이지로 리다이렉트된 페이지를 확인 후 Authorize Terraform Cloud를 클릭합니다.

 

 

3. 사용하고자하는 Organization을 선택합니다.

  • All repositories를 선택할 경우 해당 GitHub Org에 존재하는 모든 Repo를 HCP Terraform에서 연동 가능하며, Only select repositories를 선택할 경우 선택 Repo만 HCP Terraform 에서 연동이 가능합니다.

 

 

4. Workspace에 연동할 Repository를 선택합니다.

 

 

5. Workspace의 이름을 지정한 후 Create를 클릭합니다.

 

 

6. 생성된 Workspace와 연동되어 있는 Repository를 확인합니다.

 

 

7. GitHub에서 Setting -> Application에 다음과 같이 Installed GitHub Apps에 Terraform Cloud가 설치되어 있는 것을 확인할 수 있습니다.

 

 

 

 

4. GitHub.com(custom) 으로 연동하는 법

 

1. HCP Terraform에 Organization에 접속후 왼쪽 탭의 Settings를 클릭합니다.

 

 

2. 왼쪽 탭의 Providers를 클릭 후 Add a VCS provider를 클릭합니다.

 

 

3. Connect to VCS에서 GitHub의 GitHuh.com (Custom)을 클릭합니다.

 

 

4. Set up provider에서 register a new OAuth Application 을 클릭합니다.

 

 

5. register a new OAuth Application 을 클릭하게 되면 다음과 같이 GitHub 페이지가 뜨게 됩니다.

  • Application name과 Hompage URL, Authorization callback URL을 확인 후 Register application을 클릭합니다.

 

 

6. Client ID를 확인하고, Generate a new client secret을 클릭하여 Client Secret을 발급받습니다.

 

 

7. HCP Terraform 화면으로 돌아와서 GitHub의 Client ID와 Client Secret을 입력합니다.

  • Name에는 HCP Terraform 에 등록될 VCS Provider 이름을 입력합니다. (예시 : GitHub-leejunho)
  • 모두 입력하였다면 하단의 Connect and continue를 클릭합니다.

 

 

8. Authorize ~~ 를 클릭합니다.

  • 자신의 속해있는 다른 GitHub Organization에 Repository를 연동하고 싶다면 Organization access 부분의 사용하고 하는 Organization에 Request 또는 Grant를 클릭하여야 합니다.

 

 

9. Advanced Settings에서 Scope을 정의합니다.

  • All Projects : HCP Terraform에 등록되어 있는 VCS Provider를 모든 Project의 Workspace가 사용 가능합니다.
  • Selected Projects : HCP Terraform에 등록되어 있는 VCS Provider를 선택된 Project의 Workspace들만 사용이 가능합니다.

 

 

10. Skip and finish를 클릭합니다.

  • 저장소에 SSH를 통해서만 액세스할 수 있는 Git 하위 모듈이 포함되어 있는 경우 OAuth 자격 증명과 함께 SSH 키를 추가하여 사용이 가능합니다.

 

 

11. 등록된 VCS Providers 확인

  • 정상적으로 GitHub-leejunho 라는 이름으로 GitHub이 연동된 것을 확인할 수 있습니다.

 

 

12. Workspace 생성에서 다음과 같이 미리 등록한 VCS Provider를 통해 GitHub의 Repository를 연동하여 사용 가능합니다.

 

 

13. GitHub의 Settings -> Developer Settings -> OAuth Apps에 연동된 HCP Terraform을 확인할 수 있습니다.

728x90
반응형