Simon
Simon

Reputation: 601

Why does Jenkins say "This Jenkins instance appears to be offline"

I have a fresh install of Jenkins 2.32.2 on Ubuntu. Opened a browser on the instance and get to a page titled Offline, with the message "This Jenkins instance appears to be offline" and offers options to "Configure Proxy" or "Skip Plugin Installation"

The machine clearly isn't offline as I just used the internet connection to do the installation. I also had a previous installation, done exactly the same way, that was working. I removed the previous installation as Pipelines wouldn't work and Google told me it was because of JDK 9. So I removed all the JDK/JRE installations as well as jenkins, fresh installed JDK 8 only, installed Jenkins, and got to here.

Jenkins has worked on this box in the past so what makes it think it is offline?

Update: Found a log file /var/lib/jenkins/logs/tasks/Download metadata.log and it starts with a message FATAL: Connection refused (Connection refused) I would think that indicates that the internet connection is OK, but something else is stopping it getting data?

Update: Based on other research I checked the Update Site in the Plugin Manager. This is listed as http://updates.jenkins-ci.org/update-center.json and, from the command line a wget of this file succeeds. So most definitely not a connection issue. Worked with both http and https, jenkins works with neither.

Upvotes: 49

Views: 60822

Answers (25)

Ahmed Kamal
Ahmed Kamal

Reputation: 11

Machine : ubuntu 24.04

I faced this problem preventing me from downloading any plugin using jenkins,but troubleshooting and searching , I find it is proxy problem so tradational solutions doesn't help in my case

Solution:

  • if you have a configured proxy on your machine
    • then configure jenkins based on it.
  • if you don't have a proxy configured, here how to check for a proxy Settings -> Network -> Proxy
  • then in jenkins Relaod Disk configurations enter image description here

Upvotes: 0

Matheus Tenório
Matheus Tenório

Reputation: 47

Just bringing my little contribution here. Had this same problem trying to run binhex-jenkins docker image on UnraidOS.

It seems the problem was a misconfigured Tailscale Plugin.

I've installed it to try out but didn't managed to make it work, so I left it hanging there for me to come back and try later.

I thought this might be the problem, so I deleted it, removed the Jenkins container and its volumes, it worked for me.

Upvotes: 0

Mukesh G
Mukesh G

Reputation: 51

I also faced this issue i.e. This Jenkins instance appears to be offline on windows 10.

Below are the steps I followed to solve it:

  1. Navigate to the Jenkins Home Directory. For me, the default home directory is: C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins.jenkins

  2. Changed the protocol from HTTPS to HTTP in the file hudson.model.UpdateCenter.xml

  3. Restarted Jenkins (Go to C:\Program Files\Jenkins and then execute jenkins.exe stop, jenkins.exe start)

  4. Logged in to Jenkins again (http://localhost:8080/).

The offline error got solved.

Upvotes: 4

dushyant
dushyant

Reputation: 369

In my case i have changed https to http in URL line of /var/lib/jenkins/hudson.model.UpdateCenter.xml file and restarted the jenkins. It started functioning.

Upvotes: 3

Mohammed Ashfaq
Mohammed Ashfaq

Reputation: 11

For Windows OS, follow below steps:

  1. Go to C:\Users\\*your user name*\\.jenkins
  2. Open the file hudson.model.UpdateCenter.xml
  3. Update the value of url from https://xxx to http://xxx

Upvotes: 1

Chamara Perera
Chamara Perera

Reputation: 11

  1. Took note of the secret Administrator password path that Jenkins displays when first opening http://localhost:8080/ on a browser.

  2. The path was: C:\Users{username}\AppData\Local\Jenkins.jenkins\secrets. Therefore the hudson.model.UpdateCenter file was at C:\Users{username}\AppData\Local\Jenkins.jenkins\

  3. Updated the hudson.model.UpdateCenter file in notepad to have text http instead of https as follows: http://updates.jenkins.io/update-center.json

  4. Reloaded the http://localhost:8080/ page but still showed the text "This Jenkins instance appears to be offline."

  5. Then navigated to the Services App in Windows (click Windows and type 'Services App' and it should display the App in the search list)

  6. In the services App right clicked the Jenkins service and selected Restart.

  7. After Windows restarted the Jenkins service navigated to http://localhost:8080/ The Jenkins page wouldn't even load. Navigated to the Jenkins login page: http://localhost:8080/login?from=%2F

  8. Then got a loading page with text:'Please wait while Jenkins is getting ready to work ... Your browser will reload automatically when Jenkins is ready.' Assumed that Jenkins was still restarting.

  9. Once the Jenkins login page loaded, entered that password/secret again and clicked Continue.

  10. This time the page with "This Jenkins instance appears to be offline." was not displayed. Jenkins displayed a Getting Started -> Customize Jenkins page with buttons to install plugins.

Upvotes: 1

ArunDhwaj IIITH
ArunDhwaj IIITH

Reputation: 3903

On MacOS 10.11.6 :

  1. Go to /Users/<UserName>/.jenkins

  2. Open the file hudson.model.UpdateCenter.xml

  3. Change the value of default from https://xxx to http://xxx

Upvotes: 1

Shekar
Shekar

Reputation: 305

For Ubuntu, go to /home/username/.Jenkins/Hudson.model.UpdateCenter.xml and edit the file from https to http.

Upvotes: 1

remondo
remondo

Reputation: 388

As some others pointed out, in Windows, this could be because of firewall restrictions set by company infrastructure. For my case, I need the recommended plugins to be present (e.g. Folders plugin)

My workaround was:

A. Install same Jenkins version into my personal laptop/VM, and be sure to install the recommended plugins the first time you browse to the Jenkins Web Page.

B. Copy the plugins folder from my personal laptop's JENKINS HOME folder (i.e. ProgramData\Jenkins...) into the Jenkins plugins folder of the company laptop. Total size of the plugins folder was around 150MB (zipped).

Upvotes: 0

Shanmuga Priya
Shanmuga Priya

Reputation: 1

In my case, I use WINDOWS OS. So, jenkins was installed in my C drive.

PATH : C:\Users\Username\ .jenkins

Under "hudson.model.UpdateCenter" file change "https" to "http"

<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://updates.jenkins.io/update-center.json</url>
</site>
</sites>

Upvotes: 0

kareem.khan
kareem.khan

Reputation: 1

Even I faced similar issue, then figured out that JDK that I was using is 8 instead of 11. Check jenkins jdk combination under jenkins official site

I used JDK11 with Jenkins 2.3031 version and it worked fine - all plugins got downloaded

Upvotes: 0

jws
jws

Reputation: 2774

Another possibility - make sure DNS functions properly for Jenkins.

In my case, I followed Kubernetes setup instructions here to install Jenkins, and it led to this problem.

I enabled logging on CoreDNS and saw this:

│ [INFO] 10.70.116.14:45888 - 50490 "AAAA IN updates.jenkins.io.svc.cluster.local. udp 54 false 512" NXDOMAIN qr,aa,rd 147 0.0001896s                          │
│ [INFO] 10.70.116.14:45888 - 32566 "A IN updates.jenkins.io.svc.cluster.local. udp 54 false 512" NXDOMAIN qr,aa,rd 147 0.000169468s                           │
│ [INFO] 10.70.116.14:57907 - 22912 "A IN updates.jenkins.io.localdomain. udp 48 false 512" NOERROR qr,aa 110 0.000907476s                                     │
│ [INFO] 10.70.116.14:57907 - 52100 "AAAA IN updates.jenkins.io.localdomain. udp 48 false 512" NOERROR qr,aa 110 0.001709031s 

The lookups were all cluster-local.

If I edited the URL (as suggested in other answers here) to include a dot after updates.jenkins.io. then hostname lookup worked and the URL resolved. Though Jenkins' next step errors for the same reason.

In the end I discovered the problem was ClusterFirst mode of the pod's DNS. I added dnsPolicy: Default to the deployment's pod template spec (the instructions link above), and now it works.

Upvotes: 0

Pushkar Raj Sindal
Pushkar Raj Sindal

Reputation: 59

Re-installing JAVA JDK8 worked for me.

Upvotes: 0

dev_dan
dev_dan

Reputation: 179

It might not always be an option but if you have a choice use different Image. I used Debian GNU/Linux 10 and it worked like a charm.

Upvotes: 0

Terefe
Terefe

Reputation: 309

in case you are running jenkins in a container and vi is not installed access your container in interactive mode

docker exec -it jenkins-ci /bin/bash

use this sed command to replace https with http

sed -i 's/https/http/g' /var/jenkins_home/hudson.model.UpdateCenter.xml 

Upvotes: 4

Donald.McLean
Donald.McLean

Reputation: 899

I'm working on a Mac, and in my case, it turned out that the version of Java Jenkins was using (1.8.0u66) wasn't up to date enough. I had both Java 11 and Java 14 installed, but the jenkins-lts script was coded to force use of Java 8. Rather than install a more up to date JDK 8 installation, I modified the script to run ${JAVA_HOME}/bin/java and set JAVA_HOME to the JDK 11 installation.

Upvotes: 0

user7940167
user7940167

Reputation:

This mostly happens when you are working with company issued PC Windows OS.

Fix :-

click on "Configure Proxy" ask your IT team for specific server and port values that can bypass firewall and give your windows username & password. In this way you can resolve windows firewall and offline Jenkins issue.

I researched a lot over Internet but nowhere the fix is available.

Thanks!

Upvotes: 1

ifeegoo
ifeegoo

Reputation: 7292

There is something wrong with the internet connection of update center.I have met the same situation with Jenkins installed on macOS.

You can try to modify the hudson.model.UpdateCenter.xml file.

Jenkins installed with .pkg package on macOS,the file path is:
/Users/Shared/Jenkins/Home/hudson.model.UpdateCenter.xml

Jenkins installed by Homebrew on macOS,the file path is:
/Users/{username}/.jenkins/hudson.model.UpdateCenter.xml

Open the file:

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://updates.jenkins.io/update-center.json</url>
  </site>
</sites>

You can try to change https://updates.jenkins.io/update-center.json to:

http://updates.jenkins.io/update-center.json

or

// If you are in China or near China area,https and http are both OK.
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json

And then you can restart Jenkins by:

//loading the URL to restart Jenkins.
http://localhost:8080/restart

or

// Use Homebrew command to restart Jenkins if you installed Jenkins LTS version by Homebrew.  
brew services restart jenkins-lts

Upvotes: 19

pointo1d
pointo1d

Reputation: 1

I make no claims about this, especially Java related (I personally cannot stand the language), but on my Ubuntu 18.04 L/T, I needed to stand-up a standalone Jenkins instance; So I installed both the Java on which Jenkins appears to be dependent and Jenkins itself

sudo apt install openjdk-8-jdk jenkins

Then I updated the Jenkins defaults

sudo gvim /etc/default/jenkins

... inserting the following at the top of the file - only because editing /etc/init.d/jenkins appeared to serve no purpose as it had no effect whatsoever ...

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/
PATH=$JAVA_HOME:$PATH

Finally, save & quit ... then attempt Jenkins restart

sudo service jenkins restart

HTH - it certainly worked for me :-)

Upvotes: 0

user10540906
user10540906

Reputation: 1

jenkins_enable="YES"
jenkins_home="/usr/local/jenkins"
jenkins_user="jenkins"
jenkins_args="--webroot=${jenkins_home}/war --httpListenAddress=*.*.*.*  --httpPort=8180"

#jenkins_java_opts="-Djavax.net.ssl.trustStore=/usr/local/jenkins/cacerts -Djava.net.preferIPv6Addresses=true"

#jenkins_java_opts="-Djavax.net.ssl.trustStore=/usr/local/jenkins/cacerts -Djava.net.preferIPv4Addresses=true"

Upvotes: -2

elico
elico

Reputation: 69

The issue is that for some reason Jenkins doesn't have access to the certificates chain of the Jenkins updates service. On Ubuntu 18.04 I had this issue and the next links and instructions helped me to start Jenkins properly without modifying the default url or using a proxy of some sort.

Installing a new JDK 8(u101+) with JAVA_HOME should do the trick like at:

is making sure that Lets Encrypt certificates are installed and available on the OS/SYSTEM. To test it you can use the instructions at:

And to install manually if required the Let's encrypt root chain using the next script:

Upvotes: 4

dani_KR
dani_KR

Reputation: 7

Enter this before running Jenkins.

# iptalbes -F

It may be because of the firewall.

Upvotes: -1

mclovin
mclovin

Reputation: 107

in my case (macOS), updating jdk to 8 and reinstall jenkins solved the problem.

Upvotes: 4

rak appdev
rak appdev

Reputation: 717

For macOS users:

Step -1: Edit /Users/Shared/Jenkins/Home/hudson.model.UpdateCenter.xml and change url to use http instead of https.

Step -2: Restart jenkins (for instance by going to http:localhost:8080) and reload the website

Step -3(Optional): If it asks for user and password and if you don't remember creating one; default user is admin and copy the password from

sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword

credits - @Alex in this post and @Tuan Pham here and @Joe Walsh for the comment on macOS directory path

Upvotes: 21

Alex
Alex

Reputation: 1771

In my case, it has something to do with SSL. I manage to fix it by editing /var/lib/jenkins/hudson.model.UpdateCenter.xml and change url to use http instead of https.

Restart jenkins and reload the website, it no longer shows offline.

Upvotes: 72

Related Questions