从 EC2 上的自定义 AMI 创建 AWS Opsworks 实例时未启动

Posted

技术标签:

【中文标题】从 EC2 上的自定义 AMI 创建 AWS Opsworks 实例时未启动【英文标题】:AWS Opworks Instances not starting when created from Custom AMI on EC2 【发布时间】:2015-01-16 06:32:08 【问题描述】:

根据 AWS 文档,您可以通过两种不同的方式创建自定义 AMI。

http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html

我直接从 EC2 实例创建我的 AMI,因此 OPworks 代理不应该在那里。然而,使用我的 AMI 创建的实例无法通过设置阶段。

有谁知道这是为什么?

更新:

这里有更多信息。如果您查看上面的文章,它说要停止 OPworks 代理等。 好吧,我登录了一个使用 Amazon linux 映像创建的实例,并且安装并运行了 opworks 代理。在我从自定义 AMI 创建的实例上,从未发生过。实例只是启动并停留在那里:

[ec2-user@ip-10-252-81-177 ~]$ pstree
init─┬─abrtd
     ├─agetty
     ├─atd
     ├─auditd───auditd
     ├─automount───4*[automount]
     ├─certmonger
     ├─crond
     ├─cupsd
     ├─dbus-daemon───dbus-daemon
     ├─dhclient
     ├─hald─┬─hald-runner
     │      └─hald
     ├─master─┬─pickup
     │        └─qmgr
     ├─6*[mingetty]
     ├─rhsmcertd
     ├─rpc.statd
     ├─rpcbind
     ├─rsyslogd───3*[rsyslogd]
     ├─sshd───sshd───sshd───bash───pstree
     └─udevd───2*[udevd]
[ec2-user@ip-10-252-81-177 ~]

没有运行 opsworks 代理并且不存在 opswork 二进制文件: 访问http://aws.amazon.com/opsworks了解更多信息。

[ec2-user@ip-10-252-16-152 ~]$ locate opworks
[ec2-user@ip-10-252-16-152 ~]$ sudo find / -name "*opworks*" -print
[ec2-user@ip-10-252-16-152 ~]$ 

谢谢!

【问题讨论】:

【参考方案1】:

我关注这个文档: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html 和我面临同样的问题。从 EC2 创建自定义 AMI(ubuntu) 后,我的 OpsWorks 实例(使用该自定义 AMI)永远保持“正在启动”状态。问题在于使用“ec2-bundle-vol”命令创建映像的过程中,因为:

"默认情况下,捆绑进程会排除可能包含敏感信息的文件。这些文件包括*.sw、*.swo、*.swp、*.pem、*.priv、id_rsaid_dsa *.gpg、*.jks、*/.ssh/authorized_keys 和 */.bash_history。要包含所有这些文件,请使用 --no-filter选项。”

当您从 OpsWorks 运行实例时,该实例会尝试安装一些需要一些 gpg 签名文件和其他 crt、pem 文件的东西......这些文件从包图像中排除......所以它失败了。解决方案是使用“--no-filter”选项或“--include file1,file2,...” 在此处检查 ec2-bundle-vol 命令: http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/CLTRG-ami-bundle-vol.html

【讨论】:

以上是关于从 EC2 上的自定义 AMI 创建 AWS Opsworks 实例时未启动的主要内容,如果未能解决你的问题,请参考以下文章

亚马逊 AWS ElasticBeanstalk 自定义 AMI

AWS账户之间的克隆/传输EC2实例(AMI)

AWS EC2 复制实例后,自定义指标无法显示数据

AWS 自动扩展组 AMI

AWS:如何使用 Boto3 从实例创建公共 AMI?

如何在AWS中将Windows EC2实例复制到S3存储桶?