我是AWS服务的新手.我正在尝试使用AWS云形成,我创建了一个模板.该模板没有错误,我可以使用它创建机器.
但是我在模板中添加了一些配置,以便在启动时安装tomcat,git和其他东西.但这不会发生在我身上.
这是我用于安装tomcat的代码的一部分:
"Resources": { "Tomcat": { "Type": "AWS::EC2::Instance","Metadata": { "AWS::CloudFormation::Init": { "config": { "packages": { "apt": { "tomcat6": [],"git": [],} } } } },
但是当我登录机器时既没有安装tomcat也没有安装git!
提前致谢.
我相信你的问题是关于cloud-init与cfn-init不同的混淆.
> cloud-init是作为Ubuntu AWS AMI的一部分启动的工具,允许解释实例元数据的EC2用户数据组件.亚马逊Linux也采用了这个工具并将其构建到他们的AMI中.
> cfn-init是AWS为Amazon Linux创建的名为CloudFormation Helper Scripts的不同工具集的一部分,可以在您的CloudFormation模板中读取名为Metadata的其他部分.
因此,Ubuntu和Amazon Linux AMI都预先安装了cloud-init工具来访问用户数据,但只有Amazon Linux预安装了CloudFormation Helper Scripts,例如cfn-init访问CloudFormation元数据.
但是,AWS可以使用distribute packages来读取CloudFormation元数据.具体来说,请看template,了解如何使用cloud-init用户数据脚本安装python-setuptools,下载CloudFormation Helper Scripts,使用easy_install安装它们,然后调用cfn-init.
注意:还有其他发行版或AMI可能支持cloud-init或cfn-init,但我只是在这里介绍一般情况.