Configure Delayed_job for Rails3.x and Rails4.x
Elastic Beanstalk will execute any script in /opt/elasticbeanstalk/hooks/appdeploy/post after the web server is restarted. This means if you drop shell scripts in this directory they will be run. Please also refer the AWS Documentation for container_commands.
I have created a file name delayed_job.config in the .ebextensions folder in order to deploy a shell script that runs after the deployment gets over.
For RAILS 3.x
Below is my delayed_job.sh file for Rails 3.x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
For RAILS 4.x
Below is my delayed_job.sh file for Rails 4.x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
What this config do is:
- Create the “post” directory if it doesn’t already exist, it ignores errors (If the directory already exists).
- Deploy the shell script with the appropriate permission into the right directory.
What this shell script do is:
- Setup the environment variables in ((/opt/elasticbeanstalk).
- Restart delayed_job as per the app user (usually webapp), using a shared pids directory to make sure it will kill the old version first.
Installing Ruby 2.0.0 on an Amazon Linux AMI
Install a ruby 2.0.0 on an Amazon AMI. This is just a quick update to get version 2.0.0 up. We used the current 64 bits Amazon AMI. Note that the complete procedure might take a few hours on a Amazon Micro instance. Deleting the old version of Ruby also removes the package aws-amitools-ec2. As long as you don’t need to create your own AMIs with this instance, you will be fine. Here is the procedure, as usual log in as ec2-user and perform the following from the shell:
Login as root
1 2 |
|
Remove the old version of Ruby
1
|
|
Install the dependency packages
1 2 3 4 5 |
|
After intalling the dependency packages download and install Ruby 2.0.0
1 2 3 4 5 6 7 8 9 10 |
|
That’s it! Have fun with Ruby!