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

Watch steps in YouTube channel:

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


Friday, January 24, 2025

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


Watch steps in YouTube channel:

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.

Pre-requisites:

  • Any Linux instance is up and running, in our case we will use a Ubuntu machine

How to Install Trivy scanner on Linux OS?

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

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 video in my YouTube channel:

Saturday, January 11, 2025

Top 10 DevOps Popular Tools | Popular DevOps Tools You Must Know In 2026 | Learn DevOps Tools in 2026

Here are the top 10 DevOps Tools to focus on to put your DevOps learning on a faster track and kick start your career quickly as a successful Cloud engineer or DevOps engineer in about 10 to 12 weeks from now.

1.    Terraform - # 1 Infrastructure automation tool
2.    Git - BitBucket/GitHub/Azure Repos - # 1 - SCM tool
3.    Jenkins - # 1 CICD tool
4.    Docker #1 Container platform 
5.    Kubernetes - #1 container orchestration tool 
6.    GitHub Actions - #3 CICD tool
7.    Ansible#1 Configuration Management tool
8.    Azure DevOps – Microsoft platform for migrating applications to Azure Cloud
9.    SonarQube – #1 Code quality tool 
10.  Nexus - #2 Binary repo manager 

Finally having some scripting knowledge is also good – Python, YAML playbooks, JSON script
Cloud experience - AWS and Azure
 

Welcome To AI-Powered DevSecOps Coaching Program by Coach AK | Coaching pre-requisites before you join the program | Agile and DevOps Basics useful links

Welcome to AI-Powered DevSecOps Coaching Program by Coach AK! Thanks for showing interest in joining the program. Please go through the useful links before joining the coaching sessions live with Coach AK in zoom. 


Please click the below link to learn more about How the coaching program works.

https://www.coachdevops.com/2019/04/devops-coaching-model-information.html

Pre-requisites:
https://www.coachdevops.com/2019/01/pre-requisites-before-starting-devops.html

Once you create AWS account, GitHub and Bitbucket account using the above links, do the following to secure your AWS account:

https://www.cidevops.com/2018/09/how-to-enable-multi-factor.html

Learn more about AWS cloud in less than10 mins..
https://www.youtube.com/watch?v=r4YIdn2eTm4

Basic concepts to go through before you attend classes:

If you are new to IT, please learn more about Agile, DevOps from the below links:

https://www.tutorialspoint.com/agile/index.htm
https://www.edureka.co/blog/what-is-devops/
https://www.edureka.co/blog/devops-tutorial - nice read on DevOps

What is DevOps
https://www.youtube.com/watch?v=_I94-tJlovg&t=2s

Difference between Waterfall and Scrum 
 
Top 10 DevOps tools to learn in 2026

Top DevOps Skills for 2026 | Skills required to become a DevOps engineer

Friday, January 10, 2025

Perform Security Scan for SpringBoot Microservice Docker image using Trivy Scanner and Azure YAML Pipeline | How to Scan Spring Boot Docker Image in Azure DevOps using Trivy Scanner

Perform vulnerability scan using Trivy scanner on Azure DevOps Pipeline


What is Trivy?
Trivy is an open-source security scanner tool developed by Aqua Security. It can scan:
    • container images 
    • file systems/folders 
    • Git repositories
    • Kubernetes clusters
    • misconfiguration in files such as Terraform, K8S manifest files

Pre-requisites:

ADO Yaml Pipeline for scanning docker image using Trivy scanner in Azure Hosted Build Agent:
# Perform Trivy scan for Docker image and upload docker image into ACR

trigger:
- master

resources:
- repo: self

variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: '723477ce-4e05-4e6e-a3c1-13bdf919a5cd'
imageRepository: 'dockerspringbootapp'
containerRegistry: 'myacrrepo131.azurecr.io'
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
tag: '$(Build.BuildId)'

# Agent VM image name
vmImageName: 'ubuntu-latest'

stages:
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
javaHomeOption: 'JDKVersion'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: false
effectivePomSkip: false
sonarQubeRunAnalysis: false
- task: Docker@2
displayName: Build a Docker image
inputs:
command: build
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
- task: Bash@3
displayName: "Install Trivy"
inputs:
targetType: inline
script: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
# Run Trivy Scan
- task: Bash@3
displayName: "Run Trivy Scan"
inputs:
targetType: inline
script: |
./bin/trivy image --severity HIGH,CRITICAL,MEDIUM --ignore-unfixed $(containerRegistry)/$(imageRepository):$(tag)
- task: Docker@2
displayName: push the image to container registry
inputs:
command: Push
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)

Scan report can be viewed in Build output of Azure Pipelines



Watch Steps in YouTube channel:

🚀 Live AI-Enabled DevSecOps & Cloud Engineering Bootcamp – Sep 2026

Live AI-Enabled DevSecOps & Cloud Engineering Bootcamp from Coach AK - Sep 2026 Schedule