地形==0.12.28
目标是从上游目录继承一个terraform.tf文件。我一直在关注这个repo,它表明,只需在.tf文件中声明相对上游文件路径就可以实现这一点。尽管当我运行时
terraform init
仅在cwd内- 父目录中的
terraform init
,然后是cwd
两次尝试都输出错误:
Error: Argument or block definition required
on shared_data.tf line 1:
1: ../../shared_data.tf
为了克服这个错误,我尝试使用地形变量首先定义相对路径:
variable "shared_data_path" {
default = "../../shared_data.tf"
}
var.shared_data_path
哪个输出错误:
Error: Argument or block definition required
on shared_data.tf line 4:
4: var.shared_data_path
An argument or block definition is required here. To set an argument, use the
equals sign "=" to introduce the argument value.
您正在查看的repo不会像您所做的那样只通过写入文件名来继承数据。链接到的文件是一个符号链接,这意味着Terraform认为该文件在父目录中具有文件的实际内容。你可以在文件的标题中看到这一点,如果你克隆了该存储库,当你在计算机上查看它时,你会发现它是一个符号链接。
假设你有这样的目录树:
- parent_dir/
|-shared_data.tf
|-child_dir/
|-something.tf
然后你可以在child_dir
中创建一个符号链接,方法是cd
连接到你终端中的child_dir
,然后运行ln -s ../shared_data.tf .
然后你会有一棵类似的树
- parent_dir/
|-shared_data.tf
|-child_dir/
|-something.tf
|-shared_data.tf -> ../shared_data.tf