My road to Certified Jenkins Engineer

Prashant Lakhera
9 min readMar 20, 2020

Yay I am Jenkins Certified now

WARNING: Some House Keeping task, before reading this blog

1: As everyone needs to sign NDA with Cloudbees, I can’t tell you the exact questions asked during the exam neither I have GB of memory, but I can give you the pointers what to expect in the exam.

2: As we all know devops technology updates everyday, so some of the stuff might not be relevant after a few days/weeks/months…

3: Please don’t ask for any exam dump or questions, that defeats the whole purpose of the exam.

Exam Preparation

  • CloudBees University offers three free courses. AFAIK these three are the best resources to prepare for this exam.
  • Jenkins World 2019 Video

Exam Pattern

  • 60 multiple-choice questions in 90 minutes
  • You must correctly answer 66% of the questions to pass the exam.
  • Exam cost: $150
  • The entire exam is divided into 4 main topics

For more info

Based on my experience you must need to know these three topics to clear this exam-

  • Jenkins Plugins
  • Artifacts
  • DSL(Scripted and Declarative pipeline)

1: Difference between CI and CD?

Continuous Integration(CI)

  • Is the frequent, automatic integration of code.
  • Automatically tests all new and modified code with the master

Continuous Delivery(CD)

  • Ensures that the code is always ready to be deployed.
  • Manual approval is required to actually deploy the software to production.

NOTE: Please remember CD is the natural extension of CI.

2: Artifacts Question? (Surprisingly there were 6–8 questions related to Artifacts)

  • In simplest word, it’s just a file produced as a result of a Jenkins build.
  • As a default process, artifacts are stored where they are created so they are deleted when the workspace is wiped.
  • To save the artifacts we need to achieve it.
  • They store indefinitely unless you have a retention policy and should be deleted periodically.

Few points to remember-

  • Archiving artifacts is the Post build action.
  • For Pipeline step you need to use archiveArtifacts. Practice it using Snippet Generator.
  • As well as using Blue Ocean Editor
stage('archiveartifacts') {
steps {
archiveArtifacts(artifacts: 'my-test.zip', fingerprint: true)
  • Location of fingerprints(fingerprint is the MD5 checksum of an artifact)
/var/lib/jenkins/fingerprints
  • How to enable it(Merely check the Fingerprint box when you create the archiving step)

NOTE: Jenkins uses Fingerprint to keep track of artifacts without any ambiguity.

  • Once archived, an archive is attached to the build that produced it.

http://<jenkins url?/job/<your job name>/<build number>/artifact/

  • Use of Copy Artifact Plugin(to take artifacts from one project(Pipeline run) and copy them to another project)

Reference

  • To access the artifacts via Blue Ocean Editor

3: Scripted Pipeline vs Declarative Pipeline?

# Declarative Pipeline Examplepipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
# Scripted Pipeline Examplenode {
def mvnHome
stage('Preparation') { // for display purposes
// Get some code from a GitHub repository
git '
https://github.com/jglick/simple-maven-project-with-tests.git'
// Get the Maven tool.
// ** NOTE: This 'M3' Maven tool must be configured
// ** in the global configuration.
mvnHome = tool 'M3'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'target/*.jar'
}
}

Reference

4: Difference between Polling/Pull vs Pushing/Webhook

Pull/Polling: Setup an SCM Polling Trigger

Push/Webhook: Setup a hook from the repository to trigger job

When to use Push vs Pull

  • Pull for when you don’t control the repository or polling is ok
  • Push for when you need an immediate build or don’t want to waste resources on polling

NOTE: Polling is less efficient, both for your computers and for your people since you have to wait — on the order of minutes — for your builds to happen, instead of them happening essentially instantly.

Reference

5: Jenkinsfile

  • Make sure you understand all the constructs in Jenkinsfile
pipeline {
agent any
stages {
stage('Build') {
steps {
//
}
}
stage('Test') {
steps {
//
}
}
stage('Deploy') {
steps {
//
}
}
}
}

agent: The agent section specifies where the entire Pipeline or a specific stage, will execute in the Jenkins environment depending on where the agent section is placed.

  • Check the different parameter agent support
1: any
2: none
3: label
4: node
5: docker
6: Kubernetes

Stages

  • Containing a sequence of one or more stage directives, the stages section is where the bulk of the "work" described by a Pipeline will be located.

Steps

  • The steps section defines a series of one or more steps to be executed in a given stage directive.

NOTE: Exam will try to confuse you with words like step vs steps.

6: Different type of testing

Make sure you understand different types of testing

  • Unit Tests: Test a small piece of code
  • Integration Tests: Validate Integration between multiple sub-systems(eg: database)
  • Smoke Tests: Validates basic functions of the system also known as Sanity Checking
  • Functional Tests: Validates the normal behaviors against the expectations and requirements
  • Acceptance Tests: Tests the full product from the perspective of the end user use cases.

7: Notification in Jenkins?

Understand the different kind of notification mechanism

  • Slack(Slack Notification plugin)
  • Email(Pay special attention to Email extension plugin)

8: Distributed Build

  • How to configure Node(Worker)
  • Remember this term Fungible which means Replaceable/Throwable i.e Agent can be substituted by any other agent.
  • Minimum Requirement for Jenkins
1: Java8 or Java 11 is required(Java 9 and Java10 not supported)
Beware of operating system Limits
2: Maximum number of open files
3: Maximum number of forked processes
4: Network tuning (packet size, TCP timeouts)

9: Bunch of question related to plugins

  • Make sure you go to each and every tab of the Plugin Manager page
  • Pay special attention to these options, eg. under Installed Tab you have the option to Uninstall
  • Under advanced tab, you have the option to configure proxy
  • Upload Plugin

NOTE: Plugin extension is .hpi

10: Jenkins API

  • How to use jenkins cli
java -jar jenkins-cli.jar -s <jenkins url> -auth username:<jenkins token> list-jobsjava -jar jenkins-cli.jar -s http://localhost:8080 -auth username:<jenkins token> build <build name>

11: Matrix Security/Project Based Security

Matrix Based Security: Maps user/groups to Jenkins actions

Project Based Matrix Authorization Strategy: It allows an access control list matrix to be defined for project. This feature is very useful when we want to give access to specific jobs to specific users

12: Installation wizard

  • Make sure you remember initial setup screen
  • You can skip user creation during installation by continuing as admin
  • How to skip install wizard
/etc/sysconfig/jenkinsJENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -D jenkins.install.runSetupWizard=false"

13: Parameterized jobs

  • You should know how to parameterized the build

14: Freestyle job

  • Hands-on experience on how to create the Freestyle Job

15: Difference between the Folder and View

  • Folder creates a container that stores nested items in it. Useful for grouping things together. Unlike view, which is just a filter, a folder creates a separate namespace so you can have multiple things of the same name as long as they are in different folders.

16: Global Libraries

  • I will highly recommend watching this video.

17: MultiBranch Pipeline

  • Please try to create and play with these pipelines.

18: Few questions related to GitHub Organization which I have no idea how it works with Jenkins

Gotchas

1: The exam I took was Certified Jenkins Engineer 2020, all the resources available on Internet talk about the Certified Jenkins Engineer 2018 exam.

2: Resources I listed above(exam preparation section), none of them covered topics in depth. I would like to divide the exam into three sections.

a: Straight forward question(Either you know the answer or not)
b: Question which required memorization(Definitely not my cup of tea)
c: In-depth question, you must need to know that topic in-depth to answer those question

3: After reading all the blogs, I thought it’s going to be an easy ride, but the exam was much tougher than my expectation, I barely crossed the passing line.

Final Words

  • Key to clear this exam is your hands on experience
  • Keep calm and write this exam
  • Thanks for taking the time to read my blog, let me know in case if you have any questions.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Prashant Lakhera
Prashant Lakhera

Written by Prashant Lakhera

AWS Community Builder, Ex-Redhat, Author, Blogger, YouTuber, RHCA, RHCDS, RHCE, Docker Certified,4XAWS, CCNA, MCP, Certified Jenkins, Terraform Certified, 1XGCP

Responses (5)

Write a response

awesome Prashant. Are you planning to give CKA ? Love to see some blogs on those.

This is a very informative article! I'm in DC and currently looking for folks who have extensive Jenkins experience. This is information is very helpful for me to see what goes into certification process. Thank you for posting!