Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1K
Vistas
La aplicación Elastic BeanStalk implementa el gancho posterior que no ejecuta mi comando

Recientemente pude implementar mi aplicación Laravel usando codepipeline en Elastic Beanstalk, pero me encontré con un problema. Noté que mis rutas fallaban debido a la configuración de php.conf Nginx. Tuve que agregar algunas líneas de código al archivo nginx php.conf de EB para que funcionara.

Mi problema ahora era que después de cada implementación, la instancia de la aplicación que modifiqué, el archivo php.conf, se destruyó y se volvió a crear. Quería una forma de actualizar dinámicamente el archivo después de cada implementación exitosa. Tenía una versión del archivo que quería versionar con mi aplicación y, por lo tanto, quería crear un enlace simbólico a ese archivo después de la implementación.

Después de mucha investigación, me topé con appDeploy Hooks en Elastic Beanstalk que ejecuta secuencias de comandos posteriores a la implementación, así que hice esto.

 files: "/opt/elasticbeanstalk/hooks/appdeploy/post/91_post_deploy_script.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash sudo mkdir /var/testing1 sudo ln -sfn /var/www/html/php.conf.example /etc/nginx/conf.d/elasticbeanstalk/php.conf sudo mkdir /var/testing sudo nginx -s reload

Y esto por alguna razón no funciona. El enlace simbólico no se crea, por lo que mis rutas aún no funcionan.

Incluso agregué algo de mkdir, así que estoy seguro de que se ejecutan los comandos en ese script, ninguno de esos comandos se ejecutó porque ninguno de esos directorios se creó.

Tenga en cuenta que si entro en la instancia ec2 y ejecuto los comandos allí, funciona. Ese script bash también existe en el directorio de publicaciones y si lo ejecuto manualmente en el servidor, también funciona.

Cualquier sugerencia sobre cómo podría solucionar esto sería útil. Tal vez yo también estoy haciendo algo mal.

Ahora he conseguido que mis scripts se ejecuten siguiendo este . Sin embargo, el script no se está ejecutando. estoy recibiendo un error

 2020/06/28 08:22:13.653339 [INFO] Following platform hooks will be executed in order: [01_myconf.config] 2020/06/28 08:22:13.653344 [INFO] Running platform hook: .platform/hooks/postdeploy/01_myconf.config 2020/06/28 08:22:13.653516 [ERROR] An error occurred during execution of command [app-deploy] - [RunPostDeployHooks]. Stop running the command. Error: Command .platform/hooks/postdeploy/01_myconf.config failed with error fork/exec .platform/hooks/postdeploy/01_myconf.config: permission denied

Traté de seguir esta publicación del foro aquí para hacer que mi archivo sea ejecutable agregando a mi comando de contenedor un nuevo comando como este:

 01_chmod1: command: "chmod +x .platform/hooks/postdeploy/91_post_deploy_script.sh"

Todavía me encuentro con el mismo problema. Permiso denegado

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Lamentablemente, los ganchos que está describiendo (es decir /opt/elasticbeanstalk/hooks/appdeploy ) son para Amazon Linux 1 .

Dado que está utilizando Amazon Linux 2 , como se aclara en los comentarios, los ganchos que está tratando de usar no se aplican. Por lo tanto, no están siendo ejecutados .

En Amazon Linux 2, hay nuevos ganchos como se describe aquí y son:

precompilación: los archivos aquí se ejecutan después de que el motor de la plataforma Elastic Beanstalk descargue y extraiga el paquete de código fuente de la aplicación, y antes de instalar y configurar la aplicación y el servidor web.

preimplementación: los archivos aquí se ejecutan después de que el motor de la plataforma Elastic Beanstalk instala y configura la aplicación y el servidor web, y antes de que los implemente en su ubicación de tiempo de ejecución final.

postdeploy: los archivos aquí se ejecutan después de que el motor de la plataforma Elastic Beanstalk implementa la aplicación y el servidor proxy.

El uso de estos nuevos ganchos es diferente al de Amazon Linux 1. Por lo tanto, debe volver a Amazon Linux 1 o migrar su aplicación a Amazon Linux 2.

Los pasos generales de migración de Amazon Linux 1 a Amazon Linux 2 en EB se describen aquí .

over 4 years ago · Santiago Trujillo Denunciar

0

Cree una carpeta llamada .platform en la carpeta raíz de su proyecto y cree un archivo con el nombre 00_myconf.config dentro de la carpeta .platform .

 .platform/ 00_myconf.config

Abra 00_myconf.config y agregue los scripts

 files: "/opt/elasticbeanstalk/hooks/appdeploy/post/91_post_deploy_script.sh": mode: "000755" owner: root group: root content: | #!/usr/bin/env bash sudo mkdir /var/testing1 sudo ln -sfn /var/www/html/php.conf.example /etc/nginx/conf.d/elasticbeanstalk/php.conf sudo mkdir /var/testing sudo nginx -s reload

Confirme sus cambios o vuelva a cargar el proyecto. Esta carpeta .platform se considerará en cada nueva creación de instancia y su aplicación se implementará correctamente en todas las nuevas instancias que cree Amazon Elastic beanstalk.

over 4 years ago · Santiago Trujillo Denunciar

0

Si accede a la documentación aquí y se desplaza a la sección con el título "Ejemplo de aplicación con extensiones", puede ver un ejemplo de la estructura de carpetas de su carpeta .platform para que agregue su configuración personalizada a NGINX conf en cada implementación.

Puede reemplazar todo el archivo nginx.conf con su archivo o agregar archivos de configuración adicionales al directorio conf.d

Reemplace el archivo conf con su archivo en la implementación de la aplicación: .platform/nginx/nginx.conf

Agregue archivos de configuración a nginx.conf: .platform/nginx/conf.d/custom.conf

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda