Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

DevOps: CICD with Jenkins, Maven, Gradle, SonarQube, Docker

via Udemy

Overview

Become DevOps Master learning Jenkins pipeline & integrations with powerful tools like Docker, Ansible, AWS, GIT & more!

What you'll learn:
  • DevOps Lifecycle : CICD
  • Maven Lifecycle: Default, Clean & Site
  • Maven Tool
  • SonarQube tool in Continuous Integration
  • PostgreSQL Database for SonarQube
  • Integrate Nexus with Maven
  • Integrate Nexus with Gradle
  • CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR
  • CICD Process Using Jenkins
  • Continuous Deployment using Ansible Playbook
  • Jenkins Master and Slave Server
  • How Jenkins Master and Slave Architecture work?

The entire DevOps course is based on AWS Environment.

Jenkins is an open-source automation tool written in Java with plugins built for Continuous Integration purposes.

It can be used to automate almost anything.

Go faster and learn how to build strong automated processes like Pipelines, CI/CD Workflow, and more!

In this course module, you will learn in addition to Jenkins, crossing technologies that go hand in hand with this service, such as Docker, AWS, Ansible, Git, Maven, Gradle, Pipelines, and many more!

Introduction

  • What are DevOps & benefits?

  • DevOps LifeCycle :

    Continuous Development

    Continuous Integration

    Continuous Testing

    Continuous Feedback

    Continuous Deployment

    Continuous Monitoring

Linux for DevOps

  • Create an AWS Account

  • Create an EC2 Instance - Amazon Linux

  • Create a key pair - Public & Private Key

  • MobaXterm - Connect EC2 Instance

  • Putty - Connect EC2 Instance

  • Gitbash - Connect to EC2 Instance

  • Create an EC2 Instance - Ubuntu

  • Filter Instances

  • Access Instance using User Name & Password (Without using Private key)

  • More about private & public key

  • Passwordless authentication from Linux to Ubuntu Server

  • Lab - Access the Amazon Linux Instance other than the default user

  • Lab - Access the Ubuntu Linux Instance other than the default user

  • Lab - Passwordless Authentication between Amazon Linux & Ubuntu and Vice versa

Maven Tool

  • Overview of Maven Tool

  • Maven Lifecycle: Default, Clean & Site

  • Repositories used in Maven

  • Lab - Build the Springboot package in AWS Environment

  • Lab: Location of Artifacts & built package dependencies

  • Lab: Exploring pom.xml file

  • Lab: Execute & access the package application

  • Lab: Exploring dependencies of a built package

  • Lab: Build Lifecycle

  • Lab: Build a Web Application project using maven

  • Lab: Build a Web Application project using maven

SonarQube tool in Continuous Integration

  • About SonarQube tool & its features

  • Installation of SonarQube

  • Check SonarQube logs & configuration

  • SonarQube Service & port

  • Access SonarQube via URL

  • Configure Maven (CI Server)

  • Checkout & build the project using Maven

  • Integrate Maven with SonarQube to check the code quality

  • Add Sonar-maven-plugin

  • Lab - Bad code detected by SonarQube

  • Lab - Rectified the code & re-check by SonarQube

PostgreSQL Database for SonarQube

  • About PostgreSQL Database

  • Setup PostgreSQL Database with SonarQube

  • Create Database, User, and Grant Privileges

  • Sonarqube Configuration file sonar properties

  • Troubleshooting PostgreSQL Database for SonarQube

Integrate Nexus with Maven

  • Install & configure Nexus Server

  • Configure Sonatype Nexus Repository Manager

  • Configure CI Server to check out the project & Build the package

  • Configure springboot maven nexus deploy

  • Nexus Requirements in the pom.xml

  • Define Nexus login credentials

  • Deploy the Artifacts to Nexus Repository

Integrate Gradle with Nexus

  • Installation of Nexus server

  • Configuration of Gradle Server as CI

  • Build the springboot tomcat project using gradle tool

  • Add plugin in build.gradle

  • Add Nexus repositories details in build.gradle

  • Use if-else condition in build.gradle

  • Add credentials in gradle properties

  • Publish the project artifacts into Nexus Server

  • Download the Artifacts using Continuous Deployment

Integrate Jenkins with Git & Maven project

  • About Jenkins

  • Overview of Jenkins integration with GitHub & how to build a java based project

  • Installation of Jenkins, Java, Maven & Git on EC2 Instance

  • Configure Jenkins on EC2 Instance

  • Configure GitHub Credentials & Maven Location on Jenkins

  • Create & Build the Java-based project using Maven Tool

  • Add Maven Plugins in Jenkins

CICD Process - Manual Approach Using Maven, SonarQube, Docker, AWS ECR

  • Overview of CICD Process

  • Configure Build Server and Install various tools like Java, Git, Maven, Docker

  • Checkout & Build the Project using Maven Tool

  • Install SonarQube on Ubuntu Instance

  • Add Sonar-maven-plugin

  • Start SonarQube Service

  • Check the Code Quality

  • Overview of Dockerfile to Create a Docker Image

  • Create a Repository in AWS ECR

  • Create a Role to Provide Access One AWS Service (CI Server) to another (AWS ECR)

  • Build the Docker Image using Dockerfile

  • Push the Docker Image to AWS ECR Repository

  • Create a CD Server - Continuous Deployment

  • Pull & Execute the Docker Image from ECR to CD Server

  • Recap the Entire CICD Process

CICD Process Using Jenkins

  • Overview of CICD Process using Jenkins

  • Install a Jenkins Server (CI Server)

  • Add maven in Jenkins Server from Global Tool Configuration

  • Create a Jenkins pipeline for Checkout & build the project

  • Install SonarQube Server using Docker container

  • Generate the token from SonarQube Server

  • Add Sonar Login Credentials on Jenkins Server

  • Install SonarQube Scanner plugins on Jenkins

  • Add SonarQube on Jenkins Server

  • Pipeline for SonarQube Scanner for Jenkins

  • Pipeline for success or aborted due to quality gate failure

  • Configure a webhook in your SonarQube Server

  • Add stage in pipeline to create a Docker Image using DockerFile

  • Create an IAM User to have access to AWS ECR and add it to Jenkins Server

  • Add stage in pipeline to Push the Docker Image to AWS ECR

  • Configure SES to send an email notification

  • Integrate SES with Jenkins using pipeline

  • Receive an Email Notification after the success or failure of Jenkins Pipeline

Continuous Deployment using Ansible Playbook

  • Configure a CD Server using Ubuntu Server

  • Ansible Setup on Jenkins Server

  • Install packages on CD Server

  • Create a Playbook to establish a connection from CD Server to AWS ECR

  • Playbook to pull the image from ECR to CD Server

  • Playbook to run the Container using the Docker Image

  • Access the Springboot Application running on CD Server

Jenkins Master and Slave Server

  • Overview of Jenkins master & slave server

  • How does Jenkins Master and Slave Architecture work?

  • Lab - Install Jenkins Master Server in AWS Environment

  • Lab - Configure Jenkins Master Server

  • Lab - Manager Nodes and Clouds

  • Lab - Setting up Slaves with Jenkins Master

  • Lab - Troubleshooting while adding a slave server

  • Lab - Create a job for the Slave Using Freestyle project

  • Lab - Create a job for Slave Using a pipeline project (Springboot Appl)

  • Lab - Create a job for Slave Using a pipeline project (Springboot Appl)

  • Configurations in slave machine

  • Lab - Establish connectivity between Master & Slave Using SSH keys

  • Lab - Launch agent on Slave Machine

  • Lab - Create a job for building a Springboot project on Slave Machine

  • Last Lecture

Taught by

Shikhar Verma • 70k+ Students Worldwide

Reviews

4.3 rating at Udemy based on 470 ratings

Start your review of DevOps: CICD with Jenkins, Maven, Gradle, SonarQube, Docker

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.