Amazon ec2 如何找出EC2用户数据脚本失败的地方?

Amazon ec2 如何找出EC2用户数据脚本失败的地方?,amazon-ec2,amazon-web-services,amazon-cloudformation,Amazon Ec2,Amazon Web Services,Amazon Cloudformation,我的CloudFormation模板中有以下用户数据脚本: "UserData" : {"Fn::Base64" : {"Fn::Join" : ["", [ "#!/bin/bash\n", "cd /home/www","\n", "sudo su www","\n", "git clone git@github.com:company-name/web-app.git -b master2 app","\n", "cd app",

我的CloudFormation模板中有以下用户数据脚本:

"UserData" : {"Fn::Base64" : {"Fn::Join" : ["", [
      "#!/bin/bash\n",
      "cd /home/www","\n",
      "sudo su www","\n",
      "git clone git@github.com: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"
    ]]}},
这将基于默认的cloudformation模板运行预配置的私有ami 如果我自己启动一个实例,我可以在没有错误的情况下运行git/构建过程
但是当cloudformation启动服务器时,它似乎从未运行过

看起来像是因为我从cloudformation启动的实例创建了AMI,它已经运行了init脚本并将它们缓存为“run”,因此任何新实例都已经有了这些缓存文件,并且从未运行过我的脚本

sudo rm /var/lib/cloud/sem/user-scripts.*
sudo rm /var/lib/cloud/sem/consume_userdata.*
然后创建一个新的AMI允许它为我自己的初始化脚本工作


另外,不要使用su,而要使用chown:)

看起来,因为我从cloudformation启动的实例创建了AMI,它已经运行了init脚本并将它们缓存为“run”,因此任何新实例都已经有了这些缓存文件,并且永远不会运行我的脚本

sudo rm /var/lib/cloud/sem/user-scripts.*
sudo rm /var/lib/cloud/sem/consume_userdata.*
然后创建一个新的AMI允许它为我自己的初始化脚本工作

也不要使用su,而是在后面使用chown:)