DevOps Classroomnotes 17/Sep/2022

Jenkins Contd…

sudo yum install wget -y
sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk -y
sudo yum install jenkins -y 
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins

Jenkins Terms

  • Project: This is where we configure jenkins to do some activity (ci/cd pipeline).
  • Free Style Project: This is project which was present in jenkins from day 1, It relies on UI elements provided.
  • Plugin:
    • UI: Jenkins Plugin provides additional UI elements to minimize the work.
  • Jenkins Home Directory: Jenkins stores all the information about the projects, jobs, plugins etc in the home directory of jenkins. If we consider taking backup of jenkins, its all about backing up jenkins home directory
    Preview
  • WorkSpace: Workspace is the folder that stores all the files folders etc created during job execution.

Experiment 1: Create a new Jenkins Project hello-jenkins

  • Lets create a job called as hello-jenkins
    Preview
    Preview
  • cd into /var/lib/jenkins/jobs and execute tree command
    Preview
  • Let preview config.xml
<?xml version='1.1' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
      <command>whoami
pwd</command>
      <configuredLocalRules/>
    </hudson.tasks.Shell>
  </builders>
  <publishers/>
  <buildWrappers/>
  • Now lets build the project and review the jenkins home directory jobs folder
    Preview
  • Change the build steps
    Preview
  • Build the project and review the JENKINS_HOME_DIR/workspace
    Preview
    Preview

Activity 1: Building a Java Project

  • Lets build spring pet clinic again using jenkins free style project
    Preview
    Preview
    Preview

Understanding Distributed Build Concept

  • Jenkins build execute on Nodes. Each node has executors which define number of jobs that can be executed on a node
  • Nodes are of two types

    • Master Node:
      • Responsible for hosting jenkins UI and distributing jobs, managing users, plugins etc
      • Ideally Not a good idea to run jobs on master apart from maintenace jobs
    • Nodes:
      • For every project/every technology/os types organizations add nodes to the master.
      • When we add nodes number of executors increase which in turn means we can manage multiple projects from same jenkins server.
  • Since we have a jenkins server which is linux based, lets create one more node which is also linux.
  • To communicate from one linux node to other linux node, we use ssh.
  • Lets use the same concept for configuring node to master
  • Node which we have configure takes username and password as credentials.
  • Now Manage Jenkins => Nodes
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
    Preview
  • Now build the project
    Preview
    Preview
    Preview

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About continuous learner

devops & cloud enthusiastic learner