我希望能将AMI名称添加到Packer清单中。我知道如何获取AMI ID的名称,但名称的获取方式有所不同。 目前我有:
data "amazon-ami" "ubuntu" {
filters = {
name = "ubuntu-minimal/images/hvm-ssd/ubuntu-focal-20.04-amd64-minimal-*"
root-device-type = "ebs"
virtualization-type = "hvm"
}
most_recent = true
region = "us-east-1"
}
source "amazon-ebs" "ui" {
ami_name = "my-ami-${formatdate("YYYY-MM-DD-hhmmss", timestamp())}"
instance_type = "t3.small"
region = "us-east-1"
source_ami = "${data.amazon-ami.ubuntu.id}"
ssh_pty = true
ssh_username = "ubuntu"
}
build {
sources = ["source.amazon-ebs.ui"]
post-processor "manifest" {
output = "manifest.json"
strip_path = true
custom_data = {
version = "${source.ami_name}"
}
}
}
我收到的错误是
不支持的属性;此对象没有名为“ami_name”的属性。
根据这个链接: https://www.packer.io/docs/templates/hcl_templates/blocks/source 看起来我只能访问 name 和 type 属性。我怎样才能将 ami_name
添加到清单中呢?
name
设置为ami_name
,然后使用source.name
或build.name
进行访问。但是,如果模板或清单扩展到更多源和构建,则可能会变得不太清晰。 - Matt Schuchard