目录
阅读时间: 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中使用模块的例子。关于模块的更多细节,请参考这个。