jenkinsAan de slag met jenkins


Opmerkingen

Jenkins is een open source continue integratietool geschreven in Java. Het project werd gesplitst van Hudson na een geschil met Oracle .

Jenkins biedt continue integratiediensten voor softwareontwikkeling. Het is een servergebaseerd systeem dat wordt uitgevoerd in een servlet-container zoals Apache Tomcat. Het ondersteunt SCM-tools zoals AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase en RTC, en kan op Apache Ant en Apache Maven gebaseerde projecten uitvoeren, evenals willekeurige shellscripts en Windows batchopdrachten. De primaire ontwikkelaar van Jenkins is Kohsuke Kawaguchi . Jenkins is uitgebracht onder de MIT-licentie en is gratis software.

Builds kunnen op verschillende manieren worden gestart, waaronder door trigger te worden geactiveerd in een versiebeheersysteem, door te plannen via een cron-achtig mechanisme, door te bouwen wanneer andere builds zijn voltooid en door een specifieke build-URL aan te vragen.

versies

Jenkins

Versie Publicatiedatum
1.656 2016/04/03
2.0 2016/04/20

Jenkins 1.x vs Jenkins 2.x

Jenkins is (en is nog steeds) een systeem voor continue integratie (CI) waarmee softwareontwikkelingsprocessen kunnen worden geautomatiseerd, zoals het bouwen van code op SCM-committriggers. De groeiende behoefte aan continue levering (CD) heeft echter gevraagd dat Jenkins evolueert naar een puur CI-systeem naar een mix van CI en CD. Ook groeit de behoefte om Jenkins-banen te de-industrialiseren en zijn de klassieke Jenkins 1.x Freestyle/Maven jobs te beperkt voor bepaalde behoeften.

Onder Jenkins 1.xa bleek een plug-in genaamd workflow-plugin in waarmee ontwikkelaars code konden schrijven om taken te beschrijven. Jenkins 2 gaat verder door ingebouwde ondersteuning voor Pipeline as Code toe te voegen Pipeline as Code . Het belangrijkste voordeel is dat pijplijnen, Groovy-scriptbestanden, complexer kunnen zijn dan door de UI geconfigureerde freestyle-taken en versiebeheer kunnen zijn. Jenkins 2 voegt ook een nieuwe interface toe die het gemakkelijk maakt om verschillende "fasen" die in een pijplijn zijn gedefinieerd, te visualiseren en de voortgang van de hele pijplijn te volgen, zoals hieronder:

voer hier de afbeeldingsbeschrijving in

Raadpleeg Jenkins 2 Overzicht voor een volledig overzicht van wat Jenkins 2 toevoegt aan Jenkins.

Ook is de volledige changelog beschikbaar op de Jenkins-website.

Configureer een project in Jenkins

Hier zullen we de laatste kopie van de code van ons project bekijken, de tests uitvoeren en de applicatie live maken. Om dat te bereiken, volg onderstaande stappen:

  1. Open Jenkins in de browser.
  2. Klik op de link Nieuwe taak .
  3. Voer de projectnaam in en selecteer de link Build a free-style software project .
  4. Klik op OK .
  5. Selecteer in het gedeelte Broncodebeheer het keuzevak naast uw broncodebeheertool. In mijn geval heb ik Git geselecteerd.

Geef de url van git repo op, zoals git://github.com/example/example.git

  1. Onder de Build-triggers selecteert u het keuzevak naast Poll SCM .
  2. Geef ***** in het vak Planning . Deze box is verantwoordelijk voor het regelmatig activeren van de build. ***** geeft aan dat de taak elke minuut wordt geactiveerd voor wijzigingen in git repo.
  3. Klik in de sectie Build op de knop Build-stap toevoegen en selecteer vervolgens de optie waarmee u het project wilt bouwen. Ik heb Shell uitvoeren geselecteerd. In het opdrachtvak schrijft u de opdracht om te bouwen, voert u de tests uit en implementeert u deze als prod.
  4. Scroll naar beneden en sla op .

Dus hierboven hebben we een basisproject in Jenkins geconfigureerd dat elke minuut de build activeert voor verandering in je git-repository. Opmerking: om het complexe project in te stellen, moet u mogelijk enkele plug-ins in Jenkins installeren.

Configureer een eenvoudig build-project met Jenkins 2 pipeline-script

Hier zullen we een Groovy-pijplijn in Jenkins 2 maken om de volgende stappen te doen:

  • Controleer elke 5 minuten of er nieuwe code is toegewezen aan ons project
  • Afrekencode van SCM repo
  • Maven compileert van onze Java-code
  • Voer onze integratietests uit en publiceer de resultaten

Dit zijn de stappen die we zullen uitvoeren:

  1. Zorg ervoor dat we ten minste een 2.0 Jenkins-versie hebben (u kunt dit controleren in de rechteronderhoek van uw pagina), zoals:

    Voorbeeld van Jenkins-versie vastleggen

  2. Klik op de startpagina van Jenkins op Nieuw item

  3. Voer de projectnaam in en selecteer Pijplijn

  4. Selecteer in de sectie Build Triggers Poll SCM- optie en voeg het volgende CRON-schema van 5 minuten toe: */5 * * * *

  5. In Pipeline sectie, kiest u Pipeline Script of Pipeline Script van SCM

  6. Als u in de vorige stap Pipeline Script van SCM hebt geselecteerd, moet u nu uw SCM-repository-URL (Git, Mercurial, Subversion) in Repository-URL opgeven , zoals http://github.com/example/example.git . Je moet ook de Script pad van je Groovy script bestand op te geven in uw example.git repository, bijvoorbeeld pipelines/example.groovy

  7. Kopieer de volgende Groovy-code, rechtstreeks in het Groovy-scriptvenster als u eerder op Pipeline Script hebt geklikt of in uw example.groovy . Groovy als u Pipeline Script hebt gekozen uit SCM

node('remote') {
    // Note : this step is only needed if you're using direct Groovy scripting
    stage 'Checkout Git project'
    git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
    def appVersion = version()
    if (appVersion) {
        echo "Building version ${appVersion}"
    }

    stage 'Build Maven project'
    def mvnHome = tool 'M3'
    sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
    step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
def version() {
    def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
    matcher ? matcher[0][1] : null
}
 

Hier is het, je zou nu je eerste Jenkins-project moeten kunnen compileren en testen met behulp van de Jenkins 2 Groovy-pijplijn.

Installatie

Voor op apt-get gebaseerde systemen zoals Ubuntu

Voeg de Jenkins-repository toe:

wget -q -O - https://jenkins-ci.org/debian/ Jenkins-ci.org.key | sudo apt-key

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
 

Update bronnen en installeer Jenkins:

sudo apt-get update

sudo apt-get install jenkins

Er is nu een jenkins-gebruiker gemaakt en standaard wordt Jenkins op poort 8080 uitgevoerd.

Voor op RPM gebaseerde distributies zoals Red Hat Enterprise Linux (RHEL), CentOS, Fedora of Scientific Linux

Om het repository-bestand voor de stabiele versie te downloaden:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo

Of als u de nieuwste wekelijkse releases wilt:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

Importeer de publieke sleutel:

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Installeer Jenkins met yum:

sudo yum install jenkins

Jenkins vereist Java om het te kunnen uitvoeren, om het te installeren:

sudo yum install java

Gebruik jenkins om te starten / stoppen / herstarten:

sudo service jenkins start/stop/restart

Jenkins upgraden (RPM-installaties)

  1. Backup jenkins home directory
  2. Vervang jenkins.war op de volgende locatie door een nieuw WAR-bestand. / Usr / lib / Jenkins / jenkins.war`
  3. Start Jenkins opnieuw
  4. Controleer vastgezette plug-ins en maak los indien nodig
  5. Configuratie opnieuw laden vanaf schijf

opmerking: schakel voor Jenkins 2-upgrades voor de gebundelde jetty-app-server de AJP-poort uit (set JENKINS_AJP_PORT="-1" ) in /etc/sysconfig/jenkins .

Plugin installeren vanaf externe bron

java -jar [Path to client JAR] -s [Server address] install-plugin [Plugin ID]
 

De JAR van de client moet het CLI JAR-bestand zijn, niet dezelfde JAR / WAR die Jenkins zelf uitvoert. Unieke ID's zijn te vinden op de respectieve pagina van plug-ins op de Jenkins CLI wiki ( https://wiki.jenkins-ci.org/display/JENKINS/Plugins)

Jenkins volledige introductie op één plek

1. Jenkins:

Jenkins is een open source continue integratietool geschreven in Java. Het project werd gesplitst van Hudson na een geschil met Oracle.

Kortom, Jenkins is de toonaangevende open source automatiseringsserver. Het is gebouwd met Java en biedt honderden plug-ins voor het bouwen, testen, implementeren en automatiseren voor vrijwel elk project.

Kenmerken: Jenkins biedt de volgende belangrijke functies uit de doos, en nog veel meer kunnen worden toegevoegd via plug-ins:

Eenvoudige installatie: voer gewoon java -jar jenkins.war uit, implementeer het in een servlet-container. Geen extra installatie, geen database. Liever een installatieprogramma of native pakket? Wij hebben die ook. Eenvoudige configuratie: Jenkins kan volledig worden geconfigureerd vanuit de gebruiksvriendelijke web-GUI met uitgebreide foutcontroles en inline-help. Rijke plug-in ecosysteem: Jenkins integreert met vrijwel elke SCM of build-tool die bestaat. Bekijk plug-ins. Uitbreidbaarheid: de meeste delen van Jenkins kunnen worden uitgebreid en aangepast, en het is eenvoudig om nieuwe Jenkins-plug-ins te maken. Hiermee kunt u Jenkins aanpassen aan uw behoeften. Gedistribueerde builds: Jenkins kan build- / testbelastingen distribueren naar meerdere computers met verschillende besturingssystemen. Software bouwen voor OS X, Linux en Windows? Geen probleem.

Installatie:

$ wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

$ sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins
to do more refer link :
 

Ref: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

Ref: http://www.vogella.com/tutorials/Jenkins/article.html

Ref: https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

JENKINS_HOME directory Jenkins heeft wat schijfruimte nodig om builds uit te voeren en archieven te bewaren. U kunt deze locatie controleren vanuit het configuratiescherm van Jenkins. Standaard is dit ingesteld op ~ / .jenkins, maar u kunt dit op een van de volgende manieren wijzigen: Stel de omgevingsvariabele "JENKINS_HOME" in op de nieuwe basismap voordat u de servlet-container start. Stel de systeemeigenschap "JENKINS_HOME" in op de servlet-container. Stel het JNDI-omgevingsitem "JENKINS_HOME" in op de nieuwe map. Zie de containerspecifieke documentatie voor meer informatie over hoe u dit voor uw container kunt doen. Je kunt deze locatie ook wijzigen nadat je Jenkins een tijdje hebt gebruikt. Hiertoe stopt u Jenkins volledig, verplaatst u de inhoud van de oude JENKINS_HOME naar het nieuwe huis, stelt u de nieuwe JENKINS_HOME in en start u Jenkins opnieuw. JENKINS_HOME heeft een vrij voor de hand liggende mappenstructuur die er als volgt uitziet:

JENKINS_HOME

+- config.xml     (jenkins root configuration)
 +- *.xml          (other site-wide configuration files)
 +- userContent    (files in this directory will be served under your http://server/userContent/)
 +- fingerprints   (stores fingerprint records)
 +- plugins        (stores plugins)
 +- workspace (working directory for the version control system)
     +- [JOBNAME] (sub directory for each job)
 +- jobs
     +- [JOBNAME]      (sub directory for each job)
         +- config.xml     (job configuration file)
         +- latest         (symbolic link to the last successful build)
         +- builds
             +- [BUILD_ID]     (for each build)
                 +- build.xml      (build result summary)
                 +- log            (log file)
                 +- changelog.xml  (change log)
 

Jenkins Build Jobs:

Het maken van een nieuwe build-taak in Jenkins is eenvoudig: klik op het menu-item "Nieuwe taak" op het Jenkins-dashboard. Jenkins ondersteunt verschillende soorten bouwopdrachten, die aan u worden gepresenteerd wanneer u ervoor kiest een nieuwe opdracht te maken

Freestyle softwareproject

Freestyle build-jobs zijn algemene build-jobs die maximale flexibiliteit bieden.

Maven-project Het "maven2 / 3-project" is een bouwopdracht die speciaal is aangepast aan Maven-projecten. Jenkins begrijpt Maven pom-bestanden en projectstructuren en kan de informatie uit het pom-bestand gebruiken om het werk te verminderen dat u moet doen om uw project op te zetten.

workflow

Orkest langlopende activiteiten die meerdere build-slaves kunnen omvatten. Geschikt voor het bouwen van pijpleidingen en / of het organiseren van complexe activiteiten die niet gemakkelijk passen in het vrije type opdracht.

Een externe taak bewaken Met de build-taak “Een externe taak bewaken” kunt u niet-interactieve processen, zoals cron-taken, in de gaten houden.

Multiconfiguratieopdracht Met het "multiconfiguratieproject" (ook wel een "matrixproject" genoemd) kunt u dezelfde buildopdracht uitvoeren in veel verschillende configuraties. Deze krachtige functie kan nuttig zijn voor het testen van een toepassing in veel verschillende omgevingen, met verschillende databases, of zelfs op verschillende build-machines.

1. Een softwareproject bouwen (gratis stijl)

Jenkins kan worden gebruikt om het typische build-serverwerk uit te voeren, zoals doorlopende / officiële / nachtelijke builds, tests uitvoeren of enkele repetitieve batchtaken uitvoeren. Dit wordt "free-style software project" in Jenkins genoemd. Het project instellen Ga naar de bovenste pagina van Jenkins, selecteer "Nieuwe taak" en kies vervolgens "Bouw een gratis softwareproject". Dit taaktype bestaat uit de volgende elementen: optionele SCM, zoals CVS of Subversion waar uw broncode zich bevindt. optionele triggers om te bepalen wanneer Jenkins builds uitvoert. een soort build-script dat de build uitvoert (ant, maven, shell-script, batchbestand, etc.) waarbij het echte werk gebeurt optionele stappen om informatie uit de build te verzamelen, zoals het archiveren van de artefacten en / of het opnemen van javadoc en test resultaten. optionele stappen om andere mensen / systemen op de hoogte te stellen van het buildresultaat, zoals het verzenden van e-mails, IM's, het bijwerken van issue-tracker, etc.

Builds voor niet-broncontroleprojecten Soms is het nodig om een project te bouwen gewoon voor demonstratiedoeleinden of is toegang tot een SVN / CVS-repository niet beschikbaar. Door te kiezen om het project te configureren als "Geen" onder "Broncodebeheer", moet u:

  1. Bouw het project minimaal één keer (het zal mislukken), maar Jenkins maakt de structuur jenkins / workspace / PROJECTNAME /
  2. Kopieer de projectbestanden naar jenkins / workspace / PROJECTNAME /
  3. Bouw opnieuw en configureer op de juiste manier

Jenkins Set Environment Variables

Wanneer een Jenkins-taak wordt uitgevoerd, worden enkele omgevingsvariabelen ingesteld die u kunt gebruiken in uw shellscript, batchopdracht, Ant-script of Maven POM. Bekijk de lijst met variabelen door op ENVIRONMENT_VARIABLE te klikken

Automatische builds configureren

Builds in Jenkins kunnen periodiek worden geactiveerd (volgens een schema, gespecificeerd in configuratie), of wanneer bronwijzigingen in het project zijn gedetecteerd, of ze kunnen automatisch worden geactiveerd door de URL aan te vragen:

http: // yourhost / Jenkins / werk / PROJECTNAME / build

Hiermee kunt u Jenkins-builds aansluiten op verschillende opstellingen. Zie API voor externe toegang voor meer informatie (met name als dit is ingeschakeld met beveiliging ingeschakeld).

Bouwt op bronwijzigingen

U kunt Jenkins uw Revision Control-systeem laten controleren op wijzigingen. U kunt opgeven hoe vaak Jenkins uw revisiecontrolesysteem peilt met dezelfde syntaxis als crontab op Unix / Linux. Als uw pollingperiode echter korter is dan nodig is om uw revisiecontrolesysteem te pollen, kunt u voor elke wijziging meerdere builds krijgen. Je moet je polling-periode aanpassen zodat deze langer is dan de tijd die nodig is om je revisiecontrolesysteem te pollen, of een trigger na het vastleggen gebruiken. U kunt het peilingslogboek voor elke build bekijken om te zien hoe lang het heeft geduurd om uw systeem te pollen.

Als alternatief kunt u in plaats van polling met een vast interval een URL-trigger gebruiken (hierboven beschreven), maar met / polling in plaats van / build aan het einde van de URL. Dit zorgt ervoor dat Jenkins de SCM peilt voor wijzigingen in plaats van meteen te bouwen. Dit voorkomt dat Jenkins een build uitvoert zonder relevante wijzigingen voor commits die van invloed zijn op modules of branches die geen verband houden met de taak. Bij gebruik / pollen moet de taak worden geconfigureerd voor pollen, maar het schema kan leeg zijn.

Bouwt per e-mail (sendmail)

Als je het root-account van je systeem hebt en je gebruikt sendmail, vond ik het het gemakkelijkst om / etc / aliases te tweaken en het volgende item toe te voegen: jenkins-foo: "| / bin / wget -o / dev / null

http: // YOURHOST / jenkins / job / PROJECTNAME / build "

en voer vervolgens de opdracht "newaliases" uit om sendmail op de hoogte te brengen van de wijziging. Wanneer iemand een e-mail stuurt naar "jenkins-foo @ yoursystem", wordt een nieuwe build geactiveerd. Zie dit voor meer informatie over het configureren van sendmail. Bouwt via e-mail (qmail) Met qmail kunt u /var/qmail/alias/.qmail-jenkins als volgt schrijven: | / bin / wget -o / dev / null http: // YOURHOST / jenkins / job / PROJECTNAME / build "

2. Een Maven-project bouwen

Jenkins biedt een jobtype aan Maven 2/3. Dit taaktype integreert Jenkins diep met Maven 2/3 en biedt de volgende voordelen in vergelijking met het meer generieke gratis softwareproject.

Jenkins ontleedt Maven POM's om veel van de informatie te verkrijgen die nodig is om zijn werk te doen. Als gevolg hiervan wordt de hoeveelheid configuratie drastisch verminderd.

Jenkins luistert naar de uitvoering van Maven en zoekt uit wat er alleen moet worden gedaan. Het registreert bijvoorbeeld automatisch het JUnit-rapport wanneer Maven de testfase uitvoert. Of als u het javadoc-doel uitvoert, neemt Jenkins automatisch javadoc op.

Jenkins maakt automatisch projectafhankelijkheden tussen projecten die SNAPSHOT-afhankelijkheden onderling aangeven. Zie hieronder. Dus meestal hoeft u alleen SCM-informatie te configureren en welke doelen u wilt uitvoeren, en Jenkins zal al het andere uitzoeken.

Dit projecttype kan automatisch de volgende functies bieden:

Archiefartefacten geproduceerd door een build

Publiceer testresultaten

Activeer banen voor projecten die stroomafwaarts afhankelijk zijn

Implementeer uw artefacten in een Maven-repository

Breakout-testresultaten per module

Optioneel herbouwen alleen gewijzigde modules, waardoor uw builds worden versneld

Automatische build chaining van module afhankelijkheden

Jenkins leest afhankelijkheden van uw project van uw POM, en als ze ook op Jenkins zijn gebouwd, worden triggers zo ingesteld dat een nieuwe build in een van die afhankelijkheden automatisch een nieuwe build van uw project start. Jenkins begrijpt allerlei afhankelijkheden in POM. Namelijk ouder POM

<dependencies> section of your project
<plugins> section of your project
<extensions> section of your project
<reporting> section of your project
 

Dit proces houdt rekening met versies, dus je kunt meerdere versies / branches van je project op dezelfde Jenkins hebben en het zal afhankelijkheden correct bepalen. Merk op dat versiegevers van afhankelijkheid niet worden ondersteund, zie [ https://issues.jenkins-ci.org/browse/JENKINS-2787

Deze functie kan op verzoek worden uitgeschakeld - zie configuratieoptie Build telkens wanneer een SNAPSHOT-afhankelijkheid wordt gebouwd

Installatie:

1. ga naar Jenkins beheren >> configureer Systeem

  1. in maven tab “Klik op maven installatie ......

Je kunt Jenkins krijgen om een specifieke versie van Maven automatisch te installeren, of een pad naar een lokale Maven-installatie opgeven (je kunt zoveel versies van Maven configureren voor je build-projecten als je wilt, en verschillende versies van Maven gebruiken voor verschillende projecten. Als u het selectievakje Automatisch installeren aanvinkt, downloadt en installeert Jenkins de gevraagde versie van Maven voor u en installeert deze in de map met hulpprogramma's in de thuismap van Jenkins.

Hoe te gebruiken

Eerst moet u een Maven-installatie configureren (deze stap kan worden overgeslagen als u DEV @ cloud gebruikt). Dit kunt u doen door naar het systeemconfiguratiescherm te gaan (Beheer Jenkins-> Systeem configureren). In het gedeelte "Maven-installaties", 1) klik op de knop Toevoegen, 2) geef het een naam zoals "Maven 3.0.3" en vervolgens 3) kies de versie uit de vervolgkeuzelijst.

Nu zal Jenkins deze versie automatisch installeren wanneer het nodig is (bijvoorbeeld op nieuwe machines) door deze te downloaden van Apache en uit te pakken.

Maak een nieuwe Maven-taak:

  1. Klik links op "Nieuwe taak / nieuw item"
  2. Geef het een naam
  3. Kies het "Build a Maven 2/3 project"
  4. Sla je baan op

Nu moet u uw taak configureren

  1. Kies de SCM die je wilt gebruiken (bijv. Git gebruiken)

  2. kies maven target om te bellen

  3. voeg repository-URL en referenties toe.

  4. check user private maven repo:

U kunt ook het aangepaste pad voor hetzelfde definiëren.

5. Bouw project

Bouw uw project door te klikken op Nu bouwen en klik op de voortgangsbalk in de linkerhand “Build Executor Status” om te zien hoe jenkins Maven installeren, uw project afrekenen en het bouwen met maven.

logging:

https://wiki.jenkins-ci.org/display/JENKINS/Logging

Scriptconsole:

Handig voor het oplossen van problemen, diagnostiek of batchupdates van taken. Jenkins biedt een scriptconsole die u toegang geeft tot alle Jenkins-internals. Deze scripts zijn geschreven in Groovy en u vindt enkele voorbeelden ervan op deze pagina .

Verplaats Jenkins van de ene pc naar de andere

Dit werkte voor mij om van Ubuntu 12.04 (Jenkins ver. 1.628) naar Ubuntu 16.04 (Jenkins ver. 1.651.2) te gaan. Ik installeerde eerst Jenkins vanuit de repositories .

  1. Stop beide Jenkins-servers

  2. Kopieer JENKINS_HOME (bijv. / Var / lib / jenkins) van de oude server naar de nieuwe. Van een console in de nieuwe server:

    rsync -av username@old-server-IP:/var/lib/jenkins/ /var/lib/jenkins/

  3. Start uw nieuwe Jenkins-server

Je hebt dit misschien niet nodig, maar ik moest wel

  • Manage Jenkins en Reload Configuration from Disk .
  • Koppel alle slaves los en sluit ze opnieuw aan.
  • Controleer of in de Configure System > Jenkins Location , de Jenkins URL correct is toegewezen aan de nieuwe Jenkins-server.

Nginx Proxy instellen

Jenkins werkt standaard op poort 8080. We kunnen een proxy instellen van poort 80 -> 8080 zodat Jenkins toegankelijk is via:

http://<url>.com
 

in plaats van de standaard

http://<url>.com:8080
 

Begin met het installeren van Nginx.

sudo aptitude -y install nginx

Verwijder de standaardinstellingen voor Nginx

cd /etc/nginx/sites-available

sudo rm default ../sites-enabled/default

Maak het nieuwe configuratiebestand

sudo touch jenkins

Kopieer de volgende code in het nieuw gemaakte jenkins bestand.

upstream app_server {
  server 127.0.0.1:8080 fail_timeout=0;
}

server {
  listen 80;
  listen [::]:80 default ipv6only=on;
  server_name ;

  location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (!-f $request_filename) {
        proxy_pass http://app_server;
        break;
    }
  }
}
 

Maak een symbolische link tussen sites beschikbaar en sites ingeschakeld:

sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/

Start de Nginx-proxyservice opnieuw

sudo service nginx restart

Jenkins zal nu toegankelijk zijn vanaf poort 80.