Jenkins mit nginx als Proxy benutzen

Jenkins ist heutzutage das Mittel der Wahl wenn es um CI geht. Nutzt man bereits gitlab-omnibus mit integriertem nginx, dann ist es sinnvoll auch den Zugriff auf Jenkins damit zu realisieren. Damit das funktioniert sind einige Schritte notwendig. Zunächst teilen wir dem gitlab-nginx mit, daß wir den Zugriff auf Jenkins via Proxy unter https://gitlab.url/jenkins/ ermöglichen wollen:


$ sudo vim /etc/gitlab/gitlab.rb


[...]
nginx['custom_gitlab_server_config'] = "location ^~ /jenkins/ {\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header Host $http_host;\nproxy_redirect off;\nproxy_set_header X-Forwarded-Proto https;\nproxy_pass http://jenkins_server;\n}\n"
nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

Anschließend den Zugangspunkt für Jenkins eigenen Webserver erstellen:


$ sudo mkdir -p /etc/nginx/conf.d && sudo vim /etc/nginx/conf.d/jenkins.conf


upstream jenkins_server {
        server 127.0.0.1:8081 fail_timeout=0;
}

Danach den Port + Prefix für Jenkins definieren:


$ sudo vim /etc/default/jenkins


HTTP_PORT=8081
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --prefix=$PREFIX"

Und Jenkins noch mitteilen wie seine neue Adresse lautet:


$ sudo vim /var/lib/jenkins/jenkins.model.JenkinsLocationConfiguration.xml




  Adresse nicht konfiguriert <nobody@nowhere>
  https://gitlab.url/jenkins/

Und zum Schluß alles noch neu starten, dann ist Jenkins unter https://gitlab.url/jenkins/ erreichbar.


$ sudo gitlab-ctl reconfigure && sudo gitlab-ctl restart nginx && sudo service jenkins restart

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.