Dear all,
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-----
EOF
cat <<EOF > /etc/chef/client.rb
log_location STDOUT
chef_server_url "https://mychefserver.goofy.goober/organizations/myorg"
ssl_verify_mode :verify_none
validation_client_name "myorg-validator"
EOF
cat <<EOF > /etc/chef/first-boot.json
{
"run_list": ["role[tomcat_backend]"]
}
EOF
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 \
&> /tmp/chef.log
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..
/tmp/chef.log
/tmp/get_chef.log
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…
Eugenio Marzo
DevOps Engineer at SourceSense
