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