Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1K
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!