Skip to content

A comprehensive end-to-end CI/CD pipeline leveraging Terraform, Ansible, Jenkins, SonarQube, JFrog, Docker, EKS, Prometheus, and Grafana.

License

Notifications You must be signed in to change notification settings

sahil-MK2/learning_project_2

Repository files navigation

🚀 Implementation of the Entire Advanced CI/CD Pipeline with Major DevOps Tools

DevOps Pipeline

A comprehensive end-to-end CI/CD pipeline leveraging Terraform, Ansible, Jenkins, SonarQube, JFrog, Docker, EKS, Prometheus, and Grafana.


🧩 Pipeline Architecture Overview

Below is a step-by-step implementation breakdown of the complete DevOps CI/CD process.

🔧 Step 1: Infrastructure Provisioning (Terraform)
  • Provisioned VPC, Security Groups, Ansible Controller, Jenkins Master, and Agent Instances using Terraform.
    🔗 Step Details
🔐 Step 2: SSH Configuration
  • Set up password-less authentication between Ansible Controller and Agent nodes.
    🔗 Step Details
⚙️ Step 3: Jenkins Setup (Ansible)
  • Configured Jenkins Master and Agent nodes.
  • Agent configured as Maven Build Server.
    🔗 Step Details
🔗 Step 4: Jenkins Master-Agent Integration
  • Connected Jenkins Master to Agent with credentials.
    🔗 Step Details
🌐 Step 5: GitHub Integration
  • Added GitHub credentials.
  • Created Multibranch Pipeline Job.
    🔗 Step Details
🚨 Step 6: Webhook Trigger Setup
  • Configured GitHub webhook trigger using Multibranch Scan Webhook Trigger Plugin.
    🔗 Step Details
🧪 Step 7: SonarQube Integration
  • Generated access token in SonarCloud.
  • Installed SonarQube scanner plugin.
  • Added SonarQube server and scanner to Jenkins.
  • Configured sonar-project.properties.
  • Added code quality, unit test, and build stages in Jenkinsfile.
    🔗 Step-by-step Setup
📦 Step 8: JFrog Artifactory Integration
  • Configured JFrog credentials.
  • Installed Artifactory plugin in Jenkins.
    🔗 Details
🐳 Step 9: Docker Image & Push to JFrog
  • Built Docker image from .jar.
  • Pushed to JFrog Artifactory using Docker Pipeline Plugin.
  • Added Docker Build & Publish stage to Jenkinsfile.
    🔗 Details
☸️ Step 10: EKS Cluster Setup
  • Created EKS cluster via Terraform.
  • Installed kubectl and AWS CLI in Jenkins slave.
  • Configured Kube credentials using:
    aws eks update-kubeconfig --region <region_name> --name <cluster_name>
    

🔗 Details

🚀 Step 11: Kubernetes Deployment
  • Pulled Docker image using Kubernetes secrets.
  • Deployed it to EKS cluster using Deployment and Service resources.
  • Exposed via LoadBalancer.
    🔗 Details
📊 Step 12: Monitoring (Prometheus & Grafana)
  • Added Prometheus Helm repo.
  • Enabled monitoring in EKS cluster.
  • Changed Prometheus and Grafana services to LoadBalancer for browser access.
    🔗 Details

⭐ Support the Project

If you found this helpful:

  • ⭐ Star this repo
  • 🔁 Share it with your peers
  • ✅ Follow for more DevOps content

About

A comprehensive end-to-end CI/CD pipeline leveraging Terraform, Ansible, Jenkins, SonarQube, JFrog, Docker, EKS, Prometheus, and Grafana.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •