Как передать UserData в экземпляр Beanstalk с CloudFormation - PullRequest
6 голосов
/ 07 декабря 2011

Мне нужен сервер приложений, который является экземплярами beanstalk, для выполнения некоторых действий при запуске, и я подумал о запуске сценария bash, переданного экземпляру со свойством UserData, которое доступно обычным экземплярам EC2.Я нашел несколько примеров шаблонов CloudFormation, которые делают это с обычными экземплярами EC2, но нет примера с Beanstalk.Я попытался добавить это в поле свойств для приложения:

"MyApp" : {
  "Type" : "AWS::ElasticBeanstalk::Application",
  "Properties" : {
    "Description" : "MyApp description",
    "ApplicationVersions" : [{
      ...
    }],
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    ...

Я также попытался добавить в часть среды:

"MyAppEnv" : {
  "Type" : "AWS::ElasticBeanstalk::Environment",
  "Properties" : {
    "ApplicationName" : { "Ref" : "MyApp" },
    "Description" :  "MyApp environment description",
    "UserData" : {
      "Fn::Base64" : { "Fn::Join" : ["", [
        "#!/bin/bash\n",
        "touch /tmp/userdata_sucess\n"
      ]]
    }},
    "TemplateName" : "MyAppConfiguration",
    "VersionLabel" : "First Cloud version"
  }
},

В обоих случаях это привело к сбоюпри попытке создать стек.Кто-нибудь знает, возможно ли передать UserData экземпляру Beanstalk с помощью CloudFormation.Если да - приведите пример.

1 Ответ

7 голосов
/ 14 декабря 2011

Если вы хотите использовать все преимущества, которые предлагает Beanstalk - например, отсутствие необходимости исправления ОС, которую Amazon делает для вас - это невозможно.Одним из вариантов является создание пользовательского AMI, в который вы включаете необходимые сценарии, но затем вы должны сами управлять ОС с помощью исправлений безопасности.Подробнее здесь .

...