Organisaties nemen steeds vaker Jenkins in gebruik om hun bouw- en testprocessen te automatiseren, waardoor het handmatig beheren van Jenkins-taken moeilijk wordt. Het goede nieuws is dat de Jenkins DSL-plugin u in staat stelt Jenkins-taken te definiëren in een domeinspecifieke taal (DSL)-syntax.
Jenkins DSL maakt het mogelijk om taken op te slaan in versiebeheersystemen, ze te delen met andere gebruikers en nieuwe taken te genereren uit sjablonen. En in deze tutorial leert u hoe u gebruik kunt maken van de Jenkins DSL-plugin om te helpen bij het automatiseren van de ontwikkeling van applicaties.
Lees verder, zodat u nooit meer door de Jenkins-gebruikersinterface hoeft te klikken om een taak omslachtig te maken!
Vereisten
Deze tutorial zal een praktische demonstratie zijn. Als u wilt volgen, zorg er dan voor dat u het volgende heeft.
- A Linux machine – This guide uses Ubuntu 20.04.
- Pipeline: Taak om de Pipeline-suite van plugins toe te voegen die worden gebruikt om continue leveringspipelines te implementeren en te integreren in Jenkins.
- Pipeline: Groovy voor de mogelijkheid om Groovy-code rechtstreeks uit te voeren.
Het installeren van de Jenkins DSL-plugin
Het handhaven van consistentie tussen taken kan moeilijk zijn, maar de Jenkins DSL-plugin lost dit probleem op. Hoe? Door je in staat te stellen taken te definiëren in een programmatische vorm, in een menselijk leesbaar bestand.
Maar voordat je taken gaat maken, moet je eerst de Jenkins DSL-plugin installeren:
1. SSH naar je Jenkins-server en voer de volgende opdracht uit om te controleren of je de vereiste versie van Java hebt geïnstalleerd en of de Jenkins-service draait.
Je bent helemaal klaar om de Jenkins DSL-plugin te installeren als je een uitvoer ziet die vergelijkbaar is met de onderstaande.

2. Open vervolgens je favoriete webbrowser en ga naar http://je_server_ip:8080/pluginManager/available. Vervang je_server_ip:8080 door het werkelijke IP-adres en poortnummer van je Jenkins-server.
3. Installeer tot slot de Jenkins DSL-plugin met het volgende:
- Zoals hieronder wordt getoond, typ Job DSL in het zoekvak rechtsboven.
Als je de Job DSL-plugin al hebt geïnstalleerd en geüpgraded vanaf een oudere versie, zullen de Job DSL-scripts niet verschijnen in de lijst bij het zoeken naar Job DSL. Je kunt naar http://je_server_ip:8080/pluginManager/installed navigeren om te controleren of de plugin Job DSL daar is geïnstalleerd.
- Vink het selectievakje naast de Job DSL-optie aan.
- Klik onderaan op Installeren zonder opnieuw opstarten om de Jenkins Job DSL-plugin te installeren.

De Jenkins UI toont je een voortgangsbalk tijdens het installeren van de plugin. Zodra de installatie is voltooid, zie je de succesberichten zoals hieronder.

Het maken van een Jenkins Seed Job met behulp van de Jenkins DSL-plugin
Nu je de Jenkins DSL-plugin hebt geïnstalleerd, kun je vrijelijk een Jenkins seed job maken. Schrijf een eenvoudig Job DSL-script en voeg het script toe aan een Jenkins seed job. Je zult een freestyle job maken die een ‘Hallo wereld!’ bericht naar de Jenkins-console print.
Om een Job DSL-script op te nemen in een Jenkins seed-job:
1. Ga naar je Jenkins-dashboard en klik op ‘Nieuw item’ in de linker zijbalk. Je browser leidt je om naar een pagina waar je een nieuw item kunt aanmaken (stap twee).

2. Maak vervolgens een nieuw item aan met het volgende:
- Voer een itemnaam in, zoals hieronder weergegeven. Maar de itemnaam is in deze tutorial ingesteld op seed.
- Selecteer Freestyle-project (een herhaalbare buildjob, script of pijplijn) uit de opties hieronder.
- Klik onderaan op OK om het nieuwe item aan te maken, en je browser leidt je om naar de configuratiepagina van het nieuwe item.

3. Behoud de standaardinstellingen voor alle andere secties op de configuratiepagina van het nieuwe item.
Scroll naar beneden naar de sectie Build, klik op de vervolgkeuzeknop ‘Voeg buildstap toe’ en selecteer ‘Verwerk Job DSLs’. Hiermee opent een optie waar je een DSL-script zult verstrekken (stap vier).

4. Selecteer nu de optie ‘Gebruik het verstrekte DSL-script’, zoals hieronder weergegeven, en vul het volgende codeblok in het veld in.
Dit codeblok is een definitie van een freestyle job met de naam jenkins-job-demo-1 die de shell-stap gebruikt om een “Hallo wereld”-bericht af te drukken. De naam van de job is wat verschijnt in de Jenkins-UI.
Er zijn veel beschikbare methoden om verschillende soorten Jenkins-taken te maken, die je kunt vinden in de officiële documentatie.

5. Klik onderaan de pagina op Opslaan om de configuratie voor het nieuwe item (seed) op te slaan.

6. Ga tot slot naar je Jenkins-dashboard om te controleren of de seedtaak die je hebt gemaakt, bestaat, zoals hieronder wordt weergegeven.

Het uitvoeren van een seedtaak
Je hebt met succes de seedtaak gemaakt en geverifieerd. Maar hoe weet je of de taak werkt? Je zult de seedtaak uitvoeren tegen het DSL-script dat je hebt opgegeven in stap vier van de sectie “Het maken van een Jenkins Seed-taak met behulp van de Jenkins DSL-plug-in”.
1. Klik op je Jenkins-dashboard op de seedtaak om naar de configuratiepagina te gaan.

2. Klik vervolgens op Nu bouwen in de linker zijbalk om de taak uit te voeren.

3. Druk op F5 om de pagina te vernieuwen. Je ziet een nieuwe build verschijnen onder de sectie Buildgeschiedenis met een successtatus (groen vinkje) linksonder, zoals hieronder weergegeven.
Deze output geeft aan dat de seedtaak met succes is uitgevoerd, waardoor een nieuwe Jenkins-taak (jenkins-job-demo-1) is gemaakt onder de sectie Gegenereerde items.

4. Ga nu naar je Jenkins-dashboard. Zoals hieronder getoond, zie je de nieuwe Jenkins-taak (jenkins-job-demo-1) gemaakt door de seedtaak.
Klik op de nieuw gegenereerde taak om toegang te krijgen tot de configuratiepagina.

5. Klik op Nu bouwen om de gegenereerde taak (jenkins-job-demo-1) uit te voeren.

6. Klik ten slotte op de pijl-omlaagknop naast de succesvolle build onder de sectie Buildgeschiedenis, zoals hieronder weergegeven. Kies Console-uitvoer uit het contextmenu om de uitvoer van de taak te bekijken.

Als de gegenereerde taak werkt, ziet u het bericht Hallo wereld! Deze taak werkt!!, zoals hieronder weergegeven, wat het bericht is dat u hebt gedefinieerd in het Job DSL-script.
Op dit punt heeft u met succes een Jenkins-taak gemaakt en uitgevoerd met behulp van de Job DSL-plugin!

Het maken van een taak voor een CI/CD-pijplijn met behulp van de Jenkins DSL-plugin
Tot nu toe hebt u geleerd hoe u een Jenkins-freestyle-taak kunt maken en uitvoeren met behulp van de Job DSL-plugin. U automatiseert het niet-menselijke deel van het softwareontwikkelingsproces door een Jenkins-taak te maken voor een CI/CD-pijplijn.
Specifiek zult u een taak maken die code ophaalt uit een GitHub-opslagplaats, de code bouwt en de unit tests uitvoert.
Om een Jenkins-taak te maken voor de CI/CD-pijplijn:
1. Ga naar http://uw_server_ip:8080/job/seed/configure in uw webbrowser om uw seed-taak te configureren. Vervang uw_server_ip door het IP-adres van uw Jenkins-server, en vervang seed door de naam van uw taak.
2. Scroll vervolgens naar beneden naar de sectie Build, zoek het veld DSL-scripts en vervang de bestaande inhoud door de volgende code.
Klik op Opslaan zodra u de code hebt toegevoegd om de wijzigingen op te slaan.

3. Klik op Nu bouwen in de linkerkolom op het volgende scherm om de seed-taak opnieuw uit te voeren, zoals hieronder wordt getoond. Onder de sectie Bouwgeschiedenis (linksonder) ziet u dat de seed-taak succesvol is uitgevoerd.
Klik op de nieuwe build (#2) om toegang te krijgen tot de configuratiepagina van de build.

4. Navigeer nu naar de Console-uitvoer van de nieuwe build. U ziet een toegevoegde items bericht en de naam van de nieuwe taak, zoals hieronder wordt getoond.
Deze uitvoer geeft aan dat de nieuwe pipeline-taak succesvol is toegevoegd.

5. Ga terug naar het Jenkins-dashboard en u ziet dat de nieuwe pipeline-taak (jenkins-job-demo-2) aan de lijst met taken is toegevoegd. Klik op die nieuwe pipeline-taak om toegang te krijgen tot de configuratiepagina van de taak.

6. Klik tot slot op Nu bouwen om de nieuwe pipeline-taak uit te voeren. U zult zien dat de taak succesvol is uitgevoerd, zoals aangegeven onder de sectie Bouwgeschiedenis.
Klik op de keuzepijl naast de taak en selecteer Console-uitvoer.

In de Console-uitvoer hieronder kunt u de uitvoer van de taak zien, dat Jenkins met succes het repository heeft gekloond, de code heeft gebouwd en de unit tests heeft uitgevoerd.

Conclusie
In deze tutorial heb je geleerd hoe je Jenkins-taken kunt maken met de Job DSL-plugin. Je hebt aangeraakt hoe je de ontwikkeling van applicaties kunt verbeteren door een CI/CD-pijplijn te maken met de Jenkins Pipeline-plugin.
De Job DSL-plugin en de Jenkins Pipeline-plugin werken zij aan zij om een krachtige manier te bieden waarmee je Jenkins-taken en build-pipelines kunt beheren. Waarom configureer je deze plugins niet om sophisticated build pipelines te creëren die automatisch Jenkins-taken starten als onderdeel van het buildproces?