대상을 사용하여 새로운 Terraform 모듈 리소스 개발
2833 단어 devopsautomationterraform
apply
또는 destroy
또는 plan
하는 기능입니다. 예를 들어 다음과 같은 모듈의 작업 집합을 예로 들어 보겠습니다.resource "null_resource" "file1" {
environment = {
resource = "file1"
}
provisioner "local-exec" {
command = "echo $(date) ${resource} | tee -a dates.log"
}
}
resource "null_resource" "file2" {
environment = {
resource = "file2"
}
provisioner "local-exec" {
command = "echo $(date) ${resource} | tee -a dates.log"
}
}
이것은 두 개의 날짜와 리소스 이름을 몇 초 간격으로 로그에 반영하는 것으로 적용됩니다. 그러나 이러한 단계가 개별 단계가 되어야 한다고 가정해 보겠습니다. 예를 들어
null_resource.file2
은 실행 중인 환경에 대한 검사로 두 번째만 적용하면 되지만 계획의 다른 단계에서는 적용되지 않습니다. -target
을 사용하여 모든 리소스 유형에 대해 작동하는 이 형식을 사용하는 null_resource.file2
에서만 작동할 수 있습니다.terraform {plan,apply,destroy} -target=${resource_type}.${resource_name}
그래서
plan
이라는 null_resource
에 대해 file2
으로 :terraform plan -target=null_resource.file2
이 기능은 일반적으로 모듈의 인스턴스를 수정하거나(
-target=module.name.resource.name
) 계획에 있는 상호 의존적 리소스의 하위 집합에 부분 변경을 적용하는 것과 같은 작업에 사용됩니다(예: 새 볼륨을 생성하거나 Terraform에서 관리하지 않는 볼륨을 가져오는 경우, VM에 대한 리소스를 업데이트하여 해당 볼륨을 연결한 다음 볼륨에 대한 리소스를 적용한 다음 이 방법을 사용하여 VM 리소스를 적용할 수 있지만 모듈 개발에도 유용합니다.Terraform CLI의 이 기능을 사용하면 리소스를 추가하거나 제거할 때 계획을 부분적으로 실행할 수 있습니다. 이렇게 하면 모듈의 계획을 확장하는 시간을 절약할 수 있습니다.
Reference
이 문제에 관하여(대상을 사용하여 새로운 Terraform 모듈 리소스 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jmarhee/develop-new-terraform-module-resources-using-targets-4eo8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)