Saturday, March 8, 2025

How to Implement CICD Pipeline using GitHub Actions | GitHub Actions Tutorials | GitHub Actions CICD Pipeline | How to Deploy Java WAR file using GitHub Actions to Tomcat Server

Please find steps for Deploying Java WAR file to Tomcat using GitHub Actions:


Pre-requisites:

Implementation steps:

We need to setup secrets to store tomcat user name, password and Tomcat url.

Add Tomcat user name, password and Tomcat Host url as Secret in GitHub Actions

Go to your GitHub Repo --> Settings --> 

Click on Secrets and Variables under Security in left nav 
Click new Repository Secret

Create TOMCAT_HOST secret and add tomcat url

Create TOMCAT_USER secret and add user name
Create TOMCAT_PASSWORD secret and Tomcat password


GitHub Actions Workflow YAML for Deploying a WAR file to Tomcat

You will create this file .github/workflows/cicd.yaml inside GitHub Repo where your Java code is.

name: Build a WAR file using Maven and Deploy Java App to Tomcat running in AWS EC2
on:
  push:
    branches: [ "main" ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: '11'
    - name: Build with Maven
      run: mvn clean install -f MyWebApp/pom.xml
    - name: Deploy to Tomcat
      run: |
        curl -v -u ${{ secrets.TOMCAT_USER }}:${{ secrets.TOMCAT_PASSWORD }} 
        -T MyWebApp/target/MyWebApp.war \ 
        "http://${{ secrets.TOMCAT_HOST }}/manager/text/deploy?path=/MyWebApp&update=true"

Commit the file.

As soon as you commit, build will run immediately in GitHub Actions. 
Now you can see the output of build in Actions tab.

Check the output in Tomcat

Saturday, March 1, 2025

DevSecOps Bootcamp March 2025 Schedule | DevOps & AWS Azure Cloud Coaching by Coach AK | DevSecOps and Cloud Computing Online Classes

 🚀 Join the Ultimate DevSecOps Bootcamp – March 2025! 🔥

Are you ready to supercharge your career in DevSecOps? Whether you're a beginner or an experienced professional, this hands-on bootcamp will take you from zero to expert with real-world training on the latest DevSecOps tools and practices!

✅ Master Top DevSecOps Tools: Git, GitHub, Bitbucket, Jenkins, SonarQube, Slack, Trivy, Nexus, Terraform, Ansible, Docker, Kubernetes, Helm, Prometheus and more!
✅ Cloud Platforms – AWS & Azure
✅ Live Interactive Sessions – Get personalized guidance from industry experts!
✅ Weekend & Weekday Batches – Flexible schedules to fit your lifestyle!
✅ Weekday Evenings Batch Available! – Perfect for working professionals!
✅ Real-World Projects – Build experience that recruiters love!
✅ 100% Hands-On Training – No boring theory, just practical DevSecOps!
✅ Career Support & Guidance – Resume building, interview prep, and networking!

📅 Weekend Batch Starts: March 15th, 2025
🕒 Batch Timings:

  • Weekend Batch: Saturdays (11:35 AM - 01:30 PM CST) & Sundays (12:45 PM - 2:30 PM CST)

📅 Weekday Evening Batch Starts: March 10th, 2025
🕒 Batch Timings:

  • Weekday Evenings Batch: Mondays & Wednesdays (6:00 PM - 8:00 PM CST)

📍 Online – Learn from Anywhere!

🎯 Spots are Limited! Secure your seat now and take the first step toward becoming a DevSecOps pro!

📞 Contact Coach AK Now:
📱 +1 (469) 733-5248 (WhatsApp Available)
📧 devops.coaching@gmail.com

💥 Act Fast! Early Bird Discounts Available! 🚀

👉 Register Today by making payments, contact Coach AK!

Tuesday, February 18, 2025

DevSecOps Bootcamp March 2025 Schedule | DevOps & AWS Azure Cloud Coaching by Coach AK | DevSecOps and Cloud Computing Online Classes

🚀 Join the Ultimate DevSecOps Bootcamp – March 2025! 🔥

Are you ready to supercharge your career in DevSecOps? Whether you're a beginner or an experienced professional, this hands-on bootcamp will take you from zero to expert with real-world training on the latest DevSecOps tools and practices!

✅ Master Top DevSecOps Tools: Git, GitHub, Bitbucket, Jenkins, SonarQube, Slack, Trivy, Nexus, Terraform, Ansible, Docker, Kubernetes, Helm, Prometheus and more!
✅ Cloud Platforms – AWS & Azure
✅ Live Interactive Sessions – Get personalized guidance from industry experts!
✅ Weekend & Weekday Batches – Flexible schedules to fit your lifestyle!
✅ Weekday Evenings Batch Available! – Perfect for working professionals!
✅ Real-World Projects – Build experience that recruiters love!
✅ 100% Hands-On Training – No boring theory, just practical DevSecOps!
✅ Career Support & Guidance – Resume building, interview prep, and networking!

📅 Weekend Batch Starts: February 22, 2025
🕒 Batch Timings:

  • Weekend Batch: Saturdays (11:35 AM - 01:30 PM CST) & Sundays (12:45 PM - 2:30 PM CST)

📅 Weekday Evening Batch Starts: March 3rd, 2025
🕒 Batch Timings:

  • Weekday Evenings Batch: Mondays & Wednesdays (6:00 PM - 8:00 PM CST)

📍 Online – Learn from Anywhere!

🎯 Spots are Limited! Secure your seat now and take the first step toward becoming a DevSecOps pro!

📞 Contact Coach AK Now:
📱 +1 (469) 733-5248 (WhatsApp Available)
📧 devops.coaching@gmail.com

💥 Act Fast! Early Bird Discounts Available! 🚀

👉 Register Today by making payments, contact Coach AK!

Sunday, February 2, 2025

DevSecOps Bootcamp Feb 2025 Schedule | DevOps & AWS Azure Cloud Coaching by Coach AK | DevSecOps and Cloud Computing Online Classes

🚀 Join the Ultimate DevSecOps Bootcamp – February 2025! 🔥

Are you ready to supercharge your career in DevSecOps? Whether you're a beginner or an experienced professional, this hands-on bootcamp will take you from zero to expert with real-world training on the latest DevSecOps tools and practices!

Master Top DevSecOps Tools: Git, GitHub, Bitbucket, Jenkins, SonarQube, Slack, Trivy, Nexus, Terraform, Ansible, Docker, Kubernetes, Helm, Prometheus and more!
Cloud Platforms – AWS & Azure
Live Interactive Sessions – Get personalized guidance from industry experts!
Weekend & Weekday Batches – Flexible schedules to fit your lifestyle!
Weekday Evenings Batch Available! – Perfect for working professionals!
Real-World Projects – Build experience that recruiters love!
100% Hands-On Training – No boring theory, just practical DevSecOps!
Career Support & Guidance – Resume building, interview prep, and networking!

📅 Weekend Batch Starts: February 22, 2025
🕒 Batch Timings:

  • Weekend Batch: Saturdays (11:35 AM - 01:30 PM CST) & Sundays (12:45 PM - 2:30 PM CST)

📅 Weekday Evening Batch Starts: February 24, 2025
🕒 Batch Timings:

  • Weekday Evenings Batch: Mondays & Wednesdays (6:00 PM - 8:00 PM CST)

📍 Online – Learn from Anywhere!

🎯 Spots are Limited! Secure your seat now and take the first step toward becoming a DevSecOps pro!

📞 Contact Coach AK Now:
📱 +1 (469) 733-5248 (WhatsApp Available)
📧 devops.coaching@gmail.com

💥 Act Fast! Early Bird Discounts Available! 🚀

👉 Register Today! Click Here

Thursday, January 30, 2025

How to Setup AquaSec Trivy for Vulnerability scanning | How to scan Springboot Docker image using Trivy Scanner | Create Jenkins Pipeline for scanning Docker image for Springboot Microservices App

Pre-requisites:

Jenkins Pipeline for scanning docker image using Trivy scanner:

pipeline {
    agent any
    environment {
        registry = "acct_id.dkr.ecr.us-east-1.amazonaws.com/coachak/springboot-app"
    }

    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/akannan1087/docker-spring-boot'
            }
        }
        
        stage ("Build JAR") {
            steps {
                sh "mvn clean install"
            }
        }
        
        stage ("Build image") {
            steps {
                script {
                    dockerImage = docker.build registry
                    dockerImage.tag("$BUILD_NUMBER")
                }
            }
        }
        
    // Scanning Docker images using Trivy scanner
     stage('Trivy Security scan') {
     steps{
         script {
            sh "trivy image --severity HIGH,CRITICAL,MEDIUM acct_id.dkr.ecr.us-east-1.amazonaws.com/coachak/springboot-app:$BUILD_NUMBER"
         }
      }
     }
    // Uploading Docker images into AWS ECR
    stage('Pushing to ECR') {
     steps{  
         script {
                sh 'aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin acct_id.dkr.ecr.us-east-1.amazonaws.com'
                sh 'docker push acct_id.dkr.ecr.us-east-1.amazonaws.com/coachak/springboot-app:$BUILD_NUMBER'
         }
        }
     }
    }
}

Pipeline Output:




Scan report can be viewed in Jenkins


Watch steps in YouTube channel:

Friday, January 24, 2025

How to create Pull Request (PR) templates in Azure Repos? | Creating pull request template in Azure Repos


Azure Repos allows you to create Pull Request (PR) templates to standardize and streamline the PR process for your team. This ensures that all necessary information is included, making the review process more efficient. 

Step-by-Step Guide

  1. Navigate to Your Repository:

    • Go to the Azure Repos repository where you want to create a PR template.
  2. Create a .azuredevops Directory:

    • create a new directory named .azuredevops in the root of your repository. This is where Azure Repos looks for configuration files, including PR templates.
  3. Create a PULL_REQUEST_TEMPLATE File:

    • Inside the .azuredevops directory, create a file named PULL_REQUEST_TEMPLATE.md. This file will contain the template for your pull requests.

      4. Add Template Content:

  • Open the PULL_REQUEST_TEMPLATE.md file and add the content you want to include in your PR template. You can use Markdown to format the template. Here’s an example of a basic PR template:

## What type of PR is this? (check all applicable)
- [ ] 🍕 New Feature
- [ ] 🎨 Enhancment Feature
- [ ] 🐛 Bug
## Describe about your code changes
<!-- 
Please do not leave this blank 
This PR [adds/removes/fixes/replaces] the [feature/bug/etc]. 
-->
## Related Feature & Documents
<!-- 
Please use this format link issue numbers: Fixes #123
-->
## Screenshots/Recordings Link In Sharepoint
<!-- Visual changes require screenshots -->

## Created Unit tests, etc?
- [ ] 👍 yes
- [ ] 🙅 no, because they aren't needed
- [ ] 🙋 no, because I need help
## Added to documentation?
- [ ] 📜 README.md
- [ ] 📕 wiki
- [ ] 🙅 no documentation needed
## [optional] Are there any post-deployment tasks we need to perform?

    5. Commit and Push:

  • Commit the PULL_REQUEST_TEMPLATE.md file to your repository and push it to Azure Repo.

git add .azuredevops/PULL_REQUEST_TEMPLATE.md 
git commit -m "Add pull request template" 
git push origin main


Tuesday, January 21, 2025

How to Setup AquaSec Trivy Vulnerability Scanner | How to install AquaSec Trivy Scanner on Linux OS | Security Scanning Tool | DevSecOps Tutorials

What is Trivy?

  • open-source security scanner tool developed by Aqua Security. 
  • Used for vulnerability scanning in such as 
    • container images 
    • file systems/folders 
    • Git repositories
    • Kubernetes clusters
    • misconfiguration in files such as Terraform, K8S manifest files
  • Trivy helps identify security issues and misconfigurations early in the software development lifecycle.

How to Install Trivy scanner on Linux OS?

Trivy scanner can be installed so many ways. Check here for more information. But we will using APT package manager to install on Ubuntu.

sudo apt-get install wget gnupg -y
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null 
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee -a /etc/apt/sources.list.d/trivy.list 
sudo apt-get update 
sudo apt-get install trivy -y

Check Trivy got installed
trivy --version


This confirm that Trivy got installed successfully.

Perform Docker image scan locally
trivy image nginx:latest

where nginx is name of the docker image

You can also pass arguments to filter based on severity
trivy image --severity HIGH,CRITICAL,MEDIUM nginx:latest

Perform scanning a Git Repo

where repo_url is the public git repo that you want to scan

Perform scanning a file system locally
trivy fs your_folder

where your_folder is directory on your machine where you have installed Trivy.

Additional links:
If you want to integrate Trivy with Jenkins CICD pipeline for automating docker image scanning, please click here.
If you want to integrate Trivy with Azure DevOps CICD pipeline for automating docker image scanning, please click here.

Watch the video in my YouTube channel:

How to Implement CICD Pipeline using GitHub Actions | GitHub Actions Tutorials | GitHub Actions CICD Pipeline | How to Deploy Java WAR file using GitHub Actions to Tomcat Server

Please find steps for Deploying Java WAR file to Tomcat using GitHub Actions: Pre-requisites: Make sure Tomcat is up and running Make sure J...