【发布时间】:2022-08-03 14:04:50
【问题描述】:
我正在尝试通过打包程序在 AWS 代码构建项目中创建 AMI。
此 AMI 将用于启动模板
启动模板将用于 ASG。
当 ASG 通过此启动模板获取实例时,它应该与 ALB 的现有目标组一起使用。
为了澄清,我的期望是......
- 通过打包程序在代码构建项目中生成 AMI
- 使用 #1 AMI 创建启动模板
- 使用#2 启动模板到 ASG
- ASG 启动新实例
- 现有目标组执行健康检查 #4 实例。
在第 5 步中,我现有的目标组未能为新实例做好健康检查,因为它具有不同的 vpc。
(现有目标组使用自定义 VPC,#4 实例具有默认 VPC)因此,我支持 #1 在 AMI 生成期间设置相同的 VPC。
但是codebuild项目在调用其中的packer模板时失败了。它在下面返回
==> amazon-ebs: Prevalidating AMI Name... amazon-ebs: Found Image ID: ami-12345678 ==> amazon-ebs: Creating temporary keypair: packer_6242d99f-6cdb-72db-3299-12345678 ==> amazon-ebs: Launching a source AWS instance... ==> amazon-ebs: Error launching source instance: UnauthorizedOperation: You are not authorized to perform this operation.在此更新之前,packer 模板中没有与 vpc 和子网相关的设置,并且它们可以正常工作。
我为此代码构建项目添加了一些与 vpc 相关的权限,但还没有运气。以下是我在 packer-template.json 上的构建器配置
\"builders\": [ { \"type\": \"amazon-ebs\", \"region\": \"{{user `aws_region`}}\", \"instance_type\": \"t2.micro\", \"ssh_username\": \"ubuntu\", \"associate_public_ip_address\": true, \"subnet_id\": \"subnet-12345678\", \"vpc_id\": \"vpc-12345678\", \"iam_instance_profile\": \"blah-profile-12345678\", \"security_group_id\": \"sg-12345678\", \"ami_name\": \"{{user `new_ami_name`}}\", \"ami_description\": \"AMI from Packer {{isotime \\\"20060102-030405\\\"}}\", \"source_ami_filter\": { \"filters\": { \"virtualization-type\": \"hvm\", \"name\": \"{{user `source_ami_name`}}\", \"root-device-type\": \"ebs\" }, \"owners\": [\"************\"], \"most_recent\": true }, \"tags\": { \"Name\": \"{{user `new_ami_name`}}\" } } ],在这一步添加(之前不存在)
- subnet_id
- vpc_id
- iam_instance_profile
- security_group_id
- 第一季度。这是在此处使用 VPC 的正确配置吗?
- Q1-1。如果是,需要哪些权限才能执行此任务?
- Q1-2。如果没有,你能告诉我这个的正确格式吗?
- Q1-1。如果是,需要哪些权限才能执行此任务?
- 第二季度。或者......这是获得一些能够与我现有的目标群体通信的实例的正确方法......?
提前致谢。您的任何提及都会对我有所帮助。
标签: amazon-iam amazon-vpc aws-codebuild amazon-ami hashicorp-packer