eea / eea.docker.jenkins.slave

Docker image for Jenkins slave (Jenkins Swarm Plugin)
6 stars 12 forks source link

Failed to fetch slave info from Jenkins, HTTP response code: 401 #5

Open renepardon opened 5 years ago

renepardon commented 5 years ago

I use this within my docker-compose.yml for a standard docker jenkins container: The jenkins user has all permissions, so I don't understand why i receive a 401 here. Maybe it's a pebkac problem but would be nice if you can point me into the right direction here. I use the latest jenkins docker image.

My docker version: Docker version 18.09.5, build e8ff056

  worker:
    image: eeacms/jenkins-slave
    environment:
      JENKINS_DISABLE_SSL_VERIFICATION: "false"
      JAVA_OPTS: "-Xmx2048m"
      JENKINS_MASTER: "https://cicd.example.com"
      JENKINS_NAME: "worker"
      JENKINS_USER: "jenkins"
      JENKINS_PASS: "secretpasswordgoesherebutchangedforthisposting:)"
      JENKINS_RETRY: "10"
      #volumes:
      #- jenkins-worker:/var/jenkins_home/worker
Attaching to worker_1
worker_1              | Fixing permissions
worker_1              | ownership of '/var/jenkins_home/worker/' retained as jenkins:jenkins
worker_1              | May 16, 2019 1:59:54 PM hudson.plugins.swarm.Client main
worker_1              | INFO: Client.main invoked with: [-fsroot /var/jenkins_home/worker/ -labels  -username jenkins -password secretpasswordgoesherebutchangedforthisposting:) -name worker-172.22.0.10 -retry 10 -master https://cicd.example.com -disableSslVerification -sslFingerprints '']
worker_1              | May 16, 2019 1:59:54 PM hudson.plugins.swarm.Client run
worker_1              | INFO: Discovering Jenkins master
worker_1              | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
worker_1              | SLF4J: Defaulting to no-operation (NOP) logger implementation
worker_1              | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
worker_1              | May 16, 2019 1:59:55 PM hudson.plugins.swarm.SwarmClient discoverFromMasterUrl
worker_1              | SEVERE: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              | May 16, 2019 1:59:55 PM hudson.plugins.swarm.Client run
worker_1              | SEVERE: RetryException occurred
worker_1              | hudson.plugins.swarm.RetryException: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              |     at hudson.plugins.swarm.SwarmClient.discoverFromMasterUrl(SwarmClient.java:223)
worker_1              |     at hudson.plugins.swarm.Client.run(Client.java:141)
worker_1              |     at hudson.plugins.swarm.Client.main(Client.java:114)
worker_1              | 
worker_1              | May 16, 2019 1:59:55 PM hudson.plugins.swarm.Client run
worker_1              | WARNING: Remaining retries: 9
worker_1              | May 16, 2019 1:59:55 PM hudson.plugins.swarm.Client run
worker_1              | INFO: Retrying in 10 seconds
worker_1              | May 16, 2019 2:00:05 PM hudson.plugins.swarm.SwarmClient discoverFromMasterUrl
renepardon commented 5 years ago

The master writes this all the time:

jenkins               | 2019-05-16 14:01:04.227+0000 [id=408]   INFO    hudson.model.AsyncPeriodicWork$1#run: Started telemetry collection
jenkins               | 2019-05-16 14:01:14.660+0000 [id=408]   INFO    hudson.model.AsyncPeriodicWork$1#run: Finished telemetry collection. 10,433 ms
jenkins               | [ERROR] [05/16/2019 14:01:40.578] [swarm-plugin-akka.actor.default-dispatcher-13] [akka://swarm-plugin/user/dead-agentService-reaper] null
jenkins               | java.lang.NullPointerException
jenkins               |     at org.jenkinsci.plugins.docker.swarm.DeadAgentServiceReaperActor.reapDeadAgentServices(DeadAgentServiceReaperActor.java:39)
jenkins               |     at org.jenkinsci.plugins.docker.swarm.DeadAgentServiceReaperActor.lambda$createReceive$0(DeadAgentServiceReaperActor.java:28)
jenkins               |     at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26)
jenkins               |     at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21)
jenkins               |     at scala.PartialFunction.applyOrElse(PartialFunction.scala:123)
jenkins               |     at scala.PartialFunction.applyOrElse$(PartialFunction.scala:122)
jenkins               |     at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21)
jenkins               |     at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171)
jenkins               |     at akka.actor.Actor.aroundReceive(Actor.scala:517)
jenkins               |     at akka.actor.Actor.aroundReceive$(Actor.scala:515)
jenkins               |     at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:132)
jenkins               |     at akka.actor.ActorCell.receiveMessage(ActorCell.scala:527)
jenkins               |     at akka.actor.ActorCell.invoke(ActorCell.scala:496)
jenkins               |     at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)
jenkins               |     at akka.dispatch.Mailbox.run(Mailbox.scala:224)
jenkins               |     at akka.dispatch.Mailbox.exec(Mailbox.scala:234)
jenkins               |     at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
jenkins               |     at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
jenkins               |     at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
jenkins               |     at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
avoinea commented 5 years ago

@renepardon Can you try connecting to jenkins-master over the private host network (assuming you exposed jenkins-master's ports 8080 and 50000 on host), if possible like:

environment:
  JENKINS_MASTER: http://10.0.10.14:8080

Or, if you have jenkins-master in the same docker-compose:

environment:
  JENKINS_MASTER: http://master:8080
renepardon commented 5 years ago

There is no port mapping, it's just "expose" cause the jenkins instance lays behind a jwilder nginx proxy. Right now this should be possible but with multiple instances of Jenkins through a Swarm for example I guess this could be bad with the naming and load balancing. But I will give this a try on Monday :)

renepardon commented 5 years ago

Hey @avoinea,

I tried it with this compose configuration now:

  worker:
    image: eeacms/jenkins-slave
    environment:
      JENKINS_DISABLE_SSL_VERIFICATION: "false"
      JAVA_OPTS: "-Xmx2048m"
      JENKINS_MASTER: "http://jenkins:8080"
      JENKINS_NAME: "worker"
      JENKINS_USER: "jenkins"
      JENKINS_PASS: "secret"
      JENKINS_RETRY: "10"
      #volumes:
      #- jenkins-worker:/var/jenkins_home/worker

When I connect to the worker it can ping the Jenkins master but still receiving the same error:

worker_1              | Fixing permissions
worker_1              | ownership of '/var/jenkins_home/worker/' retained as jenkins:jenkins
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.Client main
worker_1              | INFO: Client.main invoked with: [-fsroot /var/jenkins_home/worker/ -labels  -username jenkins -password secret -name worker-172.22.0.10 -retry 10 -master http://jenkins:8080 -disableSslVerification -sslFingerprints '']
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.Client run
worker_1              | INFO: Discovering Jenkins master
worker_1              | SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
worker_1              | SLF4J: Defaulting to no-operation (NOP) logger implementation
worker_1              | SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.SwarmClient discoverFromMasterUrl
worker_1              | SEVERE: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.Client run
worker_1              | SEVERE: RetryException occurred
worker_1              | hudson.plugins.swarm.RetryException: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              |     at hudson.plugins.swarm.SwarmClient.discoverFromMasterUrl(SwarmClient.java:223)
worker_1              |     at hudson.plugins.swarm.Client.run(Client.java:141)
worker_1              |     at hudson.plugins.swarm.Client.main(Client.java:114)
worker_1              | 
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.Client run
worker_1              | WARNING: Remaining retries: 9
worker_1              | May 20, 2019 5:16:49 AM hudson.plugins.swarm.Client run
worker_1              | INFO: Retrying in 10 seconds
worker_1              | May 20, 2019 5:16:59 AM hudson.plugins.swarm.SwarmClient discoverFromMasterUrl
worker_1              | SEVERE: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              | May 20, 2019 5:16:59 AM hudson.plugins.swarm.Client run
worker_1              | SEVERE: RetryException occurred
worker_1              | hudson.plugins.swarm.RetryException: Failed to fetch slave info from Jenkins, HTTP response code: 401
worker_1              |     at hudson.plugins.swarm.SwarmClient.discoverFromMasterUrl(SwarmClient.java:223)
worker_1              |     at hudson.plugins.swarm.Client.run(Client.java:141)
worker_1              |     at hudson.plugins.swarm.Client.main(Client.java:114)