본문 바로가기

DevOps/Terraform

[T102 7주차] (20) 테라폼 Cloud Oauth 인증 사용하기

cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 7주차 정리입니다.

Oauth란 무엇인가요? 

✅  인증을 대신 해 주는 기술

  • 아래와 같은 로그인 창을 보셨을 것입니다. 별도의 회원가입 없이 로그인을 제공하는 플랫폼의 아이디만 있으면 서비스를 이용 할 수 있습니다

  • 이러한 기술은 어떻게 이루어져있을까요? 
  • 자세한 내용은 다음 생활코딩 강좌를 참고하시길 바랍니다.

https://www.youtube.com/watch?v=hm2r6LtUbk8&list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-

 


1. Github Provider 연동 하기

  • VCS와 직접 통합되어 별도 워크플로 작성 없이도 풀 리퀘스트에 대한 Plan 결과를 확인할 수 있으며 지정된 브랜치에 병합이 발생하면 테라폼을 실행하는 자동화된 구성이 가능하다. 지원되는 VCS는 아래와 같다
    • Github.com / Github.com (OAuth) / Github Enterprise
    • Gitlab.com / Gitlab EE와 CE
    • Bitbucket Cloud / Bitbucket Server
    • Azure DevOps Server / Azure DevOps Services
  • TFC Org → Setting → Provider ⇒ [Add a VCS provider] 클릭 : Github.com (Custom) 선택 후 → [register a new OAuth Application] 클릭

  • Provider 선택
  • Add a VCS Provider 클릭 > Github.com(Custom)
  • register a new Oauth Application 클릭

  • github에 정보 입력 > register Application

Application name:	Terraform Cloud (themapisto-org)
Homepage URL:	https://app.terraform.io
Application description:	Any description of your choice
Authorization callback URL:	https://app.terraform.io/auth/{{변수값}}/callback
  • Client ID 와 Secret 획득

  • 완료


2. TFC 워크스페이스 연동

  • 이전에 사용한 워크스페이스 선택 → Setting → Version Control 선택 ⇒ [Connect to version control] 클릭
    • 연동된 VCS목록에서 [My Github.com] 선택
    • 포크된 저장소 선택
    • Confirm changes :Auto Apply 선택, Always trigger runs 선택, VCS branch(main 입력), Pull Request(Automatic… 체크) → 하단 Update VCS Setting 클릭

  • 워크스페이스와 VCS간 최초 연동되면 마지막 커밋 내용을 기반으로 Run이 실행된다.
  • 마지막 Run 확인

3. TFC 워크스페이스 실행

- VCS를 통한 풀 리퀘스트 동작 확인

  • main.tf 파일 수정 : terraform.cloud 블록 주석 처리 ← VCS 연동으로 더 이상 필요하지 않음
terraform {
  # cloud {
  #   organization = "themapisto-org"
  #   hostname     = "app.terraform.io" # default

  #   workspaces {
  #     name = "terraform-aws-tfc-workflow"
  #   }
  # }
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.0"
    }
  }
}

**** 중략
  • tfc-workflow 브랜치 생성, 커밋, 푸시
git branch -M tfc-workflow2
git add .
git commit -m "tfc workflow2"
git push origin HEAD
  • 자신의 github 에서 PR 생성 → Merge pull request : Confirm

  • TFC 워크스페이스에서 확인
  • TFC에서 생성된 리소스 삭제 : TFC 워크스페이스 Setting → Destruction and Delete ⇒ Queue destroy plan 로 생성된 리소스 삭제