1

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/build プロセスを実行できます しかし、cloudformation がサーバーを起動すると、実行されていないように見えます

4

1 に答える 1

1

Cloudformation が起動したインスタンスから AMI を作成したため、既に init スクリプトが実行され、それらが「実行」としてキャッシュされているため、新しいインスタンスには既にそれらのキャッシュ ファイルがあり、スクリプトを実行することはありません。

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

次に、新しい AMI を作成すると、自分の init スクリプトで機能するようになりました

また、su を使用しないでください。代わりに、後で chown :)

于 2012-03-23T17:58:00.097 に答える