<1> TFC + VCS 연계 : p278 1 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 2 여기서는 Github.com 과 연동해보자 3 테라폼 클라우드와 VCS간 연동이 필요하다. 테라폼 클라우드와 Github.com 연동 작업해보자~ TFC Org → Setting → Version Control > Provider ⇒ [Add a VCS provider] 클릭 : Github.com (Custom) 선택 후 → [register a new OAuth Application] 클릭 아래 내용 입력 register a new OAuth Application. 클릭. Application name:Terraform Cloud (topasvga-org) Homepage URL: https://app.terraform.io Application description: Any description of your choice Authorization callback URL: https://app.terrafxxxxxxxxx 앞에 있다 하단 Register application 클릭 4 Generagate a new client secret 클릭 후 생성 메모 맨 하단 Update application 4 Client ID와 Client Secret가 필요하다. 만들자. 5 TFC 입력 테라폼 클라우드 앞 화면으로 가자 - Name : My Github.com - Client ID : - Client Secret : SSH Keypair 은 필수는 아니므로 [Skip and finish] 로 연동 마무리. → 맨 하단 Connect and continue ⇒ 변경 화면에서 Grant 처리하고 최종적으로 [Authorize] <2> 워크스페이스에 VCS를 연계 - 최초 동작 현재 사용하고 있는 워크스페이스에 VCS연계하자. 1 대상 VCS와의 인증 및 권한 처리가 완료되었으므로 다음 과정을 통해 워크스페이스에 VCS를 연계, 워크스페이스는 Admin 권한으로 수행한다 2 워크스페이스 선택 → Setting → Version Control 선택 ⇒ [Connect to version control] 클릭 Version control workflow 선택 연동된 VCS목록에서 [My Github.com] 선택 포크된 저장소 선택 Confirm changes :**Auto Apply** 선택, **Always trigger runs** 선택, VCS branch(main 입력), Pull Request(Automatic… **체크**) → 하단 **Update VCS Setting** 클릭 3 워크스페이스와 VCS간 최초 연동되면 마지막 커밋 내용을 기반으로 Run이 실행된다. 워크스페이스 Overview에서 확인 [Run] 메뉴로 이동해 깃허브에 의해 트리거링된 정보를 확인하고 Apply를 실행한다 리소스 생성 완료 확인 4 AWS 콘솔가서 만들어진 부분을 확인하자!!! <3> VCS를 통한 풀 리퀘스트 동작 확인 1 코드를 바꾸면 잘 동작하는지 확인하자~~ 2 main.tf 파일 수정 : terraform.cloud 블록 주석 처리 ← VCS 연동으로 더 이상 필요하지 않음 아래 Project 내용도 주석 처리하자. Project = "terraform cloud workflow" 3 cd terraform-aws-tfc-workflow/ terraform { # cloud { # organization = "topasvga-org" # hostname = "app.terraform.io" # default # workspaces { # name = "terraform-aws-tfc-workflow" # } # } required_providers { aws = { source = "hashicorp/aws" version = "~> 4.0" } } } provider "aws" { region = var.region default_tags { tags = { Project = "terraform cloud workflow" Owner = "jerry & tom" } } } 4 tfc-workflow 브랜치 생성, 커밋, 푸시 git branch -M tfc-workflow git add . git commit -m "tfc workflow" git push origin HEAD 결과 나오는 링크 클릭해 가자. https://github.com/topasvga/terraform-aws-tfc-workflow/pull/new/tfc-workflow 5 나의 github로 변경하자!!! (필수) 자신의 github 에서 rp 생성 에러. 에러 조치 주석처리. 추가 연결 필요 없음!! terraform { #<<<<<<< tfc-workflow ======= # cloud { # organization = "topasvga-org" # hostname = "app.terraform.io" # default # # workspaces { # name = "terraform-aws-tfc-workflow" # } # } # >>>>>>> main required_providers { aws = { source = "hashicorp/aws" version = "~> 4.0" } } } → Merge pull request : Confirm 5 AWS 콘솔 VPC의 태그 변경 확인 Project = "terraform cloud workflow"