This project demonstrates the implementation of a complete DevOps lifecycle including infrastructure provisioning, configuration management, CI/CD pipeline, and containerization.
The goal of this project is to automate the deployment of a web application using DevOps tools and best practices. The system provisions infrastructure, configures nodes, builds and deploys applications, and ensures continuous integration and delivery.
- AWS EC2
- Terraform (Infrastructure as Code)
- Ansible (Configuration Management)
- Jenkins (CI/CD Pipeline)
- Docker (Containerization)
- GitHub (Version Control)
- Provisioned multiple EC2 instances using Terraform
- Created separate nodes for:
- Jenkins Server
- Application Server(s)
- Used Ansible to:
- Install required software on all nodes
- Configure environments automatically
- Implemented a Jenkins Pipeline to:
- Clone code from GitHub
- Build Docker image
- Deploy application container
- Pipeline triggers automatically on code push
- Application is containerized using Docker
- Used base image:
hshar/webappforked - Application code is deployed to: /var/www/html
- Developer pushes code to GitHub
- Jenkins pipeline is triggered
- Docker image is built using Dockerfile
- Container is deployed to the application server
- Updated application goes live automatically
The following were captured and documented:
- ✅ Nodes created and configured
- ✅ Infrastructure setup using Terraform
- ✅ Ansible execution logs
- ✅ Jenkins pipeline stages
- ✅ Console output of builds
- ✅ Code changes tracking
- Fully automated infrastructure provisioning
- Configuration management with Ansible
- Continuous Integration & Deployment
- Docker-based application deployment
- Scalable and reproducible setup
- Successfully built an end-to-end DevOps pipeline
- Reduced manual intervention in deployment
- Achieved faster and reliable delivery process
- Hands-on experience with real-world DevOps tools
- Understanding CI/CD pipeline design
- Infrastructure automation using Terraform
- Configuration management using Ansible
- Containerization using Docker
Supradeepan K