【发布时间】:2021-12-08 23:20:18
【问题描述】:
我想将 AMI 名称添加到打包程序清单中。我了解如何为 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}"
}
}
}
我得到的错误是Unsupported attribute; This object does not have an attribute named "ami_name".
据此:https://www.packer.io/docs/templates/hcl_templates/blocks/source 看起来我可以访问的唯一属性是名称和类型。如何将ami_name 放入清单中?
【问题讨论】:
-
您可能必须在任一块中将
name设置为等于ami_name,然后使用source.name或build.name访问,尽管如果模板或清单扩展,这最终可能会变得不清楚更多来源和构建。 -
@MattSchuchard 能否提供设置
name的示例
标签: amazon-web-services packer hashicorp-packer