Git을 사용하여 버전이 지정된 Terraform 모듈
제 경험상 가장 눈에 띄는 우려 사항은 개인 정보 보호와 사용 편의성입니다. 개인용 Terraform 레지스트리를 생성할 수 있지만 원치 않는 복잡성의 또 다른 계층이 추가됩니다.
Terraform 레지스트리의 모듈이 이미 Github를 사용하고 있다는 점을 고려하면 레지스트리는 공용 모듈을 쉽게 배포하고 공유할 수 있는 추상화입니다. 그러나 모듈이 비공개인 경우 추가되는 것이 많지 않습니다.
git Terraform 모듈에 버전 관리를 추가하면 여러 환경에서 사용 중인 모듈을 크게 변경할 수 있습니다.
대신 동영상을 보고 싶으신가요?
git을 사용하여 버전이 지정된 Terraform 모듈을 사용하는 방법에 대한 단계별 안내를 보려면 아래 축소판을 클릭하십시오.
테라폼 모듈
복잡하지 않게 개인 ACL로 S3 버킷을 생성하는 작은 모듈을 만들 것입니다.
main.tf
, variables.tf
및 outputs.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이 자동으로 최신 버전을 사용하려고 시도하지 않습니다. 이는 주요 변경 사항을 도입해야 하는 경우 특히 유용하며 항상 동일한 버전이 아닌 여러 환경이 있는 경우 더욱 유용합니다.
Reference
이 문제에 관하여(Git을 사용하여 버전이 지정된 Terraform 모듈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mathisve/versioned-terraform-modules-using-git-59g4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)