Installing Jenkins on Ubuntu

After having setup Travis-CI and CircleCI builds for my sample Android app, today I thought to install Jenkins on Ubuntu (giving more control on signing, authority, Dex, etc.) , though it is pretty much straightforward, however I wanted to post my learning as well in form of a tutorial.

Step 1 – Preparing your Ubuntu

First Step of all the installations on Ubuntu is to updated it to latest system packages by running below commands

[code language=”bash”]
$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade
[/code]

Below steps are only needed if your Ubuntu is behind a corporate proxy, you may need to set apt to use proxy by creating a 95proxies file like below

[code language=”bash”]
$ sudo vi /etc/apt/apt.conf.d/95proxies
[/code]

Content would be like below

[code language=”bash”]
Acquire::http:Proxy "http://x.y.z.a:9090<"
Acquire::https:Proxy "http://x.y.z.a:9090"
Acquire::ftp:Proxy "http://x.y.z.a:9090"
[/code]

Step 2 – Install Jenkins
Next we need to get the Remote keys from Jenkins Distro server and add locally into Apt Cert store, add Jenkins Repo to sources.list.d  and then install jenkins.

[code language=”bash”]
wget -q -O – https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add –
sudo sh -c ‘echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list’
sudo apt-get update
sudo apt-get install jenkins
[/code]

Once you have finished jenkins install you need to start jenkins process by issuing below

[code language=”bash”]
$ sudo service jenkins start
[/code]

Jenkins process should display the port it is using when you use the command “sudo lsof -i | grep jenkins” . Why we using ‘sudo’ is because jenkins is running under its own user id process and no other user would usually have access to those processes.

[code language=”bash”]
ubuntu:~$ sudo lsof -i | grep jenkins
java      27888 jenkins  158u  IPv6  62767      0t0  TCP *:http-alt (LISTEN)
java      27888 jenkins  176u  IPv6  62954      0t0  TCP *:44305 (LISTEN)
java      27888 jenkins  178u  IPv6  62994      0t0  UDP *:33848
java      27888 jenkins  179u  IPv6  63010      0t0  UDP *:mdns
ubuntu:~$
[/code]

Step 3 – Initial Setup with onetime Secret

Open URL  – http://192.168.0.32:8080 and it should display a prompt asking for a secret which is stored by Jenkins process .  This is to make sure nobody else can go and create Admin user and control the Jenkins installation. So go and check content of this initialAdminPassword file and paste it in the Web form.
PS : Usually Jenkins listens at port 8080 which can be changed by modifying /etc/init.d/jenkins file for `HTTP_PORT`.

unlock-jenkins

Once you have entered the secret initialAdminPassword, the Jenkins would ask you to do Plugin installation manually or recommended way .  Choose Recommended way for now.  You can install further plugins on the Admin page.

Once Jenkins finishes installing the recommended plugins, it would prompt for a new Admin user to be created like below .

createfirstadminuser

 

Enter the details and it should accept and show that Setup is complete like below

jenkins-readywelcome-jenkins

Thanks for reading. feel free to post comments or feedback

 

References –

Installing Jenkins on Ubuntu