Как узнать, где ваш скрипт пользовательских данных EC2 дает сбой?

У меня есть следующий сценарий пользовательских данных в моем шаблоне CloudFormation:

"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/build без ошибок. Но когда cloudformation запускает сервер, он выглядит так, как будто он никогда не запускался.


person chrisan    schedule 22.03.2012    source источник


Ответы (1)


Похоже, что поскольку я создал AMI из экземпляра, запущенного cloudformation, он уже запускал сценарии инициализации и кэшировал их как «запущенные», поэтому любые новые экземпляры уже будут иметь эти кэшированные файлы и никогда не запускать мой сценарий.

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

Затем создание нового AMI позволило ему работать с моим собственным сценарием инициализации.

Также не используйте su, вместо этого chown впоследствии :)

person chrisan    schedule 23.03.2012