DevOps - CI/CD Pipeline Project
CI/CD pipeline using various DevOps Tools to deploy a simple Tomcat project on AWS.
- Installed Jenkins, Ansible, Docker, Git, Maven, and Tomcat on various AWS EC2 servers.
- Created various Jenkin jobs along with Git version controlling for Continuous Integrations.
- Automated Docker containers and SSH to other servers using Ansible playbooks for Continuous Delivery.
PROCESS
STEPS 1
- Create and Launch AWS Linux Instance to manage Jenkins
- Connect to Linux Server through SSH
- Install JAVA on Linux Server
- Install Jenkins, Maven, and GIT to have the job for Deployment
STEPS 2
- Create a new Linux server (App Server) in AWS for Deploying App
- Create User in Server which can manage deploy
- Connect Jenkins server to App Server through SSH Plugin
- Create a Jenkin Job which deploys app into App Server
STEPS 3
- Install Docker in App Server
- Create a Docker file that Installs TomCat Server and Deploy App
- Create Image from the file and deploy into Container
- Access the App through public Ip: port which is running on Container
STEPS 4
- Install Ansible and its need for Deployment
- Create Ansible Playbook to automate all docker related commands
- Fix the problems of stopping and starting containers through the Ansible YAML file
- Create SSH Key and hosts file for establishing a connection through Ansible
- Pass the Ansible Playbook commands into Jenkins Job for automatic Deployment in the App server
STEPS 5
- Create another Linux App Server B through AWS
- Create User in Server which can manage deploy
- Establish a connection to App Server B from App server A through Ssh keys
- Ping the App Server B from Server A through Ansible command for connection check
- Develop a YAML playbook file that pushes the docker image to Docker Hub in Server A
- Modify the Jenkins job to deploy the App into Server B through Ansible Commands
STEPS 6
- Adding Post-build action run automated tests after new Code successfully Deployed
- What is Pipeline and understand the basics of Jenkin Pipeline
- Creating the JenkinsFile with the complete job configuration design to run end to the end deployment process
Checking the JenkiFile into Code repo and automate the complete CI/CD process through Jenkins!!
🗂️GitHub link: https://github.com/AkhilMovva/Simple-DevOps-Project