繁体   English   中英

从第一地形获取输出并在第二地形中使用

[英]Take Output From First Terraform and Use in Second Terraform

我需要两个不同的Terraform文件用于不同的目的。 在第二Terraform文件中,我必须从第一Terraform文件的输出中获取输入。

在我的方案中,我的第一个Terraform创建了一个AWS安全组。 现在,我必须在第二个Terraform文件中使用此安全组的ID。

我还想确保在完成第一个Terraform之前,不能初始化Second Terraform。 我怎样才能做到这一点?

创建多少个.tf文件并不重要。 Terraform首先加载所有.tf文件,然后尝试创建图形来创建资源。 因此,您可以这样做。

resource "aws_security_group" "default" {
    name        = "allow_all"
    description = "Allow all inbound traffic"
    .
    .
}

现在,您可以在另一个文件/其他模块中使用此安全组的ID。 对于前。 让我们将其用于ec2创建。 喜欢。

resource "aws_instance" "web" {
    ami = "${var.ami_id}"
    instance_type = "t2.micro"

    security_groups = ["${aws_security_group.default.id}"]
}

有关安全组参数的更多详细信息,可以查看以下文档。 https://www.terraform.io/docs/providers/aws/r/security_group.html

对于此要求,您可能希望使用terraform模块,通过它们可以大量使用代码,并可以将安全组的ID提供给所需的任意terraform文件。 并且每当您进行Terraform应用时,它将检查资源依赖关系,并且将相应地执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM