테라폼 클라우드의 간단한 초기 구성 튜토리얼 입니다. 배포 환경은 Azure 입니다.
Workspace 생성
브라우저에서 테라폼 클라우드에 로그인 한 후 CLI-driven workflow 타입의 Workspace를 생성합니다.
이 글에선 CLI Driven workflow를 소개합니다. CLI Driven은 테라폼 OSS 사용과 동일하게 로컬 환경에서 CLI를 통해 작업을 하지만, 테라폼의 실질적인 실행 및 백앤드는 테라폼 클라우드가 됩니다.
이외에도 VCS Driven, API Driven과 같은 다른 타입의 워크스페이스를 사용할 수도 있습니다.
Secret Variable 세팅
Azure에 접근하기 위해 Service Principal 정보를 환경변수로 세팅 합니다.
ARM_TENANT_ID
ARM_SUBSCRIPTION_ID
ARM_CLIENT_ID
ARM_CLIENT_SECRET
기본적으로 테라폼 클라우드의 실행모드는 Remote 모드로 되어 있습니다. Remote 모드란, Terraform 구동이 클라우드에서 실행 됨을 의미하며, 이때, 클라우드 상에서 구동되는 Terraform Engine이 Azure에 인프라 배포를 위해 API 호출시 사용하게될 Credential 입니다.
변수 입력 시 Environment variable을 선택하고, 민감한 정보 이므로, Sensitive를 체크해 줍니다.
Terraform Cloud 로그인
로컬 작업 공간에서 Terminal을 실행하고, 테라폼 클라우드에 로그인 합니다.
terraform login
명령시 API Token을 생성하는 화면이 팝업 되며, 생성한 토큰을 로컬에 다시 붙여넣기 합니다. (토큰은 유저에게 발행됩니다.)
로그인에 사용된 토큰은 로컬의 ~/.terraform.d/credentials.tfrc.json 파일에 보관되며, 로컬에 저장된 토큰은 로컬 Shell에서 TFC와 상호작용 할때 사용됩니다. 클라우드 포털에선 User settings -> Tokens 에서 발행 기록을 확인할 수 있습니다.
백앤드 작성 및 Initialize
테라폼 클라우드는 Backend Block을 Cloud Block으로 표현할 수 있습니다. Workspace Overview에 나와있는 백앤드 세팅을 그대로 구성파일에 작성해 준 뒤, Initialize 해줍니다.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
}
cloud {
organization = "hyukjun"
workspaces {
name = "test-workspace"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "tfc" {
name = "tfc-rg"
location = "koreacentral"
}
Plan & Apply
이제 리소스를 배포 해볼 차례 입니다.
CLI Driven의 Workpsace 이므로, 로컬 환경에서 CLI를 통해 작업시 클라우드와 동기화 되어 작업이 실행됩니다.
실제 실행(Terraform Engine의 구동)은 클라우드에서 진행되며, 동시에 로컬 Shell에서도 작업 진행 내용을 확인할 수 있습니다. (Apply 후 배포된 리소스를 포털에서 확인할 수 있습니다.)
테라폼 클라우드 초기 구성에 대한 간단한 튜토리얼을 작성해 보았습니다. 공식 홈페이지에서 잘 정리된 튜토리얼을 따라해 볼 수 있지만, 개인적으로 가장 간단하고 필요한 부분만 선별하여 튜토리얼을 작성해 보았습니다.
여기 소개되지 않은 테라폼 클라우드의 다양한 기능들에 대해서는 다음 글에서 추가적으로 소개하도록 하겠습니다.
감사합니다.
(이 글은 미디엄에서 22.10.09일에 작성하였습니다.)