0% found this document useful (0 votes)
15 views

Jenkins

Uploaded by

Pavan Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Jenkins

Uploaded by

Pavan Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 49

https://naveenautomationlabs.

com/tag/jenkins/:

https://naveenautomationlabs.com/tag/git/

Steps to Configure Maven


Project with Jenkins
9 MAY 2020 / PAVAN / 0 COMMENTS

Jenkins is an Open Source Continuous integration tool that is written in Java which is often used in
Devops.

It is mainly used by Developers and Testers, whenever Developers/Testers does any changes in
Source Code then Jenkins will automatically pull the code and continuously build and test code that
has been added.

Step 1: Installing Jenkins War File.


Follow below steps to install Jenkins War File.

Go to any browser and search by Jenkins Download as shown below and click on below
highlighted link.

After clicking on above highlighted link, you will be navigated to below page.

Click on “Permalink to the latest” – Latest and Stable version of Jenkins War File will be installed
into your local system.

Now you are good to execute your Jenkins War File from Command Prompt.
Step 2: Executing Jenkins War File from Command Prompt.

Create a separate folder in your local system and place Jenkins War file once it is
downloaded. Note: We must run Jenkins.war file through Command Line Prompt.

Step 3: Use below command to Run Jenkins.war file

Note: By default, Jenkins will always run in localhost:8080. Make sure nothing else is running on
port 8080. If localhost:8080 is already occupied then you won’t be able to execute Jenkins.war file.
In such case you can execute your Jenkins.war file in other port using below command.

Once Jenkins is successfully launched, user should be able to see below message in
Command Prompt.

“Jenkins is Fully Up and Running”.

Step 4: Now, go to browser and open localhost:8084 where you have run your Jenkins.
In my case, I have run Jenkins in port 8084.

When launching it for first time, you have to set username and password and install default plug-ins
that suggests etc and then you will be landed on to Jenkins Dashboard Page.
Step 5: Configure your system for Java and Maven in Jenkins as shown below

Go to Manage Jenkins >> Global Tool Configuration.

Step 6: Install Required Plug-ins >> Go to Manage Jenkins >> Manage Plug-ins and install from
Available Section.
Step 7: Create Job >> New Item >> Enter Item Name >> Select Maven Project and Click on OK.
After installing all Maven Plug-ins user should be able to see Maven Project Option.

Step 8: A. Go to General >>


Enter Description of your Project.

B. Go to Maven Info Plug-in Configuration >> Select None.

C. Go to Source Code Management. [You have to select any one option from it].

Select None, if you are not using any Source Code Management tool for maintaining Code.
Select Git and provide Repository URL and Branch Name, if you are maintaining code in Git.

D. Go to Build Triggers.

You can select as shown below, if you are not scheduling jobs using CRON Command and such. [In
this case you have to build a job manually].
If you have to schedule jobs automatically, select Build Periodically and use CRON Command.

By setting the schedule period to 15 13 * * * you tell Jenkins to schedule the build
every day of every month of every year at the 15th minute of the 13th hour of
the day.
Jenkins used a cron expression, and the different fields are:
1. MINUTES Minutes in one hour (0-59)
2. HOURS Hours in one day (0-23)
3. DAYMONTH Day in a month (1-31)
4. MONTH Month in a year (1-12)
5. DAYWEEK Day of the week (0-7) where 0 and 7 are sunday
If you want to schedule your build every 5 minutes, this will do the job : */5 * * * *
If you want to schedule your build every day at 8h00, this will do the job : 0 8 * *
*

If we have to build a job automatically when in any commit happens to Git then we
can select Poll SCM and use CRON Command.

[As soon as code commit happens to Git, it will trigger a build].

E. From Build Environment, Select None


F. From Pre Steps, Select None.

G. From Build, Enter Path for your Root POM.xml and command to be executed as shown below.
Note: When in giving Maven Command to Run Test Cases in Jenkins, ignore mvn and just give commands as below.
clean install Or test Or test -PSmoke etc.

H. From Post Steps, you can select any option as per your requirement.
I. If you want to be notified, when in any job is getting failed then you can select Build Settings and
configure it.

Note: To do this we need to do other extra configuration [You can ignore for it now].

J. Post Build Actions can be used to Generate Results. [To achieve it, we need to install required
plug-ins like TestNG Plug-in, HTML Report Plug-in for Generating Extent Report]

Below Configurations needs to be done for generating Extent Reports in Project Folder.
Step 9: Apply and Save, now click on Build now to trigger your Job.

Conclusion: In this blog, we have seen how to create a Job for Maven Project,
Configuring Job and Executing a Job in Jenkins.

https://www.softwaretestinghelp.com/jenkins-interview-questions/

Top 36 Jenkins Interview Questions [For


2020]
Last Updated:April 16, 2020
Most Popular Jenkins Interview Questions with Answers and Examples:
This article will cover the most frequently asked Jenkins interview questions.

We are sure that this will be useful for freshers and experienced professionals who want to
start their career with Jenkins.
All the topics right from the basics till advanced concepts of SQL have been covered here
for your reference. It will definitely be helpful for the readers to have a quick revision of
some important concepts before appearing for an interview.

Top Jenkins Interview Questions


Enlisted below are some of the most popular Jenkins Interview Questions that have been
answered by experts.

Q #1) What is Jenkins?


Answer: Jenkins is a free open source Continuous Integration tool and automation server
to monitor continuous integration and delivery. It is written in Java.
It is known as an automated Continuous Delivery tool that helps to build and test the
software system with easy integration of changes to the system. Jenkins follows Groovy
Scripting.

Also, it enables developers to continuously check in their code and also analyze the post-
build actions. The automation testers can use to run their tests as soon as the new code is
added or code is modified.

Q #2) What are the features of Jenkins?


Answer: Jenkins comes with the following features:
1. Free open source.
2. Easy installation on various operating systems.
3. Build Pipeline Support.
4. Workflow Plugin.
5. Test harness built around JUnit.
6. Easy upgrades.
7. Rapid release cycle.
8. Easy configuration setup.
9. Extensible with the use of third-party plugins.
Q #3) What are the advantages of Jenkins? Why we use Jenkins?
Answer: Jenkins is used to continuously monitor the large code base in real-time. It
enables developers to find bugs in their code and fix them. Email notifications are made to
the developers regarding their check-ins as a post-build action.
Advantages of Jenkins are as follows:
 Build failures are cached during the integration stage.
 Notifies the developers about build report status using LDAP (Lightweight Directory
Access Protocol) mail server.
 Maven release project is automated with simple steps.
 Easy bug tracking.
 Automatic changes get updated in the build report with notification.
 Supports Continuous Integration in agile development and test-driven development.
Q #4) Mention some of the important plugins in Jenkins?
Answer: Plugins in Jenkins includes:
 Gits
 Maven 2 Project
 HTML Publisher
 Copy Artcraft
 Joins
 Green Balls
 Amazon EC2
Q #5) What is Continuous Integration in Jenkins?
Answer: Continuous integration is the process of continuously checking-in the developer’s
code into a version control system and triggering the build to check and identify bugs in the
written code.
This is a very quick process and also gives them a chance to fix the bugs. Jenkins is
one such continuous integration tool.
In software development, multiple developers work on different software modules. While
performing integration testing all the modules are being integrated together. It is considered
as the development practice to integrate the code into the source repository

Whenever the programmer/developer makes any change to the current code, then it
automatically
gets integrated with the system running on the tester’s machine and makes the testing task
easy and speedy for the system testers.

Continuous Integration comprises of:


 Development and Compilation
 Database Integration
 Unit Testing
 Production Deployment
 Code Labeling
 Functional Testing
 Generating and Analyzing Reports
Q #6) What is the difference between Hudson and Jenkins?
Answer: There is no difference between Hudson and Jenkins. Hudson was the former
name of Jenkins, after going through several issues the name was changed to Jenkins.
Q #7) What is Groovy in Jenkins?
Answer: Groovy is the default scripting language that is being used in the development of
JMeter Version 3.1.
Currently Apache Groovy is the dynamic object-oriented programming language that is
used as a scripting language for the Java platform. Apache Groovy comes with some useful
features such as Java Compatibility and Development Support.

Q #8) Which command is used to start Jenkins?


Answer: You can follow the below-mentioned steps to start Jenkins:
1. Open Command Prompt
2. From the Command Prompt browse the directory where Jenkins. war resides
3. Run the command given below:
D:\>Java –jar Jenkins.war
Q #9) What is Jenkinsfile?
Answer: The text file where all the definitions of pipelines are defined is called Jenkinsfile. It
is being checked in the source control repository.
Q #10) What is the difference between Continuous Integration, Continuous Delivery,
and Continuous Deployment?
Answer: The diagrammatic representation given below can elaborate on the differences
between Continuous Integration, Continuous Delivery, and Continuous Deployment more
precisely.
Continuous Integration:

(It involves keeping the latest copy of the source code at a commonly shared hub where all
the developers can check to fetch out the latest change in order to avoid conflict.)

Continuous Delivery:

(Manual Deployment to Production. It does not involve every change to be deployed.)


Continuous Deployment:
(Automated Deployment to Production. Involves every change to be deployed
automatically.)
Q #11) What is Jenkins Pipeline? What is a CI CD pipeline?
Answer: The pipeline can be defined as the suite of plugins supporting the implementation
and integration of continuous delivery pipelines in Jenkins.
Continuous integration or continuous delivery pipeline consists of build, deploy, test, release
pipeline. The pipeline feature saves a lot of time and error in maintaining the builds.
Basically, a pipeline is a group of build jobs that are chained and integrated in sequence.

Q #12) What are Scripted Pipelines in Jenkins?


Answer: Scripted Pipeline follows Groovy Syntax as given below:
Node {

In the above syntax, the node is a part of the Jenkins distributed mode architecture, where
there are two types of node, Master which handle all the tasks in the development
environment and the Agent is being used to handle multiple tasks individually.
Q #13) What are Declarative Pipelines in Jenkins?
Answer: Declarative Pipelines are the newest additions to Jenkins that simplify the groovy
syntax of Jenkins pipelines (top-level pipeline) with some exceptions, such as:
No semicolon to be used as a statement separator. The top-level pipeline should be
enclosed within block viz;

The common syntax is:


pipeline {

/* Declarative Pipeline */

Blocks must contain Sections, Directives, steps or assignments.

pipeline {

agent any

stages {

stage(‘Build’) {

steps {

// Statements…
}

stage (‘Test’) {

steps {

// Statements…

The above code has 3 major elements


 Pipeline: The block of script contents.
 Agent: Defines where the pipeline will start running from.
 Stage: The pipelines contain several steps enclosed in the block called Stage.
Q #14) What is SCM? Which SCM tools are supported in Jenkins?
Answer:
 SCM stands for Source Control Management.
 SCM module specifies the source code location.
 The entry point to SCM is being specified as jenkins_jobs.scm.
 The job specified with ‘scm’ attribute accepts multiple numbers of SCM definitions.
The SCM can be defined as:
scm:

name: eloc – scm

scm:

git:

url: ssh://Jenkins.org/eloc.git

Jenkins supported SCM tools include:


 CVS
 Git
 Perforce
 AccuRev
 Subversion
 Clearcase
 RTC
 Mercurial
Q #15) Which CI Tools are used in Jenkin?
Answer: Jenkins supported the following CI tools:
1. Jenkins
2. GitLab CI
3. Travis CI
4. CircleCI
5. Codeship
6. Go CD
7. TeamCity
8. Bamboo
Q #16) Which commands can be used to start Jenkins manually?
Answer: You can use the following commands to start Jenkins manually:
1. (Jenkins_url)/restart: To force restart without waiting for build completion.
2. (Jenkin_url)/safeRestart: Waits until all the build gets completed before restarting.
Q #17) Which Environmental Directives are used in Jenkins?
Answer: Environmental Directives is the sequence that specifies pairs of the key-values
called Environmental Variables for the steps in the pipeline.
Q #18) What are Triggers?
Answer: Trigger in Jenkins defines the way in which the pipeline should be executed
frequently. PollSCM, Cron, etc are the currently available Triggers.
Q #19) What is Agent Directive in Jenkins?
Answer: The Agent is the section that specifies the execution point for the entire pipeline or
any specific stage in the pipeline. This section is being specified at the top-level inside the
pipeline block.
Q #20) How to make sure that your project build does not break in Jenkins?
Answer: You need to follow the below-mentioned steps to make sure that the Project build
does not break:
1. Clean and successful installation of Jenkins on your local machine with all unit tests.
2. All code changes are reflected successfully.
3. Checking for repository synchronization to make sure that all the differences and
changes related to config and other settings are saved in the repository.
Q #21) What is the difference between Maven, Ant, and Jenkins?
Answer: Maven vs Jenkins:
Maven is a build tool like Ant. It consists of a pom.xml file which is specified in Jenkins to
run the code. Whereas, Jenkins is used as a continuous integration tool and automates the
deployment process. The reports of the builds can be used to set a mark for continuous
delivery as well.

The below table enlists the differences between Maven, Ant, and Jenkins in a
comparative way:
Maven Ant Jenkins

It is a Build Automation Tool. Java Library/Command Line Continuous Integration Tool.


Tool.
Maven Ant Jenkins

Defines how the software is built Drives build process. Automates the software development p
and describes the software with Continuous Integration and facilit
dependencies. Continuous Deliver.

Supports projects written in C#, Supports projects written in C Supports version control tools like Git,
Ruby. and C++. AccuRev.

Executes Unit Tests as a part of the Supports single file execution Can execute Apache Ant and Apache M
normal build cycle. introduced with Java II.
Q #22) How will you define Post in Jenkins?
Answer: Post is a section that contains several additional steps that might execute after
the completion of the pipeline. The execution of all the steps within the condition block
depends upon the completion status of the pipeline.
The condition block includes the following conditions – changed success, always, failure,
unstable and aborted.
Q #23) What are Parameters in Jenkins?
Answer: Parameters are supported by the Agent section and are used to support various
use-cases pipelines. Parameters are defined at the top-level of the pipeline or inside an
individual stage directive.
Q #24) How you can set up a Jenkins job?
Answer: Setting up a new job in Jenkins is elaborated below with snapshots:
Step 1: Go to the Jenkins Dashboard and log in with your registered login credentials.
Step 2: Click on the New Item that is shown in the left panel of the page.

Step 3: Click on the Freestyle Project from the given list on the upcoming page and
specify
the item name in the text box.
Step 4: Add the URL to the Git Repository.
Step 5: Go to the Build section and click on the Add build step => Execute Windows
batch
command.

Step 6: Enter the command in the command window as shown below.


Step 7: After saving all the settings and changes click on Build Now.
Step 8: To see the status of the build click on Console Output.

Q #25) What are the two components (pre-requisites) that Jenkins is mainly
integrated with?
Answer: Jenkins integrates with:
1. Build tools/ Build working script like Maven script.
2. Version control system/Accessible source code repository like Git repository.
Q #26) How can You Clone a Git Repository via Jenkins?
Answer: To create a clone repository via Jenkins you need to use your login credentials in
the Jenkins System.
To achieve the same you need to enter the Jenkins job directory and execute the git
config command.
Q #27) How can you secure Jenkins?
Answer: Securing Jenkins is a little lengthy process, and there are two aspects of
securing Jenkins:
(i) Access Control which includes authenticating users and giving them an appropriate set
of permissions, which can be done in 2 ways.
 Security Realm determines a user or a group of users with their passwords.
 Authorization Strategy defines what should be accessible to which user. In this
case, there might be different types of security based on the permissions granted to
the user such as Quick and simple security with easy setup, Standard security setup,
Apache front-end security, etc.
(ii) Protecting Jenkins users from outside threats.
Q #28) How to create a backup and copy files in Jenkins?
Answer: In Jenkins, all the settings, build logs and configurations are stored in the
JENKINS_HOME directory. Whenever you want to create a backup of your Jenkins you can
back up JENKINS_HOME directory frequently.
It consists of all the job configurations and slave node configurations. Hence, regularly
copying this directory allows us to keep a backup of Jenkins.

You can maintain a separate backfile and copy it whenever you need the same. If you want
to copy the Jenkins job, then you can do so by simply replicating the job directory.

Q #29) What is the use of Backup Plugin in Jenkins? How to use it?
Answer: Jenkins Backup Plugin is used to back up the critical configurations and settings in
order to use them in the future in case of any failure or as per the need of time.
The following steps are followed to back up your settings by using the Backup
Plugin.
Step 1: Go to the Jenkins Dashboard and click on Manage Jenkins.
Step 2: Click on Manage Plugins that appears on the next page.
Step 3: Go to Available Tab on the next page and search for ThinBackup.

Step 4: Once you choose the available option, it will start installing.
Step 5: Once it is installed the following screen will appear, from there choose Settings.

Step 6: Enter the necessary details like backup directory along with other options as shown
on the below screen and save the settings. The backup will be saved to the
specified Backup Directory.
Step 7: Go to the previous page to test whether the backup is happening or not by clicking
on Backup Now as shown in the below image.
Step 8: At last, you can check the Backup Directory specified in the ThinBackup
Settings. (Step 6) to check the whole backup
Q #30) What is Flow Control in Jenkins?
Answer: In Jenkins, flow control follows the pipeline structure (scripted pipeline) that are
being executed from the top to bottom of the Jenkins file.
Q #31) What is the solution if you find a broken build for your project?
Answer: To resolve the broken build follow the below-mentioned steps:
 Open console output for the build and check if any file change has missed.
OR
 Clean and update your local workspace to replicate the problem on the local system
and try to resolve it (In case you couldn’t find out the issue in the console output).
Q #32) What are the basic requirements for installing Jenkins?
Answer: For installing Jenkins you need the following system configuration:
1. Java 7 or above.
2. Servlet 3.1
3. RAM ranging from 200 MB to 70+ GB depending on the project build needs.
4. 2 MB or more of memory.
Q #33) How can you define a Continuous Delivery Workflow?
Answer: The flowchart below shows the Continuous Delivery Workflow. Hope it will be
much easier to understand with visuals.
Q #34) What are the various ways in which the build can be scheduled in Jenkins?
Answer: The build can be triggered in the following ways:
1. After the completion of other builds.
2. By source code management (modifications) commit.
3. At a specific time.
4. By requesting manual builds.
Q #35) Why is Jenkins called a Continuous Delivery Tool?
Answer: We have seen the Continuous Delivery workflow in the previous question, now
let's see the step by step process of why Jenkins is being called as a Continuous Delivery
Tool:
1. Developers work on their local environment for making changes in the source code
and push it into the code repository.
2. When a change is detected, Jenkins performs several tests and code standards to
check whether the changes are good to deploy or not.
3. Upon a successful build, it is being viewed by the developers.
4. Then the change is deployed manually on a staging environment where the client
can have a look at it.
5. When all the changes get approved by the developers, testers, and clients, the final
outcome is saved manually on the production server to be used by the end-users of
the product.
In this way, Jenkins follows a Continuous Delivery approach and is called
the Continuous Delivery Tool.
Q #36) Give any simple example of Jenkins script.
Answer: This is a Jenkins declarative pipeline code for Java:
pipeline {

agent

stages {

stage('Building your first asset') {

agent

steps {

echo 'Build asset'

stage('Test') {

agent

steps {

echo 'Building project 1'

These are some of the frequently asked questions in the Jenkins interview, you can practice
them as part of your preparation for the interview.

We advise you to practice some Jenkins scripts before attending an interview. Also for
detailed information and processes in Jenkins please check Jenkins.
Conclusion
The above-mentioned interview questions are being asked during Jenkins Software
Configuration Management and DevOps interview as Jenkins is also considered as an
important tool in the DevOps program.
The real-time Jenkins interview questions listed in this article can be referred by beginners,
professionals as well as job seekers who are looking for a good opportunity or a technical
position in Jenkins.

EDUREKA:

 Top DevOps Interview Questions You Must Prepare In 2020


 Top Git Interview Questions – All You Need To Know About Git
 Top Jenkins Interview Questions – All You Need To Know About
Jenkins
 Top Docker Interview Questions – All You Need To Know About Docker
 Top 50 Kubernetes Interview Questions You Must Prepare In 2020
 Top 50 Ansible Interview Questions And Answers in 2020
 Top Puppet Interview Questions – All You Need To Know About Puppet
 Top Chef Interview Questions – All You Need To Know About Chef
 Top Nagios Interview Questions – All You Need To Know About Nagios

Careers
DevOps
Topics Covered
 DevOps (73 Blogs)
 Mastering Git and GitHub (9 Blogs)
 Docker (8 Blogs)
 DevOps Engineer Masters Program (4 Blogs)
SEE MORE

Top Jenkins Interview Questions


You Must Prepare In 2020
Last updated on Dec 03,2019174.7K Views

SaurabhSaurabh is a technology enthusiast working as a Research Analyst at Edureka. His areas of


interest are - DevOps, Artificial Intelligence, Big Data and...

 9 Comments
 Bookmark
3 / 9 Blog from DevOps Interview Questions
Jenkins Interview Questions
Just commit changes to the SCR (Source Code Repository) and Jenkins can
automate the rest of the process for you with the help of plugins. So that
makes it a very important tool in DevOps Certification Training. There is
a high possibility that you encounter many Jenkins questions if you go for a
DevOps job interview. Below are the most frequently asked Jenkins interview
questions. I have collected these questions after doing a lot of research and
after discussing with some DevOps experts who are directly involved in the
hiring process. Curious to know more about Jenkins check out this
Jenkins blog series.

This Jenkins Interview Questions blog is a part of parent blog DevOps


Interview Questions. It includes all the DevOps Stages.

DevOps Certification Training

 Instructor-led Sessions
 Real-life Case Studies
 Assignments
 Lifetime Access

Explore Curriculum

In this blog we have covered roughly 50+ questions and we have divided
them into 3 categories –

 Basic Questions
 Intermediate Questions
 Advanced Questions

DevOps Interview Questions and Answers | DevOps Training | Edureka


Basic Interview Questions
Q1. What is the difference between Jenkins and Bamboo?

Parameters Jenkins Bamboo

Bamboo is not open


Open Source Jenkin is open-source
source
It charges for the number
Pricing Logic Jenkin is completely free
of build agents required
Operating System Windows, Ubuntu, Red Hat, Mac OS Windows, Linux, Solaris
Firefox, Chrome, Safari,
Browsers Chrome, Firefox, Internet Explorer
Edge
It does not support many
Plugin Support Yes, It supports a lot of plugins plugins as compared to
Jenkins
Being open-source, it has a lot of support It has less support as
Support
from communities compared to Jenkins
Q2. What is Jenkins?

Jenkins is an open-source automation tool written in Java with plugins built


for Continuous Integration purposes. Jenkins is used to build and test your
software projects continuously making it easier for developers to integrate
changes to the project, and making it easier for users to obtain a fresh build.
It also allows you to continuously deliver your software by integrating with a
large number of testing and deployment technologies.

Q3. Define the process of Jenkins.

 First, a developer commits the code to the source code repository.


Meanwhile, the Jenkins server checks the repository at regular intervals
for changes.

 Soon after a commit occurs, the Jenkins server detects the changes
that have occurred in the source code repository. Jenkins will pull those
changes and will start preparing a new build.

 If the build fails, then the concerned team will be notified.

 If the build is successful, then Jenkins deploys the build in the test
server.

 After testing, Jenkins generates feedback and then notifies the


developers about the build and test results.
 It will continue to check the source code repository for changes made
in the source code and the whole process keeps on repeating.

Q4. What are the benefits of using Jenkins?

I will suggest you include the following benefits of Jenkins if you can recall
any other benefit apart from the below-mentioned points you can include
that as well.

 At the integration stage, you can cache build failures.


 For each change in the source code, you generate an automatic build report
notification.
 To notify developers about build report success or failure, Jenkins integrates
with the LDAP mail server.
 Achieves continuous integration agile development and test driven
development.
 With simple steps, you can automate the maven release project.
 Easy tracking of bugs at an early stage in a development environment than
production.

Q5. What are the pre-requisites for using Jenkins?

The answer to this is pretty straightforward. To use Jenkins you require:

 A source code repository which is accessible, for instance, a Git repository.


 A working build script, e.g., a Maven script, checked into the repository.

Q6. What is the relation between Hudson and Jenkins?

You can just say Hudson was the earlier name and version of current Jenkins.
After some issues, they renamed the project from Hudson to Jenkins.

Q7. Mention some of the useful plugins in Jenkins


Below I have mentioned some important Plugins:

 Maven 2 project
 Git
 Amazon EC2
 HTML publisher
 Copy artifact
 Join
 Green Balls

These Plugins I feel are the most useful plugins, if you want to include any
other Plugin that is not mentioned above, you can add that as well, but make
sure you first mention the above-stated plugins and then add your own.

Q8. How do you install Jenkins?

To install Jenkins, you just need to follow these five steps:

1. Install Java Version 8 – Jenkins is a Java based application, hence


Java is a must.
2. Install Apache Tomcat Version 9 – Tomcat is essential to deploy
Jenkins war file.

3. Download Jenkins war File – This war is must to install Jenkins.

4. Deploy Jenkins war File – You deploy Jenkins war file using Tomcat
to run Jenkins.

5. Install Suggested Plugins – Install a list of plugins suggested by


Jenkins.

Once the installation is complete, you will be able to see the Jenkins
dashboard.

Q9. What are the two components that you can integrate
Jenkins with?

According to me, the integration of Jenkins is possible with the following:

 Version Control system like GIT, SVN.


 Build tools like Apache Maven.

If you have anything else in your mind then mention that as well but make
sure you include the above two components in your answer.

Q10. What is Maven? What is the benefit of integrating


Maven with Jenkins?

Maven is a build management tool. It uses a simple pom.xml to configure all


the dependencies needed to build, test and run the code. Maven manages
the full lifecycle of a test project. Once integrated with Jenkins, the maven
Webdriver will build the project and execute all tests efficiently.

Q11. Mention what are the commands you can use to start
Jenkins manually.

For this answer I will suggest you go with the below-mentioned flow:
To start Jenkins manually open Console/Command line, then go to your
Jenkins installation directory. Over there you can use the below commands:

Start Jenkins: jenkins.exe start


Stop Jenkins: jenkins.exe stop
Restart Jenkins: jenkins.exe restart

Q12. Which SCM tools Jenkins supports?


Here are some of the Source Code Management tools supported by Jenkins:

 AccuRev
 CVS
 Subversion
 Git
 Mercurial
 Perforce
 Clearcase
 RTC

Q13. How will you define Post in Jenkins?

Post is a section that contains several additional steps that might execute
after the completion of the pipeline. The execution of all the steps within the
condition block depends upon the completion status of the pipeline. The
condition block includes the following conditions – changed success,
always, failure, unstable and aborted.

Q14. What are Parameters in Jenkins?

Parameters are supported by Agent section and they are used to support
various use-cases pipelines. Parameters are defined at the top-level of the
pipeline or inside an individual stage directive.

Q15. What is Groovy?

Groovy from Apache is a language designed for the Java platform. It is the
native scripting language for Jenkins. Groovy-based plugins enhance Jenkins
with great interfaces and build reports that are of dynamic and consistent
nature.

Intermediate Questions
Q16. How Can You Clone A Git Repository Via Jenkins?

If you want to clone a Git repository via Jenkins, you have to enter the e-mail
and user name for your Jenkins system. Switch into your job directory and
execute the “git config” command for that.

Q17. Explain how you can set up Jenkins job.

My approach to this answer will be to first mention how to create Jenkins job.
Go to Jenkins top page, select “New Job”, then choose “Build a free-style
software project”.

Now you can tell the elements of this freestyle job:

 Optional SCM, such as CVS or Subversion where your source code resides.
 Optional triggers to control when Jenkins will perform builds.
 Some sort of build script that performs the build (ant, maven, shell script,
batch file, etc.) where the real work happens.
 Optional steps to collect information out of the build, such as archiving the
artifacts and/or recording javadoc and test results.
 Optional steps to notify other people/systems with the build result, such as
sending e-mails, IMs, updating issue tracker, etc..

Q18. How to create a backup and copy files in Jenkins?

The answer to this question is really direct.

To create a backup all you need to do is to periodically back up your


JENKINS_HOME directory. This contains all of your build jobs configurations,
your slave node configurations, and your build history. To create a back-up
of your Jenkins setup, just copy this directory. You can also copy a job
directory to clone or replicate a job or rename the directory.

Q19. How will you secure Jenkins?

The way I secure Jenkins is mentioned below if you have any other way to do
it than mention that:

 Make sure that the global security is on.


 Check if Jenkins is integrated with my company’s user directory with an
appropriate plugin.
 Ensure that the matrix/Project matrix is enabled to fine-tune access.
 Automate the process of setting rights/privileges in Jenkins with custom
version controlled script.
 Limit physical access to Jenkins data/folders.
 Periodically run security audits on the same.

Q20. Explain how you can deploy a custom build of a core


plugin?

Below are the steps to deploy a custom build of a core plugin:

 Stop Jenkins.
 Copy the custom HPI to $Jenkins_Home/plugins.
 Delete the previously expanded plugin directory.
 Make an empty file called <plugin>.hpi.pinned.
 Start Jenkins.

Q21. What you do when you see a broken build for your
project in Jenkins?

There can be multiple answers to this question I will approach this task in the
following way:

I will open the console output for the broken build and try to see if any file
changes were missed. If I am unable to find the issue that way, then I will
clean and update my local workspace to replicate the problem on my local
and try to solve it.

If you do it in a different way then just mention that in your answer.

Q22. What are the various ways in which build can be


scheduled in Jenkins?

You can schedule a build in Jenkins in the following ways:

 By source code management commits


 After completion of other builds
 Can be scheduled to run at a specified time (crons)
 Manual Build Requests

Q23. What is the use of Pipelines in Jenkins?

Pipeline plugin is used in Jenkins for making the Jenkins Pipeline, which gives
us the view of stages or tasks to perform one after the other in the pipeline
form. It models a series of related tasks. Pipelines help the teams to review,
edit and iterate upon the tasks. Pipelines are durable and it can optionally
stop and wait for human approval as well to start the next task. A pipeline is
extensible and can perform work in parallel. It supports complex CD
requirements.

Q24. Explain the terms Agent, post-section, Jenkinsfile

Agent: It is directive to tell Jenkins to execute the pipeline in a particular


manner and order.

Post-section: If we have to add some notification and to perform other


tasks at the end of a pipeline, post-section will definitely run at the end of
every pipeline’s execution.
Jenkinsfile: The text file where all the definitions of pipelines are defined is
called Jenkinsfile. It is being checked in the source control repository.

Q25. Do you know about cloud computing? How can Jenkins


fit into a cloud computing environment? Explain with an
example.

Let us take the example of AWS cloud service. Cloud computing services use
the CI/CD model so that they can push their work to the customers and
constantly receive feedback. Jenkins is used to automating the CI/CD
pipelines. For example, a lot of Jenkins plugins are available for many of the
AWS services like Amazon EC2 and ECS.

Q26. What is Kubernetes? How can you integrate Jenkins


with Kubernetes?

Kubernetes is a container orchestration tool. With Kubernetes, one can


create multiple container instances to achieve more fault tolerance. You can
use the Kubernetes deploy plugin to use it with Jenkins for continuous
deploy.

Q27. Have you run automated tests on Jenkins? How is it


done?

Yes, this can be done easily. Automated tests can be run through tools like
Selenium or maven. Developers can schedule the test runs. Jenkins displays
the test results and sends a report to the developers.

Q28. Let us say, you have a pipeline. The first job was
successful, but the second failed. What should you do next?

You just need to restart the pipeline from the point where it failed by doing
‘restart from stage’.

Q29. What is the use of JENKINS HOME directory?

All the settings, logs and configurations are stored in the JENKINS_HOME
directory.

Q30. What is a backup plugin? Why is it used?

This is a helpful plugin that backs up all the critical settings and
configurations to be used in the future. This is useful in cases when there is a
failure so that we don’t lose the settings.
Q31. What is a trigger? Give an example of how the
repository is polled when a new commit is detected.

Triggers are used to define when and how pipelines should be executed.

When Jenkins is integrated with an SCM tool, for example, Git, the repository
can be polled every time there is a commit.

 The Git plugin should be first installed and set up.

 After this, you can build a trigger that specifies when a new build
should be started. For example, you can create a job that polls the
repository and triggers a build when a change is committed.

Q32. How do you define parameters for a build in Jenkins?

A build can take several input parameters to execute. For example, if you
have multiple test suites, but you want to run only one. You can set a
parameter so that you are able to decide which one should be run. To have
parameters in a job, you need to specify the same while defining the
parameter. The parameter can be anything like a string, a file or a custom.

Q33. What are the ways to configure Jenkins node agent to


communicate with Jenkins master?

There are 2 ways to start the node agent –

 Browser – if Jenkins node agent is launched from a browser, a JNLP


(Java Web Start) file is downloaded. This file launches a new process on
the client machine to run jobs.

 Command-line – to start the node agent using the command line, the
client needs the executable agent.jar file. When this file is run, it
simply launches a process on the client to communicate with the
Jenkins master to run build jobs.

Q34. How does Jenkins authenticate users?

There are 3 ways –

 The default way is to store user data and credentials in an internal database.
 Configure Jenkins to use the authentication mechanism defined by the
application server on which it is deployed.
 Configure Jenkins to authenticate against LDAP server.
Q35. How can you use a third-party tool in Jenkins?

Below are the steps used for working with a third-party tool in Jenkins.

 First install the third-party software


 Download the plug-in that supports the third-party tool.
 Configure the third-party tool in the admin console.
 Then use the required plug-in from the Jenkins build job.

For different third-party tools, the procedure may vary slightly, because of
the difference in configuration settings.

Q36. What are the types of pipelines in Jenkins?

There are 3 types –

1. CI CD pipeline (Continuous Integration Continuous Delivery)


2. Scripted pipeline
3. Declarative pipeline

Q37. What syntax does Jenkins use to schedule build job or


SVN polling?

The cron syntax.

Cron syntax is represented using five asterisks each separated by a space.


The syntax is as follows – [minutes] [hours] [day of the month] [month] [day
of the week]. Example, if you want to set up a cron for every Monday at
11.59 pm, it would be 59 11 * * 1

Q38. What is DevOps and in which stage does Jenkins fit in?

DevOps is a software development practice that blends software


development (Dev) with the IT operations (Ops) making the whole
development lifecycle simpler and shorter by constantly delivering builds,
fixes, updates, and features. Jenkins plays a crucial role because it helps in
this integration by automating the build, test and deployment process.

Q39. Do you know any other Continuous Integration tools?


How is Jenkins better than any of those?

There are many other CI tools, and the most prominent ones are –

 TeamCity
 Bamboo
 Perforce
 Circle CI
 Go
 ThoughtWorks
 Integrity
 Travis CI

There are many more. We cannot say if Jenkins is better than each because
each has its own unique features. For example, TeamCity offers great .NET
support but is complex and costly, Travis CI is free just like Jenkins and has
good documentation too. Bamboo too offers efficient and faster builds but is
not completely free and so on.

Q40. Name a Jenkins environment variable you have used in


a shell script or batch file.

There are numerous environment variables that are available by default in


any Jenkins build job. A few commonly used ones include:

 $JOB_NAME

 $NODE_NAME

 $WORKSPACE

 $BUILD_URL

 $JOB_URL

Note that, as new Jenkins plug-ins are configured, more environment


variables become available. For example, when the Jenkins Git plug-in is
configured, new Jenkins Git environment variables, such as $GIT_COMMIT
and $GIT_URL, become available to be used in scripts.

Q41. What is Continuous Integration In Jenkins?

In software development, multiple developers or teams work on different


segments of the same web application. So in this case, you have to perform
integration testing by integrating all modules. In order to do that an
automated process for each piece of code is performed on a daily bases so
that all your codes get tested. This process is known as continuous
integration.

Q42. How do you achieve continuous integration using


Jenkins?

Here are the steps –


 All the developers commit their source code changes to the shared Git
repository.

 Jenkins server checks the shared Git repository at specified intervals


and detected changes are then taken into the build.

 The build results and test results are shared to the respective
developers

 The built application is displayed on a test server like Selenium and


automated tests are run.

 The clean and tested build is deployed to the production server.

Q43. What is a DSL Jenkins?

The Jenkins “Job DSL / Plugin” is made up of two parts – first, The Domain
Specific Language (DSL) itself that allows users to describe jobs using a
Groovy-based language, and second, a Jenkins plugin which manages the
scripts and the updating of the Jenkins jobs which are created and
maintained as a result.

Q44. How do you create Multibranch Pipeline in Jenkins?

The Multibranch Pipeline project type enables you to implement different


Jenkinsfiles for different branches of the same project. In a Multibranch
Pipeline project, Jenkins automatically discovers, manages and executes
Pipelines for branches that contain a Jenkinsfile in source control.

Q.45 What are the types of jobs or projects in Jenkins?

These are the types of jobs/projects in Jenkins –

 Freestyle project
 Maven project
 Pipeline
 Multibranch pipeline
 External Job
 Multi-configuration project
 Github organization

Q46. What is blue ocean in Jenkins?

It is a project that was started with the purpose to rethink the user
experience of Jenkins, modeling and presenting the process of software
delivery by surfacing information that’s important to development teams.
This is done with as few clicks as possible, while still staying true to the
extensibility that is core to Jenkins. While this project is in the alpha stage of
development, the intent is that Jenkins users can install Blue Ocean side-by-
side with the Jenkins Classic UI via a plugin

Advanced Questions
Q47. What is Continuous Testing?

Continuous Testing is the process where you execute automated tests as


part of the software delivery pipeline. This is done so that you get the
feedback on the business risks associated with software as early as possible.
It consists of evolving and extending test automation to address the
increased complexity and pace of modern application development and
delivery.

Continuous Testing means that testing takes place on a continuous basis


without any disruption of any kind. In a Continuous DevOps process, a
software change is continuously moving from Development to Testing to
Deployment. The code undergoes continuous development, delivery, testing
and deployment.

Q48. Explain how you can move or copy Jenkins from one
server to another?

I will approach this task by copying the jobs directory from the old server to
the new one. There are multiple ways to do that, I have mentioned it below:

You can:

 Move a job from one installation of Jenkins to another by simply


copying the corresponding job directory.

 Make a copy of an existing job by making a clone of a job directory by


a different name.

 Rename an existing job by renaming a directory. Note that if you


change a job name you will need to change any other job that tries to
call the renamed job.

Q49. How do you integrate Git with Jenkins?

These are the steps to integrate Git with Jenkins –


1.Click on the Manage Jenkins button on your Jenkins dashboard:

2. Click on Manage Plugins.


3. In the Plugins Page

1. Select the GIT Plugin


2. Click on Install without restart. The plugin will take a few moments to
finish downloading depending on your internet connection, and will be
installed automatically.
3. You can also select the option Download now and Install after restart.
4. You will now see a “No updates available” message if you already have the
Git plugin installed.

4. Once you install the plugins , go to Manage Jenkins on your Jenkins


dashboard. You will see your plugins listed among the rest.
Q50. How can you temporarily turn off Jenkins security if the
administrative users have locked themselves out of the
admin console?

The JENKINS_HOME folder contains a file named config.xml. When you enable
the security, this file contains an XML element named useSecurity that
changes to true. If you change this setting to false, security will be disabled
the next time Jenkins is restarted.

<useSecurity>false</useSecurity>

However, we must understand that disabling security should always be both


a last resort and a temporary measure. Once you resolve the authentication
issues, make sure that you re-enable Jenkins security and reboot the CI
server.

Q51. Can you define a Continuous Delivery Workflow?

The flowchart below shows the Continuous Delivery Workflow. Hope it will be
much easier to understand with visuals.
Q52. What is the difference between Continuous Delivery
and Continuous Deployment?

Continuous Delivery: (Manual Deployment to Production. Does not


involve every change to be deployed.)

Continuous Delivery is a software development practice where you build


software in such a way that the software can be released to the production
at any time. You achieve Continuous Delivery by continuously integrating the
products built by the development team, running automated tests on those
built products to detect problems and then push those files into production-
like environments to ensure that the software works in production.
Continuous Deployment: (Automated Deployment to Production.
Involves deploying every change automatically)

Continuous deployment means that every change that you make, goes
through the pipeline, and if it passes all the tests, it automatically gets
deployed into production. So, with this approach, the quality of the software
release completely depends on the quality of the test suite as you have
automated everything.

Q53. What do you mean by Pipeline as a Code?

Pipeline as Code describes a set of features that allow Jenkins users to


define pipelined job processes with code, stored and versioned in a source
repository. These features allow Jenkins to discover, manage, and run jobs
for multiple source repositories and branches — eliminating the need for
manual job creation and management.

To use Pipeline as Code, projects must contain a file named Jenkinsfile in


the repository root, which contains a “Pipeline script.”

Additionally, one of the enabling jobs needs to be configured in Jenkins:

 Multibranch Pipeline: build multiple branches of a single repository


automatically

 Organization Folders: scan a GitHub Organization or Bitbucket


Team to discover an organization’s repositories, automatically
creating managed Multibranch Pipeline jobs for them

You might also like