sum*_*tty 1 packer amazon-web-services
我正在尝试使用包装机。
我能够通过以下方式为 ubuntu 16.04 创建图像
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
"root-device-type": "ebs"
},
Run Code Online (Sandbox Code Playgroud)
但是当它通过将 16.04 修改为 18.04 来尝试相同的文件管理器时
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*",
"root-device-type": "ebs"
},
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
==> amazon-ebs: Prevalidating any provided VPC information
==> amazon-ebs: Prevalidating AMI Name: packer-example 1592389575
==> amazon-ebs: No AMI was found matching filters: {
==> amazon-ebs: Filters: [{
==> amazon-ebs: Name: "virtualization-type",
==> amazon-ebs: Values: ["hvm"]
==> amazon-ebs: },{
==> amazon-ebs: Name: "name",
==> amazon-ebs: Values: ["ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*"]
==> amazon-ebs: },{
==> amazon-ebs: Name: "root-device-type",
==> amazon-ebs: Values: ["ebs"]
==> amazon-ebs: }],
==> amazon-ebs: Owners: ["099720109477"]
==> amazon-ebs: }
Build 'amazon-ebs' errored: No AMI was found matching filters: {
Filters: [{
Name: "virtualization-type",
Values: ["hvm"]
},{
Name: "name",
Values: ["ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*"]
},{
Name: "root-device-type",
Values: ["ebs"]
}],
Owners: ["099720109477"]
}
==> Some builds didn't complete successfully and had errors:
--> amazon-ebs: No AMI was found matching filters: {
Filters: [{
Name: "virtualization-type",
Values: ["hvm"]
},{
Name: "name",
Values: ["ubuntu/images/*ubuntu-xenial-18.04-amd64-server-*"]
},{
Name: "root-device-type",
Values: ["ebs"]
}],
Owners: ["099720109477"]
}
Run Code Online (Sandbox Code Playgroud)
想知道过滤器值是如何工作的:
18.04?
对于另一个图像(linux/redhat)?
有人可以清除我对此的疑问吗?
重要说明:您应该像我在此处的示例中那样设置所有者属性,否则您将敞开心扉引入与您的模式匹配的恶意 AMI。该名称字段是用户控制的,而不是检查。
更新:由于这是关于 Packer 而不是 Terraform,这里是 Packer 解决方案:
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"architecture": "x86_64",
"name": "ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*",
"block-device-mapping.volume-type": "gp2",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
},
Run Code Online (Sandbox Code Playgroud)
这是我善意但偏离主题的 Terraform 解决方案:
Run Code Online (Sandbox Code Playgroud)data "aws_ami" "ubuntu-18_04" { most_recent = true owners = ["${var.ubuntu_account_number}"] filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"] } } variable "ubuntu_account_number" { default = "099720109477" }
或者,如果您想使用自己的 KMS CMK 对其进行加密:
Run Code Online (Sandbox Code Playgroud)resource "aws_ami_copy" "ubuntu-18_04-encrypted" { name = "${data.aws_ami.ubuntu-18_04.name}-encrypted" description = "${data.aws_ami.ubuntu-18_04.description} (encrypted)" source_ami_id = "${data.aws_ami.ubuntu-18_04.id}" source_ami_region = "${var.region}" encrypted = true tags { ImageType = "encrypted-ubuntu-18_04" } } data "aws_ami" "ubuntu-18_04" { most_recent = true owners = ["${var.ubuntu_account_number}"] filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"] } } variable "ubuntu_account_number" { default = "099720109477" }
我从我的Terraform 中引用了这些: GitHub 上的最新 Ubuntu 18.04 LTS 加密 AMI 要点。
| 归档时间: |
|
| 查看次数: |
1924 次 |
| 最近记录: |