It has been a long time since my last post and here I am with a new one, just to keep track of my current study case…
I would like to put in place an auto-scaling mechanism for my lab platform.
Currently I have one Ha-Proxy load balancer with 2 backends. I will perform stress test on my front-end with Jmeter and create automatically a virtual machine joined to my Chef infrastructure in order to increase resources.
In this post I will describe just how to set up an initial configuration of autoscaling-group + Chef ( today it is Friday… on Monday I will do the rest 😉
Let’s start with the needed components:
- a Chef server
- one HaProxy load balancer
- two tomcat backend
Now I try the script for the unattended bootstrap. This script adds a new node under the Chef Server. I tried it on a simple virtual machine locally, using a Centos 7 running in Virtualbox.
[ ! -e /etc/chef ] && mkdir /etc/chef
cat <<EOF > /etc/chef/validation.pem
-----BEGIN RSA PRIVATE KEY-----
your super secret private key :)
-----END RSA PRIVATE KEY-----
cat <<EOF > /etc/chef/client.rb
cat <<EOF > /etc/chef/first-boot.json
curl -L https://www.opscode.com/chef/install.sh | \
bash -s -- -v 12.9.41 &> /tmp/get_chef.log
chef-client -E amazon_demo -j /etc/chef/first-boot.json \
If things have done correctly you will see the new node into your Chef server dashboard..Check the logs on the new node in case of problems..
Now let’s create the autoscaling-group in Amazon EC2
Then select your preferred instance… I am using RHEL 7.2
Insert the bootstrap script “User data file” (the one we just created)
I have no instances running on my cloud, so the following configuration will generate a virtual machine due to the min required is 1.
After a minute I got an email saying:
Description: Launching a new EC2 instance: $my_id_istance
Cause: At 2016-05-06T15:10:17Z an instance was started in response to a
difference between desired and actual
Finally I have a new configured node in my Chef server.. . which is the autoscaling_node01.
That’s all folks!
Bye for now…
DevOps Engineer at SourceSense