TECH BASICS

Getting started with Jenkins and Jenkins X

Jenkins Is Getting Ready To work!

Part-1: Jenkins

If I mention open source continuous integration or continuous delivery (CI/CD) tools, the name of Jenkins will automatically pop-up. Easy set-up and deployment make it one of the most powerful tools present in the market which can support the entire software delivery pipeline.

Part-2: Jenkins X

An open-source project that offers automated CI/CD for cloud-native applications on Kubernetes. Jenkins X harnesses the power of Jenkins 2.0 and can work with open source tools like Helm, Nexus, Docker Registry, etc to easily build cloud-native applications. In simple language, Jenkins X has a set of tools that simplify operations and automate CI/CD for Kubernetes. I must insist you should read about cloud-native applications over the internet.

Part-3: What’s the primary difference?

Jenkins is an open-source automation server that can be used to automate all types of tasks. It supports basic infra operations in on-premises as well as in cloud. On the other hand, Jenkins X is made specifically to work with Cloud-Native technologies. When I say Cloud-Native, I am referring to container-based technologies. Everything that is done with Jenkins X can be done with Jenkins.

Part-4: Jenkins architecture

Jenkins runs as a standalone application server called Jetty, in its own process with the built-in Java servlet container. It has 3 main components:

  1. Master Node
  2. Worker Node
  3. Web Interface

Master Node as the name says handles all configuration in Jenkins Eco-system. Jenkins master executes Jobs with help of worker nodes and uses plugins. Plugins are actually modules with different features.

Master-Slave connectivity can be achieved via 2 ways.

  1. SSH Protocol
  2. JNLP Protocol

Part-5: Jenkins X architecture

Jenkins X provides a built-in model for CI/CD. It comprises different tools for setting up a standard pipeline. The JX utility is capable of deploying these tools as well as creating environments in the k8s cluster using the concept of namespaces.

https://jenkins-x.io/about/concepts/#:~:text=that%20minimizes%20complexity.-,Architecture,manageable%20fashion%2C%20across%20multiple%20teams

Part-6: Bootstrapping Jenkins

Jenkins requires java servlet containers such as Apache Tomcat for standard deployment. You need to have a system with JRE and Tomcat deployed and you can start working straight away. Apart from this, you can deploy Jenkins as a container using Docker or Kubernetes.

Jenkins Deployment Options -

  1. You can use the package manager (yum, apt, etc) to deploy
  2. You can download war file and deploy on tomcat
  3. You can use container images

In this demo, we will do it via package.

# Install JDK
$ sudo apt install openjdk-11-jdk
# Install Tomcat
$ wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz
$ tar -xvzf apache-tomcat-8.5.61.tar.gz
$ cd apache-tomcat-8.5.61
# Download Jenkins$ wget https://get.jenkins.io/war-stable/2.263.2/jenkins.war

Move compressed Jenkins war in webapps folder of tomcat and start it.

$ cd /jenkins/apache-tomcat-8.5.61/bin
$ ./startup.sh

Now Access the Jenkins URL on http://localhost:8080/jenkins/

Jenkins will present series of steps -

Plugin Deployment :-

Admin User Creation

That’s all, Your Jenkins Master is ready to work !

Home Page.

Part-7: Bootstrapping Jenkins X

To Start working with Jenkins X you need to download JX executable binary from github. Once jx application is ready on the system, you can move on to create a cluster for your CI/CD pipeline and workflow. You can either let Jenkins X create a new cluster for you or you can use an existing cluster.

# download 
$ curl -L https://github.com/jenkins-x/jx/releases/download/v2.1.155/jx-linux-amd64.tar.gz | tar xzv
# move it in path
$ sudo mv jx /usr/local/bin
# validate
$ jx version

Jenkins X features are limited to Kubernetes-based clusters. It needs cluster-admin level access to work on Kubernetes. Jenkins X can be easily installed on an existing cloud provider (e.g. GKE, AKS, EKS, etc.).

Jenkins X Deployment Options -

  1. Existing Kubernetes Cloud Services
  2. On-Premises Kubernetes Cluster
  3. Cluster build by Jenkins X

If you have on-premise k8s cluster use:-

jx install --provider=kubernetes --on-premise

In the case of cloud provider:-

jx create cluster gke --skip-installation

That’s it for this post, I will cover more details in upcoming posts.

Till then, Keep learning, Stay Safe.

In quest of understanding How Systems Work !

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store