This article will teach how to configure a Loadbalancer using HAProxy software and configure the web server using Ansible.
Ansible is a configuration management tool and HAProxy is a software that provides a high availability load balancer and proxy server for TCP and HTTP-based applications that spread requests across multiple servers.
- Basic knowledge of AWS and Ansible.
- Basic knowledge of the Load Balancer.
We will launch some servers and make one of the servers a load balancer and tag it as a load balancer. And all of the other servers will become webservers. After that, we will add the IP address of these servers to the inventory and group them according to the tags. All of the webserver IPs are grouped to form one group of web servers and the IPs of loadbalacers are grouped to form a group of load balancers.
For doing implementing this use case, we required two ROLES. One is the webserver ROLE that will configure the web server on the IP addresses tagged as webservers and another is the HAProxy ROLE that will configure the load balancer in the IP addresses tagged as the load balancer.
If you don’t know what is the Ansible ROLE and how to create it then refer to this article where I had explained how to create the ROLES in ansible and I had shown how to create a webserver and haproxy ROLE.
Creating webserver ROLE
Deploying a website on AWS using Ansible
Welcome, this article shows a simple yet powerful way to deploy Web Server on the AWS using Ansible.
Creating haproxy ROLE
Configure LoadBalancer(HAProxy) and WebServer(Apache) on AWS using Ansible.
This article will teach you in-depth about how to configure a Loadbalancer using HAProxy software on the AWS EC2…
Step 1: Creating Ansible-Playbook using a webserver and haproxy ROLES
By now, we have a webserver and haproxy roles ready. So, let’s create an ansible-playbook using these roles.
$ vim web.yml
The playbook above will run the haproxy ROLE on the hosts that are grouped as a loadbalancer and the webserver ROLE on the hosts that are grouped as apache_webserver.
Step 2: Add the IP addresses of the webserver and loadbalacner hosts to the inventory
Let’s go to the ansible inventory file and add the IP addresses of the webserver and loadbalancer hosts to the ansible inventory.
Step 3: Run the playbook
Now, run the playbook with the webserver and haproxy ROLE and check if everything works fine.
Step 4: Check if the website is accessible
As we had configured the load balancer, we can the website using the load balancer IP and the load balancer will automatically balance the load among the available servers and shows the website to us.
We simply have to go to the IP of the loadbalancer on the port 8080.
The URL will be LOAD_BALANCER_PUBLIC_IP:8080/home.html
The image above shows that the website is accessible through the load balancer IP. So, everything we had configured is working fine.
That’s it for this article!