从 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_rsa、 id_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 实例时未启动的主要内容,如果未能解决你的问题,请参考以下文章