在Terraform中组织文件夹

doc_noob

我有一个terraform在我在创建资源设置aws,我使用s3ec2并且也kubernetes对于kubernetes我有超过5个.tf文件。我创建了一个文件夹kube-aws,并将.tf文件放置在该文件夹中现在我有一个如下的设置

scripts/
 |
  s3.tf
  ec2.tf
  kube-aws/
   | 
   web-deploy.tf
   web-service.tf
   app-deploy.tf
   app-service.tf  

这是正确的方法吗?还会文件夹中terraform选择.tf文件kubw-aws吗?还是我应该做其他任何事情来使这项工作。

阿沃尔斯基

您的工作目录kube-aws目录中的资源不包括在内scripts在此实例中,scripts目录被视为模块(请参见模块文档):

运行terraform plan或terraform时,工作目录中的.tf文件一起应用于根模块。

您有两种选择来包含kube-aws资源:

  1. 将它们上移到scripts目录。
  2. 在其中一个文件中创建一个模块块,scripts/*.tf然后传递所需的变量。

例如,在s3.tf

module "kube_aws" {
  source = "./kube-aws"

  // pass in your variables here
}

您所做的选择完全取决于您,但是何时编写模块的指导很有说服力:

我们不建议编写仅作为单个其他资源类型的精简包装的模块。如果您找不到与模块内部主要资源类型不同的模块名称,则可能表明模块未创建任何新的抽象,因此模块增加了不必要的复杂性。只需直接在调用模块中使用资源类型即可。

我建议上面的选项1,即.tf至少文件移动到一个目录中,直到您清楚何时使用模块以及如何最佳地构造它们为止。我也强烈建议您熟悉有关模块模块组成的官方(且非常好的)文档,以及在Terraform Registry中查看示例模块及其相关的源代码(可在模块页面上找到源代码的链接)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在terraform存储库中设置多个逻辑组织的子文件夹的正确方法是什么?

文件夹组织

将文件组织到文件夹中,然后根据文件名组织子文件夹

python如何在文件夹中组织它的代码?

Symfony 4 +主义:在子文件夹中组织实体

在子文件夹中组织Ember.js模型?

Xamarin.Forms:在子文件夹中组织图像

组织文件和文件夹结构

Eclipse Java项目文件夹组织

组织Laravel Controllers文件夹

根据文件在 shell 脚本中的名称组织文件夹中的文件

根据文件名将文件组织到文件夹中

按名称将文件组织到Python中的分类子文件夹中

从目录中读取文件,并通过扩展将它们组织到相应的文件夹中

如何将大量的Stringtemplate文件组织到不同的文件夹中

组织文件夹中的Qt项目文件,并简化其中的内容

将文件夹中的所有组织文件加载到议程

TFS | 无法将源项目的文件组织到多个新文件夹中

Terraform文件夹结构-模块与文件

是否可以在github中的不同文件夹中创建和组织要点?

在React中命名和组织子组件(子文件夹)的推荐方法

我可以/应该在文件夹中组织我的30个课程吗?

我可以在子文件夹中组织Doctrine YAML映射吗?

Laravel:将测试组织到文件夹中并运行它们

如何将Android源代码组织到文件夹中

使用 import 为 NodeJs 中的 Express“组织”路由文件夹

在HaxeFlixel中创建有组织的源文件夹

如何在Asp.net visual studio中将视图组织到文件夹中?

将单独的git仓库合并到一个由文件夹组织的仓库中