3

I am trying to get a few things completed post deploy on AWS EB. I have added my .ebextensions to the git repository and I only have one file 01_container_commands.config, it does not appear to run when I tail the /var/log/eb-activity.log At one point it was running and was failing on command 05 listed below so I removed 05 but now it does not run at all.

container_commands:
  01_user_permission:
    command: /usr/sbin/usermod -a -G webapp ec2-user
  02_remove_storage_directory:
    command: rm -rf /var/app/current/storage
  03_create_storage_directories:
    command: mkdir /var/app/current/storage /var/app/current/storage/framework /var/app/current/storage/framework/session /var/app/current/storage/framework/views /var/app/current/storage/framework/cache
  04_set_storage_permissions:
    command: chmod -fR 755 /var/app/current/storage
  05_copy_env_file
    command: cp /var/app/current/.aws.env /var/app/current/.env

It would appear that it is not running my ebextensions, any ideas what I could check to find out why?

As a side note I have tried wrapping my commands with double quotes, that didn't seem to help either.

As you can see below it's just not executing my script at all.

[2017-01-09T19:59:09.615Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/AppDeployPreHook/12_update_permissions.sh] : Starting activity...
[2017-01-09T19:59:20.431Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/AppDeployPreHook/12_update_permissions.sh] : Completed activity. Result:
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_user
  + EB_APP_USER=webapp
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_base_dir
  + EB_APP_BASE_DIR=/var/app
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
  + EB_APP_STAGING_DIR=/var/app/ondeck
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_logs_dir
  + EB_APP_LOGS_DIR=/var/app/support/logs
  + cd /var/app/ondeck
  + chown -R webapp:webapp /var/app
  + chown -R webapp:webapp /var/log/httpd
  + '[' -f app/SymfonyRequirements.php ']'
[2017-01-09T19:59:20.431Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/AppDeployPreHook] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/appdeploy/pre.
[2017-01-09T19:59:20.432Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/EbExtensionPostBuild] : Starting activity...
[2017-01-09T19:59:21.040Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Starting activity...
[2017-01-09T19:59:21.040Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Completed activity.
[2017-01-09T19:59:21.075Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/EbExtensionPostBuild] : Completed activity.
[2017-01-09T19:59:21.076Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/InfraCleanEbextension] : Starting activity...
[2017-01-09T19:59:21.157Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0/InfraCleanEbextension] : Completed activity. Result:
  Cleaned ebextensions subdirectories from /var/app/ondeck.
[2017-01-09T19:59:21.157Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage0] : Completed activity. Result:
  Application update - Command CMD-AppDeploy stage 0 completed
[2017-01-09T19:59:21.158Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1] : Starting activity...
[2017-01-09T19:59:21.158Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook] : Starting activity...
[2017-01-09T19:59:21.158Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook/01_flip.sh] : Starting activity...
[2017-01-09T19:59:21.535Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook/01_flip.sh] : Completed activity. Result:
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_staging_dir
  + EB_APP_STAGING_DIR=/var/app/ondeck
  ++ /opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir
  + EB_APP_DEPLOY_DIR=/var/app/current
  + '[' -d /var/app/current ']'
  + mv /var/app/current /var/app/current.old
  + mv /var/app/ondeck /var/app/current
  + nohup rm -rf /var/app/current.old
[2017-01-09T19:59:21.535Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook/99_reload_app_server.sh] : Starting activity...
[2017-01-09T19:59:21.677Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook/99_reload_app_server.sh] : Completed activity. Result:
  Equivalent Upstart operations: start httpd, stop httpd, restart httpd, status httpd
  Gracefully restarting httpd
  [OK]
[2017-01-09T19:59:21.677Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployEnactHook] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/appdeploy/enact.
[2017-01-09T19:59:21.678Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployPostHook] : Starting activity...
[2017-01-09T19:59:21.678Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployPostHook/01_monitor_httpd_pid.sh] : Starting activity...
[2017-01-09T19:59:22.168Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployPostHook/01_monitor_httpd_pid.sh] : Completed activity. Result:
  + chmod 0755 /var/run/httpd
  + /opt/elasticbeanstalk/bin/healthd-track-pidfile --proxy httpd
[2017-01-09T19:59:22.168Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1/AppDeployPostHook] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/hooks/appdeploy/post.
[2017-01-09T19:59:22.169Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AppDeployStage1] : Completed activity. Result:
  Application version switch - Command CMD-AppDeploy stage 1 completed
[2017-01-09T19:59:22.169Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter] : Starting activity...
[2017-01-09T19:59:22.169Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigLogRotation] : Starting activity...
[2017-01-09T19:59:22.170Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigLogRotation/10-config.sh] : Starting activity...
[2017-01-09T19:59:22.611Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigLogRotation/10-config.sh] :     Completed activity. Result:
  Disabled forced hourly log rotation.
[2017-01-09T19:59:22.612Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigLogRotation] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/addons/logpublish/hooks/config.
[2017-01-09T19:59:22.612Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigCWLAgent] : Starting activity...
[2017-01-09T19:59:22.613Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigCWLAgent/10-config.sh] : Starting activity...
[2017-01-09T19:59:22.923Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigCWLAgent/10-config.sh] : Completed activity. Result:
  Log streaming option setting is not specified, ignore cloudwatch logs setup.

  Disabled log streaming.
[2017-01-09T19:59:22.923Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter/ConfigCWLAgent] : Completed activity. Result:
  Successfully execute hooks in directory /opt/elasticbeanstalk/addons/logstreaming/hooks/config.
[2017-01-09T19:59:22.923Z] INFO  [26612] - [Application update app-fb58-170109_145741@53/AddonsAfter] : Completed activity.
[2017-01-09T19:59:22.924Z] INFO  [26612] - [Application update app-fb58-170109_145741@53] : Completed activity. Result:
  Application update - Command CMD-AppDeploy succeeded
Joseph Crawford
  • 1,470
  • 1
  • 15
  • 29
  • How are you deploying it to EB? – pgratton Jan 09 '17 at 19:22
  • I am using the CLI Tools ```eb deploy```, the deployment works fine however the config file is only executed sometimes and not all the time with every deploy. More recently it appears to have just stopped executing all together. – Joseph Crawford Jan 09 '17 at 19:31

1 Answers1

1

Per the documentation, your commands should be double-quoted, like below. You were also missing a colon after 05_copy_env_file.

I know you said you tried double-quoting, but can you retry after fixing both the quoting and the colon? Also please update your question with your new 01_container_commands.config file and the entire /var/log/eb-activity.log file. Thanks!

container_commands:
  01_user_permission:
    command: "/usr/sbin/usermod -a -G webapp ec2-user"
  02_remove_storage_directory:
    command: "rm -rf /var/app/current/storage"
  03_create_storage_directories:
    command: "mkdir /var/app/current/storage /var/app/current/storage/framework /var/app/current/storage/framework/session /var/app/current/storage/framework/views /var/app/current/storage/framework/cache"
  04_set_storage_permissions:
    command: "chmod -fR 755 /var/app/current/storage"
  05_copy_env_file:
    command: "cp /var/app/current/.aws.env /var/app/current/.env"
Brian
  • 5,300
  • 2
  • 26
  • 32
  • 2
    I had tried with and without quotes.. That was not the problem, even after fixing those it was not working. The reason is because I needed to do this stuff "post-deployment" which is not really documented, this article is what made things start to work for me. http://junkheap.net/blog/2013/05/20/elastic-beanstalk-post-deployment-scripts/ – Joseph Crawford Jan 09 '17 at 21:12
  • 1
    Good to hear you got it working! I wish AWS would officially support the "post-deployment" technique, but as you found it works just fine. That being said, your `01_user_permission` step should run just fine as a regular `container_command` since it's not affecting `/var/app/current`. – Brian Jan 09 '17 at 21:19
  • Just in case someone else stumbles upon this and is wondering why their `.platform` or `.ebextensions` dir is not working even after following every doc properly, make sure you have the `Procfile`, `.ebextensions/**/*` and `.platform/**/*` in the `files` list of `artifacts` directive in your `buildspec.yml` file. – Devang Mistry Oct 09 '22 at 12:13
  • @DevangMistry Note: You only need buildspec.yml if you're using AWS CodeBuild. – Tim Apr 04 '23 at 20:54