【发布时间】:2021-03-01 11:16:09
【问题描述】:
我正在尝试使用 terraform 将 IAM 角色附加到 EC2 实例。但是看了一些网页后发现可以在创建ec2实例时进行附加。
resource "aws_instance" "web" {
ami = data.aws_ami.ubuntu.id
instance_type = "t3.micro"
iam_instance_profile = "${aws_iam_instance_profile.ec2_profile.name}"
tags = {
Name = "HelloWorld"
}
}
如上部分,可以清楚地看到,AMI 正在被传递,这将创建一个新实例。 是否有可能我们可以提供实例而不是使用 AMI id,以便它可以将角色附加到该实例?
我发现一个来自 terraform 社区的链接指出此功能尚未发布。 https://github.com/hashicorp/terraform/issues/11852
请提供有关如何完成此任务的意见。 提前致谢
【问题讨论】:
-
您是说唯一的问题是数据源返回的 AMI 与您导入的现有实例不同,因此它想要销毁并重新创建实例?如果您不想替换实例,您是否考虑过对 AMI 进行硬编码或使用
ignore_changes = [ami]?将您的计划输出编辑到问题中会很有用。 -
如果我传递 AMI id,它将始终创建一个新实例并将新角色附加到该实例。但是如果我们以某种方式传递实例 id,那么我们可以直接将 IAM 角色附加到它。
-
我不确定我是否听懂了你的意思。您可以编辑问题以包含您的计划的输出吗?
标签: amazon-web-services amazon-ec2 terraform amazon-iam