如何在Terraform中使用模块?

110 阅读2分钟

目录

阅读时间: 3 分钟

在这篇博客中,我们将在一个例子的帮助下了解terraform模块。

什么是模块?

Terraform中的模块,允许将各种资源作为一个组来使用。而且,这些资源是可重复使用的。它们也可以用于其他配置。一个模块可以是目录中任何带有(.tf)扩展名的配置文件。每个模块通常包含3个文件--

  • main.tf
  • output.tf
  • variables.tf

例如,我们想建立一个网络,创建一个ec2实例,并使用模块将其与S3连接。通过以下步骤,我们可以创建这个。

创建这个完整的设置的步骤

**第1步:**创建一个名为terraform的目录。现在在其中创建一个名为vpc的目录,这是我们的第一个模块。创建一个main.tf,它将有以下代码。在这段代码中,我们正在创建一个vpc,然后是一个子网。该子网通过附加一个互联网网关而成为公共网络。

在同一目录下,vpc,创建另一个文件output.tf。在这个文件中,两个输出被声明,因为它们的值在实例模块中也需要。

**第二步:**现在创建另一个名为bucket的目录,这是另一个模块。创建一个main.tf和output.tf文件。在main.tf中,我们正在创建一个S3 bucket和一个角色,并将其附加到实例配置文件中,因此它可以进一步被分配到EC2。

**第3步:**现在,创建第三个模块,名为instance。此外,创建一个main.tf文件。在这个文件中,我们将在该vpc中创建一个EC2,并将其附加到实例配置文件中。为了让ssh连接到实例,我们创建了一个安全组,允许端口22。

**第四步:**在terraform目录下,创建一个名为main.tf的文件。在这个文件中,提到了提供者的细节。我们创建的3个模块被调用。vpc和bucket模块的输出被声明为实例模块中的变量,以便它们可以在其中使用。

**第5步:**上面创建的设置,可以用以下三个terraform的命令来实现。

  • terraform init
  • Terraform计划
  • Terraform apply

总结

这就是一个在terraform中使用模块的例子。关于模块的更多细节,请参考这个

分享Knol。

相关信息