【问题标题】:can we create an ec2 image using terraform by ami name created packer?我们可以通过 ami name created packer 使用 terraform 创建一个 ec2 图像吗?
【发布时间】:2020-10-07 09:06:04
【问题描述】:

我正在尝试使用 terraform 和 packer。

我已经用 packer 创建了一个服装图像。

我知道我们可以使用 ami id 创建图像。 我试过了:

resource "aws_instance" "packer-yellowpages" {

  ami = "*******"
  instance_type = "t3.micro"
  tags ={
      Name  = "demo"
  }
}

我想知道我们是否可以对 ami name 做同样的事情?

我考虑这个的原因是:我在某处读到云提供商废弃了 AMI id。那么除了id之外,有没有其他方法可以做到这一点。 或者实施一些存储计划来访问存储和访问图像?

【问题讨论】:

    标签: amazon-web-services terraform packer


    【解决方案1】:

    aws_ami data source 可用于根据“名称”等标签获取有关 AMI 的信息。

    data "aws_ami" "example" {
      executable_users = ["self"]
      most_recent      = true
      owners           = ["self"]
    
      filter {
        name   = "name"
        values = ["myami-*"]
      }
    }
    
    resource "aws_instance" "packer-yellowpages" {
    
      ami = data.aws_ami.example.id
      instance_type = "t3.micro"
      tags ={
          Name  = "demo"
      }
    }
    

    【讨论】:

    • 我没有以正确的方式尝试它,因为我收到错误“查询返回无值”我当前的 ami 名称是“yellowpages”。我需要在哪里替换得到结果。我认为自我是这里的一项关键工作,对不起我的基本知识
    • @sumanthshetty 将 myami-* 替换为 yellowpages
    • 仍然得到相同的错误数据 "aws_ami" "example" { executable_users = ["self"] most_recent = true owner = ["self"] filter { name = "name" values = ["yellow-页面”] } } 资源“aws_instance”“yellowpages”{ami = data.aws_ami.example.id instance_type =“t3.micro”key_name =“*******”vpc_security_group_ids = [“sg-**** *****"] 标签 ={ 名称 = "黄页" } }
    【解决方案2】:

    尝试改用这些看看是否有效?

    data "aws_ami" "example" {
      executable_users = ["self"]
      most_recent      = true
      owners           = ["self"]
      name_regex       = "yellowpages"
    }
    

    它可能是AMI Name,而不是Name 标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 2011-09-02
      • 1970-01-01
      • 2018-08-28
      • 2015-06-02
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多