Terraform状态重构:将独立目录移动到父模块中

时间:2019-04-26 09:30:24

标签: amazon-web-services terraform terraform-provider-aws

我想将三个架构转换成类似模型的结构,但是我很难找到一份完整的文档来说明如何实现。

getFormState() {
         return <DCSubmissionForm inState={this._inState.bind(this)} outState= . 
         {this._outState} onSubmit={this.setCountLog} />;
       }

我已经在资源和模块化布局之间创建了必要的链接,但是现在我需要将Terraform状态从cluster和db文件夹移至modules文件夹。另外,我有一个resource-efs.tf,我想转到此模块化结构。

我了解到Terraform中所有初始化的目录都是模块,因此这里将. └── dev ├── backend.tf ├── main.tf ├── outputs.tf ├── variables.tf │ ├── cluster    │   ├── terraform.tfstate    │   ├── backend.tf    │   ├── main.tf │ ├── outputs.tf │   ├── resource-efs.tf    │   └── variables.tf │ ├── db    │   ├── terraform.tfstate │   ├── backend.tf │   ├── main.tf │   ├── outputs.tf │   └── variables.tf │ └── modules    ├── cluster    │   ├── backend.tf    │   ├── main.tf │ ├── outputs.tf    │   └── variables.tf    ├── efs    │   ├── backend.tf    │   ├── main.tf    │   └── variables.tf    └── db    ├── backend.tf    ├── main.tf    ├── outputs.tf    └── variables.tf 文件夹称为我的“ root”:当前集群和db文件夹的状态都存储在两个不同的文件夹中,因此,我认为我应该首先初始化dev文件夹,然后将两个独立组件(即cluster和db)的状态移到上一个,并移到它们各自的模块中。

我尝试过terraform mv,但遇到一个错误:我所做的是将CD插入db文件夹并运行

root

我得到的错误是

    terraform state mv -state-out=../modules/db/terraform.tfstate db module.db

由于db本身不是资源,而是将来模块的名称。

他们从https://www.terraform.io/docs/commands/state/mv.html中说,该命令可以“将数据移动到全新的状态,它还可以用于将一个配置重构为多个单独管理的Terraform配置。”,但是我不知道该怎么做。 -将现在已成为“根”模块的整个模块移动到原来的位置;是否可以通过执行 Error moving state: Error parsing address 'db': invalid resource address "db" Please ensure your addresses and state paths are valid. No state was persisted. Your existing states are untouched. 之类的方法来引用根模块?

0 个答案:

没有答案