대상을 사용하여 새로운 Terraform 모듈 리소스 개발

Terraform CLI의 기능은 모듈 내의 특정 리소스를 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의 이 기능을 사용하면 리소스를 추가하거나 제거할 때 계획을 부분적으로 실행할 수 있습니다. 이렇게 하면 모듈의 계획을 확장하는 시간을 절약할 수 있습니다.

좋은 웹페이지 즐겨찾기