我正在努力使用加殼器將 -var-file 作為輸入傳遞給構建。這是某種錯誤還是我做錯了什么?請幫忙 :)
我有簡單的 clean-null-build.pkr.hcl 構建:
source "null" "first" {
communicator = "none"
}
build {
name = "my first build"
source "null.first" {
}
provisioner "shell-local" {
inline = ["echo ${var.foo}"]
}
}
我從主構建檔案 variables.pkrvars.hcl 中分離了變數檔案:
variable "foo" {
default = "test"
}
我得到這樣的錯誤:

然后我嘗試像這樣更改變數檔案內容:
foo="test"
然后我得到這樣的錯誤:

最后我嘗試使用像這樣的 json 格式,我還重命名了檔案名,如 variables.pkrvars.json :
{
"foo" : "test"
}
也有類似的錯誤:

加殼器版本加殼器 v1.8.3 也許有人有類似的問題?如果我在主構建中創建變數塊,它會像預期的那樣作業..
uj5u.com熱心網友回復:
您的第一次嘗試失敗,因為您將 Packer 組態檔作為可變輸入檔案引數傳遞。您的第二次嘗試失敗,因為您在更正輸入檔案后洗掉了宣告變數的 Packer 組態檔。您的第三次嘗試失敗的原因與第二次相同。所有這三個嘗試也都失敗了,因為您針對的是特定模板而不是模板和配置目錄(因為您有多個)。
您需要更正輸入檔案(如第二次嘗試),同時不洗掉宣告變數的組態檔(如第一次嘗試):
# variables.pkr.hcl
variable "foo" {
type = string
default = "test"
}
# foo.pkrvars.hcl
foo = "test"
然后將輸入變數作為引數傳遞給更正后的目標:
packer build -var-file="foo.pkrvars.hcl" .
請注意,這與 Packer 拋出的錯誤訊息及其建議的解決方案一致。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535818.html
上一篇:向經理發送郵件訊息以進行訪問審查
