No se puede exponer Jenkins externamente

No se puede exponer Jenkins externamente

Estoy alojando jenkins en Windows (razones históricas). Lo acabo de actualizar desde1.620a2.62

Todo funciona como se esperaba, excepto los pequeños detalles a los que ya no puedo acceder. Solo funciona acceder a él desde el host.

Encontré numerosas publicaciones al respecto y todas sugirieron cambiar los parámetros de inicio para configurar:

--httpListenAddress=0.0.0.0

o

--httpListenAddress=HOST

Probé ambas soluciones, mismo resultado. Jenkins funciona cuando se accede desde el host mediante:

  • 127.0.0.1
  • 10.0.1.11 (IP interna)
  • xxxx (ip externa)
  • ANFITRIÓN

pero no funciona cuando se accede desde cualquier otra máquina.

Revisé la configuración del firewall y de Azure. Se puede acceder a otro servicio (nexus:8081) como se esperaba. Cambiar el puerto a 8080 no ayudó.

eso esjenkins.xml

<service>
  <id>jenkins</id>
  <name>Jenkins</name>
  <description>This service runs Jenkins continuous integration system.            
</description>
  <env name="JENKINS_HOME" value="%BASE%"/>
  <env name="HTTP_HOST" value="HOST.cloudapp.net"/>
  <executable>%JAVA_HOME%\jre\bin\java</executable>
  <arguments>-Xrs -Xmx512M -Dfile.encoding=UTF8 -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=80 --httpListenAddress="%HTTP_HOST%" --webroot="%BASE%\war"</arguments>
  <logmode>rotate</logmode>
  <onfailure action="restart" />
</service>

ese es el registro de jenkins

INFO: Started w.@1750fbeb{/,file:///E:/Program%20Files%20(x86)/Jenkins/war/,AVAILABLE}{E:\Program Files (x86)\Jenkins\war}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{HOST.cloudapp.net:80}
May 25, 2017 2:17:51 AM org.eclipse.jetty.server.Server doStart
INFO: Started @4534ms
May 25, 2017 2:17:51 AM winstone.Logger logInternal
INFO: Winstone Servlet Engine v4.0 running: controlPort=disabled
May 25, 2017 2:17:54 AM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
May 25, 2017 2:17:55 AM jenkins.InitReactorRunner$1 onAttained
INFO: Listed all plugins
(removed few lines about ruby failing)
INF/jruby.home/lib/ruby/shared/rubygems/custom_require.rb:36
May 25, 2017 2:18:04 AM jenkins.InitReactorRunner$1 onTaskFailed
SEVERE: Failed Loading plugin ruby-runtime v0.12 (ruby-runtime)
May 25, 2017 2:18:40 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running

cuando httpListenAddressfue 0.0.0.0el registro fue:

INFO: Started ServerConnector@7ae0a9ec{HTTP/1.1,[http/1.1]}{0.0.0.0:80}

Respuesta1

Resulta que esta pregunta no tiene nada que ver con Jenkins. Así que le pido disculpas a cualquiera que haya intentado responder. (La configuración correcta es usar el valor predeterminado httpListenAddresso configurarlo en --httpListenAddress=0.0.0.0)

Era el firewall de Windows. Para los viejos jenkis1.620firewall tenía una regla parajava 6y el puerto 80. New jenkins está usandoJava 8que estaba bloqueado.

Cambiar las reglas del firewall solucionó el problema.

Respuesta2

Para cualquiera que intente instalar Jenkins en Windows en un script de PowerShell, así es como le indica al firewall que abra el puerto:

New-NetFirewallRule -Name jenkins -DisplayName 'Jenkins' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 8080

información relacionada