我想重构我的terraform目录 - 我将去多个地区并将一个大的.tfstate文件拆分成较小的文件。作为一个起点,我想采用现有的terraform
文件夹并将其重命名为terraform/us-east-1
,以便我可以添加terraform/ca-central-1/vpc
,但是一旦我这样做,Terraform会打破:
$ terraform plan
Error: Error loading modules: module mymodule: open .terraform/modules/f6d6d743c2d8bd836f32baa02d0922f7: no such file or directory
$ terraform init
Initializing modules...
- module.mymodule
Error downloading modules: Error loading modules: module mymodule: open .terraform/modules/f6d6d743c2d8bd836f32baa02d0922f7: no such file or directory
我还没有找到关于在搜索中重命名terraform文件夹的特殊方法,但我没有运气。奇怪的是,当我测试了一些组合时,有时它似乎可以用于我不想使用的组合,但我还没有弄清楚它何时起作用以及它何时不起作用,只是因为我试图使用的名称永远无效。
建议?
答案 0 :(得分:3)
.terraform文件夹使用绝对路径。更改文件夹结构还需要重新创建.terraform文件夹。
这可以通过删除文件夹并再次运行terraform init
来完成。
或
从terraform documentation开始,terraform get -update
也会解决此问题
将模块下载到本地.terraform文件夹中。不应将此文件夹提交给版本控制。无论给出此命令的dir参数如何,都会相对于当前工作目录创建.terraform文件夹。
如果已下载模块且未设置-update标志,则Terraform将不执行任何操作。因此,多次运行此命令是安全的(并且快速)。
答案 1 :(得分:0)
我可以说,这是移动.terraform
文件夹的结果。如果我删除它,那么我需要再次terraform init
,但之后它似乎表现得很好。手指交叉?