从父目录继承terraform.tf文件



地形==0.12.28

目标是从上游目录继承一个terraform.tf文件。我一直在关注这个repo,它表明,只需在.tf文件中声明相对上游文件路径就可以实现这一点。尽管当我运行时

  1. terraform init仅在cwd内
  2. 父目录中的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

最新更新