나는이 ROOT_MODULE 과를 main.tf
:
#Root Module - Just run the script
resource "null_resource" "example" {
provisioner "local_exec" {
command = "./script.sh"
}
및 script.sh
:
echo "Hello world
이제 다른 디렉토리 와 함께 CHILD_MODULE 을 만든 다른 디렉토리가 있습니다 main.tf
.
#Child Module
module "ROOT_MODULE" {
source = "gitlabURL/ROOT_MODULE"
}
내 계획 파일을 내보냈습니다. terraform plan -out="planfile"
그러나 계획 파일에 terraform apply
대해 수행 할 때 현재있는 디렉토리는 더 이상 script.sh가 어디에 있는지 알 수 없습니다. 스크립트를 루트 모듈과 동일한 디렉토리에 보관해야합니다. 이 스크립트는 또한 gitlab 저장소 내에 있으므로 호출 할 로컬 경로가 없습니다. 이 스크립트를 내 자식 모듈로 가져오고 내 계획 파일에서 실행하는 방법에 대한 아이디어가 있습니까?
Error running command './script.sh': exit status 1. Output: cannot access 'script.sh': No such file or directory
루트 모듈 구성에 대한 경로에 액세스하여 path.root
내장 파일의 경로를 유지할 수 있습니다 .
provisioner "local_exec" {
command = "${path.root}/script.sh"
}
그러나 귀하의 질문에 따르면 루트 모듈과 하위 모듈에 대한 용어를 바꾼 것으로 보입니다. 따라서 해당 모듈은 실제로 루트가 아닌 자식 모듈 인 것으로 보이며 path.module
내장 함수 를 사용하여 경로에 액세스해야합니다 .
provisioner "local_exec" {
command = "${path.module}/script.sh"
}
그러면 현재 작업 디렉토리에 관계없이 스크립트 경로가 유지됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다