Jenkins vejledning | Kontinuerlig integration ved hjælp af Jenkins | Edureka



Jenkins Tutorial er den anden blog i Jenkins blog-serie. Denne blog taler om Jenkins distribuerede arkitektur og hvordan man opretter en build ved hjælp af Jenkins.

Jenkins vejledning

Jenkins er et af de vigtigste værktøjer i . Jeg håber, du har læst min tidligere blog den . I denne Jenkins tutorial blog vil jeg fokusere på Jenkins arkitektur og Jenkins bygge pipeline sammen med at jeg vil vise dig, hvordan du opretter en build i Jenkins.

Før vi fortsætter med Jenkins Tutorial, er de vigtigste takeaways fra den forrige blog:





  • Jenkins bruges til at integrere alle DevOps-faser ved hjælp af plugins.
  • Almindeligt anvendte Jenkins-plugins er Git, Amazon EC2, Maven 2-projekt, HTML-udgiver osv.
  • Jenkins har godt over 1000 plugins og147.000 aktive installationer sammen med over 1 million brugere over hele verden.
  • Med kontinuerlig integration hver ændring foretaget i kildekodenerbygget. Det udfører også andre funktioner,det afhænger af det værktøj, der bruges til kontinuerlig integration.
  • Nokia skiftede fra Nightly build til Continuous Integration.
  • Processen før kontinuerlig integration havde mange mangler. Som et resultat var ikke kun softwareleveringen langsom, men kvaliteten af ​​softwaren var heller ikke op til mærket. Udviklere havde også en hård tid med at lokalisere og rette fejl.
  • Kontinuerlig integration med Jenkins overvinde disse mangler ved kontinuerligt at udløse en build og test for enhver ændring foretaget i kildekoden.

Det er nu det rigtige tidspunkt at forstå Jenkins arkitektur.

Jenkins Arkitektur

Lad os revidere den enkeltstående Jenkins-arkitektur, som jeg har forklaret dig i , nedenstående diagram viser det samme.



Jenkins Standalone Architecture - Hvad er Jenkins - Edureka

Denne eneste Jenkins-server var ikke nok til at opfylde visse krav som:

  • Nogle gange har du muligvis brug for flere forskellige miljøer for at teste dine builds. Dette kan ikke gøres af en enkelt Jenkins-server.
  • Hvis større og tungere projekter bliver bygget regelmæssigt, kan en enkelt Jenkins-server ikke bare håndtere hele belastningen.

For at imødekomme ovennævnte behov blev Jenkins distribuerede arkitektur introduceret.



Jenkins Distribueret Arkitektur

Jenkins bruger en Master-Slave-arkitektur til at styre distribuerede builds. I denne arkitektur kommunikerer Master og Slave via TCP / IP-protokol.

Jenkins Master

Din vigtigste Jenkins-server er mesteren. Mesterens job er at håndtere:

  • Planlægning af job.
  • Afsendelse bygger til slaverne for den faktiske udførelse.
  • Overvåg slaverne (eventuelt tage dem online og offline efter behov).
  • Optagelse og præsentation af buildresultaterne.
  • En masterinstans af Jenkins kan også udføre byggejob direkte.

Jenkins Slave

En slave er en eksekverbar Java, der kører på en fjernmaskine. Følgende er egenskaberne ved Jenkins Slaves:

  • Det hører anmodninger fra Jenkins Master-instansen.
  • Slaver kan køre på en række forskellige operativsystemer.
  • Slavernes opgave er at gøre, som de får besked på, hvilket indebærer udførelse af byggejob sendt af mesteren.
  • Du kan konfigurere et projekt til altid at køre på en bestemt slave-maskine eller en bestemt type slave-maskine eller blot lade Jenkins vælge den næste tilgængelige slave.

Diagrammet nedenfor er selvforklarende. Den består af en Jenkins Master, der administrerer tre Jenkins Slave.

Lad os nu se på et eksempel, hvor Jenkins bruges til test i forskellige miljøer som: Ubuntu, MAC, Windows osv.

Diagrammet nedenfor repræsenterer det samme:

algoritmer og datastrukturer i java

Følgende funktioner udføres i ovenstående billede:

  • Jenkins kontrollerer Git-arkivet med periodiske intervaller for eventuelle ændringer i kildekoden.
  • Hver build kræver et andet testmiljø, hvilket ikke er muligt for en enkelt Jenkins-server. For at udføre test i forskellige miljøer bruger Jenkins forskellige slaver som vist i diagrammet.
  • Jenkins Master beder disse slaver om at udføre test og generere testrapporter.

Jenkins Build Pipeline

Det bruges til at vide, hvilken opgave Jenkins i øjeblikket udfører. Ofte foretages flere forskellige ændringer af flere udviklere på én gang, så det er nyttigt at vide, hvilken ændring der bliver testet, eller hvilken ændring der sidder i køen, eller hvilken build der er brudt. Det er her, rørledningen kommer ind i billedet. Jenkins Pipeline giver dig et overblik over, hvor test er op til. I build-rørledningen er build som helhed opdelt i sektioner, såsom enhedstest, accepttest, emballage, rapportering og implementeringsfaser. Rørledningsfaserne kan udføres i serie eller parallelt, og hvis en fase lykkes, går den automatisk videre til den næste fase (deraf relevansen af ​​navnet 'pipeline'). Billedet nedenfor viser, hvordan en rørledning med flere opbygninger ser ud.

Håber du har forstået de teoretiske begreber. Lad os nu have det sjovt med praktisk brug.

Jeg opretter et nyt job i Jenkins, det er en Freestyle-projekt . Der er dog 3 flere muligheder. Lad os se på de typer byggejob, der er tilgængelige i Jenkins.

Freestyle-projekt:

Freestyle build-job er almindelige bygningsjob, som giver maksimal fleksibilitet.Freestyle build job er den mest fleksible og konfigurerbare mulighed og kan bruges til alle typer projekter. Det er relativt ligetil at konfigurere, og mange af de muligheder, vi konfigurerer her, vises også i andre build-job.

Multikonfigurationsjob:

'Multiconfiguration-projektet' (også kaldet et 'matrixprojekt') giver dig mulighed for at køre det samme byggejob i forskellige miljøer. Det bruges til at teste en applikation i forskellige miljøer, med forskellige databaser eller endda på forskellige byggemaskiner.

Overvåg et eksternt job:

Byggearbejdet 'Overvåg et eksternt job' giver dig mulighed for at holde øje med ikke-interaktive processer, såsom cron-job.

Maven Project:

“Maven2 / 3-projektet” er et byggejob specielt tilpasset Maven-projekter. Jenkins forstår Maven pom-filer og projektstrukturer og kan bruge de oplysninger, der hentes fra pom-filen til at reducere det arbejde, du skal gøre for at opsætte dit projekt.

Her er en video om Jenkins tutorial for bedre forståelse af Jenkins. Tjek denne Jenkins tutorial-video.

java applet programmerer eksempler med output

Kom godt i gang med Jenkins | Jenkins og DevOps vejledning | Jenkins for begyndere | Edureka

Oprettelse af en bygning ved hjælp af Jenkins

Trin 1: Fra hjemmet til Jenkins-grænsefladen skal du vælge Ny vare.

Trin 2: Indtast et navn, og vælg Freestyle-projekt .

Trin 3: Denne næste side er hvor du angiver jobkonfigurationen. Som du hurtigt kan se, er der en række indstillinger tilgængelige, når du opretter et nyt projekt.På denne konfigurationsside har du også mulighed for at Tilføj byggetrin at udføre ekstra handlinger som at køre scripts. Jeg udfører et shell-script.

Dette giver dig et tekstfelt, hvor du kan tilføje de kommandoer, du har brug for. Du kan bruge scripts til at køre forskellige opgaver som servervedligeholdelse, versionskontrol, læsning af systemindstillinger osv. Jeg vil bruge dette afsnit til at køre et simpelt script.

Trin 4: Gem projektet, så føres du til en projektoversigtsside. Her kan du se oplysninger om projektet, herunder dets indbyggede historie.

Trin 5: Klik på Byg nu på venstre side for at starte bygningen.

Trin 6: Hvis du vil se flere oplysninger, skal du klikke på den build i bygningshistorikområdet, hvorefter du føres til en side med en oversigt over buildoplysningerne.

Trin 7: Det Konsol output linket på denne side er især nyttigt til at undersøge resultaterne af jobbet i detaljer.

Trin 8: Hvis du går tilbage til Jenkins hjem, kan du se en oversigt over alle projekter og deres oplysninger, herunder status.

Status for bygningen er angivet på to måder ved hjælp af et vejrikon og en farvet kugle. Vejrikonet er særligt nyttigt, da det viser dig en registrering af flere builds i et billede.

Som du kan se i ovenstående billede repræsenterer solen, at alle mine bygninger var vellykkede. Kuglens farve giver os status for den pågældende build, i billedet ovenfor er kuglens farve blå, hvilket betyder, at denne særlige build var vellykket.

I denne Jenkins-vejledning har jeg netop givet et indledende eksempel. I min næste blog vil jeg vise dig, hvordan du trækker og bygger kode fra GitHub-arkivet ved hjælp af Jenkins.

Hvis du fandt dette Jenkins vejledning relevant, tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringskursus hjælper elever med at få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios og GIT til automatisering af flere trin i SDLC.

Har du et spørgsmål til os? Nævn det i kommentarfeltet, så vender vi tilbage til dig.