Git을 사용하여 버전이 지정된 Terraform 모듈

사용자 지정 Terraform 모듈(모듈 구성)을 작성할 때 Terraform 레지스트리에 업로드하지 않으려는 몇 가지 이유가 있습니다.
제 경험상 가장 눈에 띄는 우려 사항은 개인 정보 보호와 사용 편의성입니다. 개인용 Terraform 레지스트리를 생성할 수 있지만 원치 않는 복잡성의 또 다른 계층이 추가됩니다.

Terraform 레지스트리의 모듈이 이미 Github를 사용하고 있다는 점을 고려하면 레지스트리는 공용 모듈을 쉽게 배포하고 공유할 수 있는 추상화입니다. 그러나 모듈이 비공개인 경우 추가되는 것이 많지 않습니다.

git Terraform 모듈에 버전 관리를 추가하면 여러 환경에서 사용 중인 모듈을 크게 변경할 수 있습니다.

대신 동영상을 보고 싶으신가요?



git을 사용하여 버전이 지정된 Terraform 모듈을 사용하는 방법에 대한 단계별 안내를 보려면 아래 축소판을 클릭하십시오.

테라폼 모듈



복잡하지 않게 개인 ACL로 S3 버킷을 생성하는 작은 모듈을 만들 것입니다. main.tf , variables.tfoutputs.tf 라는 3개의 파일에서 이 작업을 수행합니다. 대부분의 경우 .gitignore 파일도 추가하는 것이 현명합니다.

main.tf

provider "aws" {
  region = var.region
}

resource "aws_s3_bucket" "myBucket" {
  bucket = var.name
}

resource "aws_s3_bucket_acl" "myBucket" {
  bucket = aws_s3_bucket.myBucket.bucket
  acl    = var.acl
}


변수.tf

variable "region" {
  type    = string
  default = "us-east-1"
}

variable "name" {
  type = string
}

variable "acl" {
  type    = string
  default = "private"
}


출력.tf

output "bucket_arn" {
  value = aws_s3_bucket.myBucket.arn
}


Git 저장소



  • 새 개인 Github 리포지토리 또는 포크my repository를 생성하고 복제합니다. 개인 저장소here로 작업하는 방법에 대해 알아보십시오.

    git clone [email protected]:mathisve/terraform-module-example.git
    
    # stage your changes
    git add .
    
    # commit your changes
    git commit -m "First commit"
    
    # tag the commit
    git tag v0.1
    
    # push to git, including tag
    git push origin v0.1
    


  • 이렇게 하면 다음과 유사한 저장소가 남습니다.


    이 모듈을 사용하려면 다음을 수행하면 됩니다.

    module "myModule" {
        source = "git::[email protected]:mathisve/terraform-module-example.git?ref=v0.1"
    
        region = "us-east-2"
        name = "sampleBucket23"
    }
    


    그런 다음 모듈을 업데이트하고 새 버전을 git에 푸시하면 Terraform이 자동으로 최신 버전을 사용하려고 시도하지 않습니다. 이는 주요 변경 사항을 도입해야 하는 경우 특히 유용하며 항상 동일한 버전이 아닌 여러 환경이 있는 경우 더욱 유용합니다.

    좋은 웹페이지 즐겨찾기