2012-03-22 62 views
1

我有以下的用户数据脚本在我的CloudFormation模板:如何找出EC2用户数据脚本失败的位置?

"UserData" : {"Fn::Base64" : {"Fn::Join" : ["", [ 
     "#!/bin/bash\n", 
     "cd /home/www","\n", 
     "sudo su www","\n", 
     "git clone [email protected]:company-name/web-app.git -b master2 app","\n", 
     "cd app","\n", 
     "phing clean prepare configure -Dpropsfile ./build/props/build.ec2.properties","\n", 
     "\n", 
     "/opt/aws/bin/cfn-signal", 
     " -e $?", 
     " '", {"Ref" : "WebServerPort"}, "'", 
     "\n" 
    ]]}}, 

这将运行一个预配置的私人AMI我们基于默认cloudformation模板 如果我在自己启动一个实例,我可以通过GIT中运行/构建过程没有错误 但是,当cloudformation启动服务器时,它似乎是从未运行

回答

1

看起来像自从我从一个云形成启动的实例创建AMI,它已经运行init脚本并将它们缓存为'运行',因此任何新的实例都会拥有这些缓存的文件,并且永远不会运行我的脚本。

sudo rm /var/lib/cloud/sem/user-scripts.* 
sudo rm /var/lib/cloud/sem/consume_userdata.* 

然后又做了新的AMI允许它为我自己的init脚本

而且不使用su工作,而不是执行chown事后:)与您的解决方案跟进

+0

+1,谢谢! – 2012-03-24 15:03:53