Pregunta

Necesito el servidor de aplicaciones, que son las instancias de BeanStalk, para hacer algunas acciones al inicio y pensé en ejecutar un script bash que se pasó a la instancia con la propiedad UserData que está disponible para instancias regulares de EC2.

He encontrado varias plantillas de CloudFormation de ejemplo que lo hacen con instancias de EC2 regulares, pero no hay ejemplo con Beanstalk. He intentado agregar esto al campo Propiedades para la aplicación:

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

También intenté agregar a la parte del entorno:

"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"
  }
},

En ambos casos, esto dio como resultado un fracaso al tratar de crear la pila. ¿Alguien sabe si es posible pasar los días de usuario a una instancia de BeanStalk usando CloudFormation? Si es así, ¿puede proporcionar un ejemplo?

¿Fue útil?

Solución

Si desea tener todas las ventajas que ofrece Beanstalk, como no tener que parchear el sistema operativo que Amazon hace por usted, esto no es posible. Una opción es crear un AMI personalizado donde incluya los scripts necesarios, pero luego debe administrar el sistema operativo usted mismo con parches de seguridad. Lee mas aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top