
Master Jenkins from zero to professional DevOps engineer, exploring CI/CD pipelines, plugins, and automation with setup, dashboards, GitHub integration, build triggers, environment variables, and Tomcat deployment.
Install Oracle VM VirtualBox Manager and Ubuntu Desktop on Windows, then create a Jenkins server virtual machine with 40 GB disk and 2 GB RAM using default storage.
Configure a virtual machine for the lab by allocating more than 2 GB memory, 2 processors, a bridged network, and attaching an Ubuntu image file.
Set up the ubuntu lab by updating the system, installing build-essential and linux-headers, enabling guest additions for full screen and bidirectional drag-and-drop, and copying the VBox disk image with winscp.
Install Jenkins on Ubuntu, configure required Java and system settings, and access the Jenkins server at 192.168.1.4:8080 with the initial password to complete plugin setup.
Continue the Jenkins installation by selecting either customized plugins or the suggested plugins, then create the first admin user and access the Jenkins server via URL to start using Jenkins.
Get an overview of the Jenkins dashboard, access and log in, navigate items, build history and queue, manage users, and configure plugins with Maven, Gradle, and Sonar Cube.
Explore how Jenkins automates building, testing, and deployment through CI/CD with plugin support, and learn to integrate Jenkins with GitHub and Maven.
Create your first Jenkins job by selecting new item, choosing a freestyle project, and adding an execute shell step to echo a welcome message, then view console output.
Explore how Jenkins uses a default jenkins user and the workspace location /var/lib/jenkins/workspace to run jobs, track build history, and execute shell commands like whoami, pwd, and touch.
Explore how to read a Jenkins job's status and weather, track last success and failure, and gauge build stability as you fix scripts and rebuild.
Use the Jenkins dashboard search bar to locate a job, inspect a specific build and its console, and find the last failed build.
Configure system in Jenkins to set global settings and paths, manage plugins, tools (Java, Git, Maven, Gradle, and Ant), credentials, and executors, preparing for node and cloud setups.
Install the simple theme plugin in Jenkins without a restart, then configure the system to apply a theme by supplying the css url and color choices, and save changes.
Manage plugins in Jenkins by uninstalling the simple theme plugin through manage plugins, installing plugins, and confirming uninstallation to remove it from the system.
Learn how to create a user in jenkins, log in as different users, and verify access to jobs, then recognize the need for role-based access to control permissions.
Explore role based authorization in Jenkins by installing the role-based authorization strategy plugin, enabling selective access, and restarting Jenkins.
Configure authorization in Jenkins by enabling the role-based strategy under global security, then manage and assign roles to control access.
Learn to delegate permissions in Jenkins by creating a 'Develop' role with read access, assigning it to Amit via manage roles, and observing limited dashboard access.
Apply role based authorization in Jenkins by granting Amit read and build permissions via Manage Roles, allowing him to log in, view and build jobs without reconfiguring them.
Create a freestyle Jenkins job, configure an Execute Shell build to run git clone from a GitHub repo, and verify the cloned project appears in the Jenkins workspace under /var/lib/jenkins.
Learn how to fix a git clone failure in Jenkins by enabling delete workspace before build start, which cleans the project directory and allows a successful rebuild.
Learn to integrate Git with Jenkins by cloning a GitHub repository into a freestyle job, switching the branch from master to main, and validating the workspace contents.
Learn how to trigger Jenkins builds remotely from scripts using an authentication token, by configuring build triggers, copying the remote URL, and testing with successive builds.
Trigger Jenkins builds remotely using a build by token url after installing the build authorization token root plugin. Learn to run the builds from a shell script for remote execution.
Learn how to trigger a Jenkins job from the terminal using curl, including proper URL construction, token usage, and escaping ampersands to avoid authentication errors.
Learn how to trigger a Jenkins job automatically after another project finishes by configuring build triggers and upstream dependencies.
Explore how Jenkins build triggers manage downstream jobs, including triggering even if the upstream build fails, is unstable, or is aborted, through practical demos.
Learn to schedule Jenkins jobs with build periodically and cron expressions. Create a freestyle project, enable build triggers, and set cron timings to run every 2, 5, or 15 minutes.
Explore how Poll SCM in Jenkins uses a cron schedule to clone a GitHub repo onto the Jenkins server every two minutes, and how the GitHub hook trigger signals changes.
Define and use environment variables in Jenkins freestyle jobs by configuring the build environment and execute shell steps, printing values with echo and referencing predefined variables like BUILD_ID and JOB_NAME.
Learn to create and manage global environment variables in Jenkins by defining variables via global properties and using them across multiple freestyle jobs with shell scripts.
Learn to create parameterized Jenkins jobs, define string, boolean, and choice parameters, and run builds with inputs to produce customized console outputs.
Learn to configure parameterized jobs in Jenkins, add a multi line string parameter and a password parameter, reference them in a script, and run builds with parameters.
Define a file parameter in a Jenkins job, naming the file and optional description, then read the selected file with cat in a shell script.
Set a timeout in Jenkins to automatically abort or fail a stuck freestyle project, using the build environment’s terminate-a-build-if-it-is-stuck option with a configurable duration.
Learn to add timestamps to the Jenkins console output in a freestyle job by enabling the built-in timestamps option in the build environment.
Disable and enable a Jenkins job from the dashboard, then configure discard old builds and block builds upstream or downstream to control build access.
Learn how to run builds concurrently in Jenkins by enabling execute concurrent builds, configuring executors, and managing parallel jobs in a freestyle project.
Set a retry count in Jenkins to automatically re-run a failed job, demonstrating a 3-retry cycle with 10-second intervals during git or network failures.
Learn how to throttle builds in Jenkins by configuring the throttle builds option, installing the required plugin, and enforcing a maximum build rate with spacing between runs.
Configure a custom workspace in Jenkins, create a freestyle job, run shell commands, and verify the workspace path, including a shared NFS setup.
Configure Jenkins build triggers to block builds when the upstream or downstream project is building, using a parent and child job and the 'build after other projects are built' setting.
Learn to change a Jenkins job's display name through configuration and a build, and know the real job name remains unchanged until you rename the project.
Create a Jenkins pipeline using the Build Pipeline plugin to visualize two linked jobs—project build from GitHub, then project deployment to the test environment—and monitor execution progress end-to-end.
Explain the DevOps lifecycle from source to production, detailing ci/cd, continuous testing, feedback, and deployment with tools like Jenkins, GitHub, Maven, SonarQube, Nexus, Docker, and monitoring stacks.
Compare continuous delivery and continuous deployment using a practical Jenkins example with test, staging, and production jobs. See how automatic versus manual transitions shape the pipeline.
Explore parallel jobs in a Jenkins pipeline by configuring a build with test, staging, and prod, and triggering staging and quality test jobs in parallel after the test completes.
Clone the GitHub project to Ubuntu, run mvn test, build the .war with mvn package, install Tomcat, deploy the .war via Jenkins, and access the app at /app.
Deploy build artifacts (.war) to a Tomcat server using the GUI by installing the tomcat9-admin package, setting credentials, uploading the war file, and verifying the deployed app.
deploy a .war package to a tomcat server with Jenkins, by cloning the git repo, running mvn unit tests, building the artifact, and deploying it to Tomcat.
Clone code from a git repository into a Jenkins server with a Git Clone job, then create a Maven-based QA test job using Maven integration and automatic Maven installation.
Integrate Maven with Jenkins by configuring plugins, cloning a Git repository, running Maven test, and wiring post-build actions to produce a build package for the next job.
Create a Jenkins Maven project named Build Pack to build the Java package using Maven. Archive the resulting war artifact and prepare it for deployment on a Tomcat server.
Learn to build a web application with Maven, copy the .war package to a Tomcat server, configure tomcat users for the manager GUI, and restart the service.
Connects three Jenkins jobs with the build pipeline plugin by configuring post-build actions to trigger subsequent jobs, starting with Git clone and visualizing the pipeline until all jobs green.
Deploy a build artifact .war to a Tomcat server by copying the artifact from a prior Jenkins job and deploying the war to Tomcat 9 with credentials.
Jenkins is a powerful and flexible automation tool; It is used to automate almost anything.
Go faster and learn how to build strong automated processes like Pipelines, CI/CD workflow, and more!
In the DevOps world, Jenkins is one of the best cards on the table.
Start automating everything, and become a DevOps engineer!
This is the right course for you!
Course Content:
Introduction
About Jenkins tool
Installation of Oracle VM VirtualBox Manager
Installation of Ubuntu Operating System.
Installation of Jenkins
Overview of Jenkins Dashboard
About Jenkins
Create First Job in Jenkins
Job - Default User & Workspace Location
Status, Weather & Build Stability of a Job
Search Panel in Jenkins Dashboard
Manage Jenkins - Configure System
Manage Plugins - Install a simple theme plugin
User Accounts In Jenkins
Create User Accounts in Jenkins
Role-Based Authorization Strategy in Jenkins
Configure Authorization from Global Security
Delegate Permission Using Manage Roles -1
Delegate Permission Using Manage Roles -2
Integrate GitHub Repository to Your Jenkins Project
Clone the git project using terminal
Clone the git project using Jenkins Shell
Delete workspace before build starts
Build Triggers
Build Triggers - Trigger builds remotely (e.g., from scripts)
Trigger builds remotely using an Authentication token
Build Triggers from terminal
Build after other projects are built
Trigger even if the build fails/unstable/aborted
Build Periodically
Poll SCM - Source Code Management
Variables in Jenkins
Environment Variables
Global Environment Variables
Build Environment in Jenkins
Parameterized Jobs in Jenkins
String Parameter
Boolean Parameter
Choice Parameter
Multi-line String Parameter
Password Parameter
File Parameter
Set Timeout in Jenkins
Add timestamps to the console output
Enable/Disable Jenkins Job
Execute Concurrent, Parallel Build Jobs in Jenkins
Retry count in Jenkins
Throttle builds in Jenkins
Custom Workspace
Change the Display Name of a Job in Jenkins
Block Build when Upstream/Downstream project is building
Build Pipeline
Create Jenkins Pipeline Using Build Pipeline
Overview of the CICD Process
Continuous Delivery vs Continuous deployment with a practical approach
Parallel Jobs in Jenkins Pipeline
Deploy Build Artifacts to Tomcat Server
Deploy Build Artifacts (.war) to Tomcat Server
Configure the Tomcat Server
Deploy Build Artifacts (.war) to Tomcat Server - GUI
Deploy the package (war file) to Tomcat Server using Jenkins
Overview of project
Clone the code from Git Repository
Integrate Maven with Jenkins
Build the Package using Maven Tool
Install & Configure Tomcat Server
Configure a Pipeline using Build Pipeline
Deploy the Package file (.war) to Tomcat Server
Jenkins Pipeline - Declarative Pipeline
Create the first Pipeline as code - Create the first Jenkinsfile
Multiple stages in pipeline script
Run commands using pipeline script
Variable/Environment in pipeline script
Define stage-level variables using pipeline script
Build parameters in the pipeline script
Boolean & choice parameters in pipeline script
Input from the user in the pipeline script
Post actions in the pipeline script
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
Last lecture