{"id":323,"date":"2023-04-01T01:10:00","date_gmt":"2023-04-01T01:10:00","guid":{"rendered":"https:\/\/blog.ngocha.biz\/?p=323"},"modified":"2023-04-01T01:10:00","modified_gmt":"2023-04-01T01:10:00","slug":"jenkins-2-tutorials-getting-started-guide","status":"publish","type":"post","link":"https:\/\/blog.ngocha.biz\/?p=323","title":{"rendered":"Jenkins Tutorial For Beginners: 21+ Practical Guides 2025"},"content":{"rendered":"<p>In this Jenkins tutorial series, you will learn all the essential topics for a DevOps engineer to understand Jenkins better with step-by-step practical tutorials.<\/p><h2 id=\"what-is-jenkins\">What is Jenkins?<\/h2><p><a href=\"https:\/\/www.jenkins.io\/?ref=devopscube.com\" rel=\"noreferrer noopener\">Jenkins<\/a> is a continuous open-source integration written in Java. It was forked from Hudson Project after a dispute with Oracle. Since the fork, Jenkins has grown to be much more than a continuous integration solution.<\/p><p>Jenkins is not just a <a href=\"https:\/\/devopscube.com\/continuous-integration-delivery-deployment\/\" rel=\"noreferrer noopener\">Continuous Integration<\/a> tool anymore. Instead, it is a Continuous Integration and Continuous delivery tool. You can orchestrate application deployments using Jenkins with a wide range of freely available community plugins and native Jenkins workflows.<\/p><p>Jenkins also supports GitOps workflows with <a href=\"https:\/\/jenkins-x.io\/?ref=devopscube.com\" rel=\"noreferrer noopener\">Jenkins X<\/a>. It helps you accelerate the continuous delivery pipeline on Kubernetes.<\/p><h2 id=\"jenkins-use-cases\">Jenkins Use Cases<\/h2><p>The following are the main Jenkins use cases from my experience extensively working on Jenkins.<\/p><ol><li><strong>Continuous Integration:<\/strong> With Jenkins pipelines, we can achieve CI for both applications and infrastructure as code.<\/li><li><strong>Continuous Delivery:<\/strong> You can set up well-defined and automated application delivery workflows with Jenkins pipelines.<\/li><li><strong>Automation &amp; Ad-Hoc Tasks<\/strong>: With Jenkins jobs and pipelines, you can automate infrastructure components and perform ad-hoc infrastructure tasks (Backups, remote executions, etc.).<\/li><\/ol><h2 id=\"jenkins-tutorials-for-beginners\">Jenkins Tutorials For Beginners<\/h2><p>In this collection of Jenkins tutorial posts, I will cover various Jenkins guides, which will help beginners get started with many of the Jenkins core functionalities.<\/p><p>I have categorized the list of Jenkins beginner tutorials into multiple sections. From Jenkins installation to advanced concepts like shared libraries are covered in this tutorial list.<\/p><p>It is a growing list of Jenkins step-by-step guides. I will add all the latest tutorials to this list.<\/p><h3 id=\"how-does-jenkins-work\">How Does Jenkins Work?<\/h3><p>In this section, you will learn the very basics of Jenkins that every beginner should know. Overall you will learn <strong>how Jenkins works<\/strong> as a CI\/CD tool.<\/p><ol><li><a href=\"https:\/\/devopscube.com\/jenkins-architecture-explained\/\"><strong>Jenkins Architecture Explained for Beginners<\/strong><\/a><strong>:<\/strong> In this tutorial, you will learn how Jenkins works, its core components, how Jenkins data is organized, and the protocols involved in Jenkins controller-agent communication.<\/li><li><a href=\"https:\/\/devopscube.com\/setup-highly-available-jenkins\/\" rel=\"noreferrer noopener\"><strong>Jenkins High Availability:<\/strong><\/a> This guide will cover key concepts in setting up a <strong>Highly available Jenkins<\/strong> using the open-source version.<\/li><\/ol><h3 id=\"jenkins-administration-tutorials\">Jenkins Administration Tutorials<\/h3>\n<!--kg-card-begin: html-->\n<ol start=\"3\" class=\"wp-block-list is-style-default\">\n<li><strong><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/install-configure-jenkins-2-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">Installing and configuring Jenkins<\/a>:<\/strong> Learn to install and configure Jenkins on Ubuntu VM &amp; Docker container.<\/li>\n\n\n<li><strong>Install and Configure Jenkins on Centos\/Redhat: This tutorial helps you set up<\/strong> Jenkins on RedHat-based Linux distributions.<\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/setup-slaves-on-jenkins-2\/\" data-type=\"URL\" data-id=\"https:\/\/devopscube.com\/setup-slaves-on-jenkins-2\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Setting up Jenkins Agents:<\/strong><\/a> This tutorial will teach you how to configure Jenkins master and agents using both <a href=\"https:\/\/devopscube.com\/connect-to-cloudways-server\/\" data-type=\"post\" data-id=\"14421\">SSH<\/a> and JNLP methods.<\/li>\n\n\n<li><strong><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/configure-ssl-jenkins\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configure SSL on Jenkins Server<\/a>: <\/strong>This tutorial will walk you through the process of setting up SSL for the Jenkins controller.<\/li>\n\n\n<li><strong><a href=\"https:\/\/devopscube.com\/access-run-jenkins-port-80\/\" target=\"_blank\" rel=\"noreferrer noopener\">Running Jenkins on port 80<\/a>: <\/strong>By default Jenkins runs on port 8080. This guide has step by step guides to setup Jenkins to run on port 80.<\/li>\n\n\n<li><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/jenkins-backup-data-configurations\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>Backing up Jenkins Data and Configurations<\/strong><\/a><\/li>\n\n\n<li><strong><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/setup-custom-materialized-ui-theme-jenkins\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setting up Custom UI for Jenkins<\/a>:<\/strong> A tutorial to change the default UI of Jenkins with custom CSS.<\/li>\n\n\n<li><strong><a href=\"https:\/\/devopscube.com\/setup-jenkins-on-kubernetes-cluster\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setting up Jenkins Master on Kubernetes Cluster<\/a>: <\/strong>Tutorial to set up Jenkins infrastructure on containers.<\/li>\n\n\n<li><strong><a href=\"https:\/\/devopscube.com\/jenkins-autoscaling-setup\/\" data-type=\"post\" data-id=\"18636\">Jenkins Setup Using AWS Autoscaling Group<\/a>:<\/strong> This tutorial teaches you to automate the whole Jenkins setup on AWS using an Autoscaling group, EFS, and a load balancer.<\/li>\n<\/ol>\n<!--kg-card-end: html-->\n<h3 id=\"scaling-jenkins-agents\">Scaling Jenkins Agents<\/h3>\n<!--kg-card-begin: html-->\n<ol start=\"12\" class=\"wp-block-list is-style-default\">\n<li><a rel=\"noopener noreferrer\" href=\"https:\/\/devopscube.com\/docker-containers-as-build-slaves-jenkins\/\" target=\"_blank\">Configuring Docker Containers as Jenkins Build Agents<\/a><\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/jenkins-build-agents-kubernetes\/\" target=\"_blank\" data-type=\"URL\" data-id=\"https:\/\/devopscube.com\/jenkins-build-agents-kubernetes\/\" rel=\"noreferrer noopener\">Scaling Jenkins Agents with Kubernetes <\/a><\/li>\n\n\n<li><a rel=\"noopener noreferrer\" href=\"https:\/\/devopscube.com\/setup-ecs-cluster-as-build-slave-jenkins\/\" target=\"_blank\">Configuring ECS as Build Slave For Jenkins<\/a> [Needs Update]<\/li>\n<\/ol>\n<!--kg-card-end: html-->\n<h3 id=\"jenkins-pipeline-tutorials\">Jenkins Pipeline Tutorials<\/h3>\n<!--kg-card-begin: html-->\n<ol start=\"15\" class=\"wp-block-list is-style-default\">\n<li><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/jenkins-pipeline-as-code\/\" target=\"_blank\" rel=\"noreferrer noopener\">Jenkins Pipeline as Code Tutorial for Beginners<\/a>:  In this guide, you will learn about Jenkins Pipeline as code. Jenkins pipeline as code helps you organize and manage all the CI\/CD Jenkins pipeline as code. This tutorial walks you through the important pipeline concepts.<\/li>\n\n\n<li><a class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/jenkins-shared-library-tutorial\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started With Jenkins Shared Libary:<\/a> Shared library is a very important concept in Jenkins. It helps you to create reusable pipeline code. It is a must-learn concept.<\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/create-jenkins-shared-library\/\" target=\"_blank\" rel=\"noreferrer noopener\">Creating Jenkins Shared Library<\/a>: Step-by-step guide on the practical implementation of Jenkins shared library<\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/declarative-pipeline-parameters\/\" target=\"_blank\" rel=\"noreferrer noopener\">Beginner Guide to Parameters in Declarative Pipeline<\/a>: In this tutorial, you will learn to manage static and dynamic Jenkins parameters using the pipeline as code.<\/li>\n<\/ol>\n<!--kg-card-end: html-->\n<h3 id=\"jenkins-cicd-tutorials\">Jenkins CI\/CD Tutorials<\/h3>\n<!--kg-card-begin: html-->\n<ol start=\"19\" class=\"wp-block-list is-style-default\">\n<li><a aria-label=\"Java Continuous Integration with Jenkins (opens in a new tab)\" class=\"rank-math-link\" href=\"https:\/\/devopscube.com\/java-continuos-integration-jenkins-beginners-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java Continuous Integration with Jenkins<\/a>: This tutorial teaches you to set up a Java CI pipeline using the <a href=\"https:\/\/devopscube.com\/build-java-application-using-maven\/\" data-type=\"post\" data-id=\"16497\">maven build<\/a> utility. [Needs Update]<\/li>\n\n\n<li><a aria-label=\"Jenkins PR based builds with Github Pull Request Builder Plugin (opens in a new tab)\" class=\"rank-math-link\" rel=\"noreferrer noopener\" href=\"https:\/\/devopscube.com\/jenkins-build-trigger-github-pull-request\/\" target=\"_blank\">Jenkins PR based builds with Github Pull Request Builder Plugin<\/a><\/li>\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/devopscube.com\/jenkins-multibranch-pipeline-tutorial\/\" target=\"_blank\">Jenkins Multi-branch Pipeline Detailed Guide for Beginners<\/a><\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/build-docker-image-kubernetes-pod\/\" target=\"_blank\" rel=\"noreferrer noopener\">Building Docker Images Using Kaniko &amp; Jenkins on Kubernetes<\/a><\/li>\n\n\n<li><a href=\"https:\/\/devopscube.com\/setup-jenkins-email-notification\/\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/devopscube.com\/setup-jenkins-email-notification\/\" rel=\"noreferrer noopener\">Sending Email Notification for CI Builds<\/a><\/li>\n  \n\n<li><a aria-label=\"Jenkins PR based builds with Github Pull Request Builder Plugin (opens in a new tab)\" class=\"rank-math-link\" rel=\"noreferrer noopener\" href=\"https:\/\/devopscube.com\/docker-image-build-and-promotion-pipeline\/\" target=\"_blank\">Docker Image Build and Promotion Pipeline<\/a><\/li>\n\n\n<li>How to manage Secrets with Jenkins <\/li>\n\n\n<li>How to Build Docker Image using Jenkins <\/li>\n\n\n<li>How to Build Java Applications Using Jenkins Pipeline <\/li>\n<\/ol>\n<!--kg-card-end: html-->\n<h2 id=\"jenkins-core-features\">Jenkins Core Features<\/h2><p>Let&#8217;s have look at the overview of key Jenkins 2.X features that you should know.<\/p><ol><li>Pipeline as Code<\/li><li>Shared Libraries<\/li><li>Better UI and UX<\/li><li>Improvements in security and plugins<\/li><\/ol><h2 id=\"pipeline-as-code\">Pipeline as Code<\/h2><p>Jenkins introduced a DSL by which you can version your build, test, and deploy pipelines as code. Pipeline code is wrapped around a groovy script that is easy to write and manage. An example pipeline code is shown below.<\/p><p>node(\u2018linux\u2019){ git url: &#8216;https:\/\/github.com\/devopscube\/simple-maven-pet-clinic-app.git&#8217; def mvnHome = tool &#8216;M2&#8217; env.PATH = &#8220;${MNHOME}\/bin:${env.PATH}&#8221; sh &#8216;mvn -B clean verify&#8217; }<\/p><p>Using pipeline as a code you can run parallel builds on a single job on different slaves. Also, you have good programmatic control over how and what each Jenkins job should do.<\/p><p>Jenkinsfile is the best way to implement Pipeline as code. There are two types of <strong>pipeline as code<\/strong>.<\/p><ol><li>Scripted Pipeline and<\/li><li>Declarative Pipeline.<\/li><\/ol><p>I recommend using only a declarative pipeline for all your Jenkins-based CI\/CD workflows, as you will have more control and customization over your pipelines.<\/p><p>Jenkins 2.0 has a better User interface. The pipeline design is also great in that the whole flow is visualized. Now you can configure the user, password, and plugins right from the moment you start the Jenkins instance through awesome UI.<\/p><p>Also, <a href=\"https:\/\/jenkins.io\/projects\/blueocean\/?ref=devopscube.com\" rel=\"noopener noreferrer\">Jenkins Blueocean<\/a> is a great plugin that gives a great view of pipeline jobs. You can even create a pipeline using the blue ocean visual pipeline editor. Blueocen looks like the following.<\/p><figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" src=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2025\/03\/pipeline-run-1.png\" class=\"kg-image\" alt=\"Jenkins blue ocean\" loading=\"lazy\" width=\"1024\" height=\"512\" srcset=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w600\/2025\/03\/pipeline-run-1.png 600w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w1000\/2025\/03\/pipeline-run-1.png 1000w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2025\/03\/pipeline-run-1.png 1024w\" sizes=\"auto, (min-width: 720px) 720px\"><figcaption><span style=\"white-space: pre-wrap;\">Click to view in HD<\/span><\/figcaption><\/figure><h2 id=\"jenkins-shared-libraries\">Jenkins Shared Libraries<\/h2><p><a href=\"https:\/\/jenkins.io\/doc\/book\/pipeline\/shared-libraries\/?ref=devopscube.com\" rel=\"noreferrer noopener\">Jenkins shared library<\/a> is a great way to reuse the pipeline code. You can create your CI\/CD code libraries, which can be referenced in your pipeline script. In addition, the extended shared libraries will allow you to write custom groovy code for more flexibility.<\/p><p>Here is how shared libraries work.<\/p><ol><li>The common pipeline shared library code resides on a version control system like Github.<\/li><li>The shared library GitHub repo needs to be configured in Jenkins global configuration. It enables access to the library for all Jenkins jobs.<\/li><li>You have to add an import statement to import the shared libraries and use it in the pipeline code in individual jobs. During job builds, first, the shared library files get checked out.<\/li><\/ol><h2 id=\"gitops-with-jenkins-x\">GitOps With Jenkins X<\/h2><p><a href=\"https:\/\/jenkins.io\/projects\/jenkins-x\/?ref=devopscube.com\" rel=\"noreferrer noopener\">Jenkins X<\/a> is a project from Jenkins for CI\/CD on Kubernetes. This project is entirely different from normal Jenkins.<\/p><p>Jenkins X has the following key features.<\/p><ol><li>GitOps-based Tekton pipelines<\/li><li>Environment Promotion via GitOps<\/li><li>Pull Request Preview Environments<\/li><li>Feedback and chat on Issues and Pull Requests<\/li><\/ol><h2 id=\"conclusion\">Conclusion<\/h2><p>All the Jenkins tutorials mentioned in this article will help you take your Jenkins knowledge to the next level.<\/p><p>Jenkins has a huge community and, you can find support in different forums if you face any issues.<\/p><p>If you think any tutorial is missing, do let me know in the comment section. We will add it to the list.<\/p><p>Also, if you want to learn real-world Jenkins uses cases, you can try out the Jenkins workflows from the <a href=\"https:\/\/devopscube.com\/devops-projects\/\">DevOps Projects<\/a>.<\/p>\n<hr><p><strong>Ngu\u1ed3n:<\/strong> <a href=\"https:\/\/devopscube.com\/jenkins-2-tutorials-getting-started-guide\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jenkins Tutorial For Beginners: 21+ Practical Guides 2025 \u2014 DevOpsCube<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Source: https:\/\/devopscube.com\/jenkins-2-tutorials-getting-started-guide\/<\/p>\n","protected":false},"author":1,"featured_media":324,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-323","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323"}],"version-history":[{"count":0,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/323\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/media\/324"}],"wp:attachment":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}