I am trying to deploy a shellscript script to install a program when autoscaling triggers on aws elastic beanstalk.
I have searched on google and it all points to the creation of .ebextensions to use a config file to install the program upon start up May i know how do i create this?
Many thanks for the help in advance
You can add AWS Elastic Beanstalk configuration files ( . ebextensions ) to your web application's source code to configure your environment and customize the AWS resources that it contains. Configuration files are YAML- or JSON-formatted documents with a . config file extension that you place in a folder named .
Saved configurations are stored in the Elastic Beanstalk S3 bucket in a folder named after your application. For example, configurations for an application named my-app in the us-west-2 region for account number 123456789012 can be found at s3://elasticbeanstalk-us-west-2-123456789012/resources/templates/my-app/ .
Environment properties are written to the /opt/python/current/env file, which is sourced into the virtualenv stack where the application runs. For more information, see Using the Elastic Beanstalk Python platform.
You need to do the following (obviously catering for your requirements):
In the root on your packaged software create a folder called .ebextensions
drwxr-xr-x 4 root root 4096 Sep 30 13:39 .
dr-xr-x--- 7 root root 4096 Nov 4 15:22 ..
drwxr-xr-x 2 root root 4096 Nov 4 15:22 .ebextensions
In the .ebextensions folder create two files called 02_files.config and 03_container_commands.config
-rw-r--r-- 1 root root 11334 Jul 25 12:26 02_files.config
-rw-r--r-- 1 root root 960 Nov 4 11:22 03_container_commands.config
The contents of 02_files.config should contain the contents of your shell script:
files:
"/path/to/your/shellscript/myscript.sh" :
mode: "000755"
owner: root
group: root
content: |
#!/bin/sh
echo "Hello World!" >> /var/log/myscript.out
The contents of 03_container_commands.config should contain the command to run your shell script:
container_commands:
01_runmyshellscript:
command: "/path/to/your/shellscript/myscript.sh"
Now when you upload your code it will create your shell script in /path/to/your/shellscript/myscript.sh and then execute it sending Hello World! to /var/log/myscript.out
You need to understand that Elastic Beanstalk is no magic. It simply launches EC2 servers and runs a bunch of shell scripts on them in a specific order. Once you realize that, you can ask Elastic Beanstalk to execute your script as well when it kick starts the server. Full documentation of how to ask EB to execute your stuff is here.
In your case, you need to ask EB to execute a container_commands
which is basically a script to be run after your application is set up.
So first thing is to add the trend micro script to your application sources so it can be found at runtime. let's assume it's at scripts/trendmicro.sh
Then, asking EB to execute a script is as simple as adding a file to your application sources.
You can add a file named /.ebextensions/container_commands.config
with the following:
container_commands:
trent_micro_startup:
command: "scripts/trendmicro.sh"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With