DevOps Project - Continuous Delivery and Configuration Management of Vprofile Project using Jenkins, Ansible, Nexus, SonarQube and Slack
This is a DevOps project for Continuous Delivery and Configuration Management of vprofile project using Jenkins, Ansible, Nexus, SonarQube and Slack. This project is a continuation of vprofile-project-ci-jenkins project.
Link for vprofile app repository.
-
Agile Software Development
-
Continuous Code Commit
-
Package/Software/Artifact Deployment on Server
-
Software Testing/Integration Testing after Deployment
-
Test Report gets Evaluated and Approval for Production Issued
-
Deploy → Test → Deploy → Test (Dev, QA, UAT)
-
Dependent on Ops Team
-
Deploy → Test → Deploy → Test (Dev, QA, UAT, Prod)
-
In an Agile SDLC, there will be Frequent Code Changes
-
Manual Code Deployment is Time Consuming
-
Involves Task Assignment/Ticketing/Approvals
-
Different Owners for Different Environment
-
Build, Test, Deploy and Test for Every Commit
-
Automated Deployment Process
-
Notification at Every Step in Pipeline
-
Integrate Automation Tool
-
Remove/Minimize Human Intervention
-
Fix Code if Bugs or Error found Instantly rather than Waiting
-
Amazon EC2 - Compute Resource
-
Jenkins - Continuous Integration and Continuous Delivery Server
-
Ansible - Configuration Management
-
Git and GitHub - Version Control System
-
Maven - Build Tool
-
Checkstyle - Code Analysis Tool
-
Nexus Sonatype Repository - Artifact / Software Repository
-
SonarQube - Code Analysis Server
-
Tomcat - Application Server
-
Slack - Notifications
-
Update
GitHub Webhook
with new Jenkins IP and Resize Jenkins volume -
Launch
EC2 Instance
forapp01-staging
-
Jenkins Prerequisites
-
Install Ansible
-
Install Ansible Plugin
-
Save app01 SSH Login Creds
-
Timestamp Variable
-
-
Copy Ansible code from this Repository to your own Repository
-
Create DNS record in Route 53 for
app01-staging
-
Create Inventory file in Ansible Code
-
Update Security Group Rules
-
Allow Port
22
inapp-sg
fromjenkins-sg
-
Allow Port
8081
innexus-sg
fromapp-sg
-
-
Write
Jenkinsfile
to run Ansible Playbook from Jenkins -
Create Pipeline in
Jenkins
and Test it -
Update Ansible Code in the
Production
Branch -
Launch
app01-production
, DNS record in Route 53, Create Inventory file -
Create Pipeline in
Jenkins
and Test it -
Test of Promoting changes to
Production
branch by Merge