Jenkins-zelfstudie | Continue integratie met Jenkins | Edureka



Jenkins Tutorial is de tweede blog van de Jenkins-blogserie. Deze blog gaat over de gedistribueerde architectuur van Jenkins en hoe je een build kunt maken met Jenkins.

Jenkins-zelfstudie

Jenkins is een van de belangrijkste tools in . Ik hoop dat je mijn vorige blog hebt gelezen . In deze Jenkins Tutorial-blog zal ik me concentreren op Jenkins-architectuur en Jenkins build-pijplijn, en daarnaast zal ik je laten zien hoe je een build in Jenkins kunt maken.

Voordat we verder gaan met Jenkins Tutorial, zijn de belangrijkste afhaalrestaurants van de vorige blog:





  • Jenkins wordt gebruikt om alle DevOps-fasen te integreren met behulp van plug-ins.
  • Veelgebruikte Jenkins-plug-ins zijn Git, Amazon EC2, Maven 2-project, HTML-uitgever enz.
  • Jenkins heeft meer dan 1000 plug-ins en147.000 actieve installaties samen met meer dan 1 miljoen gebruikers over de hele wereld.
  • Met continue integratie elke wijziging in de broncodeisgebouwd. Het voert ook andere functies uit,dat hangt af van de tool die wordt gebruikt voor continue integratie.
  • Nokia is overgestapt van Nightly-build naar Continuous Integration.
  • Proces vóór continue integratie had veel gebreken. Als gevolg hiervan was niet alleen de levering van software traag, maar ook de kwaliteit van de software was niet toereikend. Ontwikkelaars hadden ook moeite met het opsporen en verhelpen van bugs.
  • Continue integratie met Jenkins loste deze tekortkomingen op door continu een build en test uit te voeren voor elke wijziging in de broncode.

Dit is het juiste moment om de architectuur van Jenkins te begrijpen.

Jenkins-architectuur

Laten we de standalone Jenkins-architectuur herzien die ik u heb uitgelegd in het , onderstaand diagram toont hetzelfde.



Jenkins Standalone Architecture - Wat is Jenkins - Edureka

Deze enkele Jenkins-server was niet genoeg om aan bepaalde vereisten te voldoen, zoals:

  • Soms heb je misschien verschillende omgevingen nodig om je builds te testen. Dit kan niet worden gedaan door een enkele Jenkins-server.
  • Als er regelmatig grotere en zwaardere projecten worden gebouwd, kan een enkele Jenkins-server niet zomaar de volledige belasting aan.

Om aan de bovengenoemde behoeften te voldoen, werd de gedistribueerde architectuur van Jenkins geïntroduceerd.



Jenkins gedistribueerde architectuur

Jenkins gebruikt een Master-Slave-architectuur om gedistribueerde builds te beheren. In deze architectuur communiceren Master en Slave via het TCP / IP-protocol.

Jenkins Master

naamruimten in c ++

Uw belangrijkste Jenkins-server is de Master. De taak van de meester is:

  • Bouwtaken plannen.
  • Het verzenden van builds naar de slaves voor de daadwerkelijke uitvoering.
  • Houd toezicht op de slaven (breng ze eventueel online en offline).
  • Opnemen en presenteren van de bouwresultaten.
  • Een Master-instantie van Jenkins kan ook rechtstreeks build-taken uitvoeren.

Jenkins Slave

Een slaaf is een uitvoerbaar Java-bestand dat op een externe machine wordt uitgevoerd. Hieronder volgen de kenmerken van Jenkins Slaves:

  • Het hoort verzoeken van de Jenkins Master-instantie.
  • Slaves kunnen op verschillende besturingssystemen draaien.
  • Het is de taak van een slaaf om te doen wat hem wordt opgedragen, wat inhoudt dat hij bouwopdrachten moet uitvoeren die door de meester zijn verzonden.
  • U kunt een project configureren om altijd op een bepaalde Slave-machine te draaien, of een bepaald type Slave-machine, of u kunt Jenkins gewoon de volgende beschikbare Slave laten kiezen.

Het onderstaande diagram spreekt voor zich. Het bestaat uit een Jenkins Master die drie Jenkins Slave beheert.

Laten we nu eens kijken naar een voorbeeld waarin Jenkins wordt gebruikt voor testen in verschillende omgevingen zoals: Ubuntu, MAC, Windows etc.

Het onderstaande diagram geeft hetzelfde weer:

De volgende functies worden uitgevoerd in de bovenstaande afbeelding:

  • Jenkins controleert de Git-repository met periodieke tussenpozen op eventuele wijzigingen die in de broncode zijn aangebracht.
  • Elke build vereist een andere testomgeving, wat niet mogelijk is voor een enkele Jenkins-server. Om testen uit te voeren in verschillende omgevingen gebruikt Jenkins verschillende Slaves, zoals weergegeven in het diagram.
  • Jenkins Master vraagt ​​deze Slaves om testen uit te voeren en testrapporten te genereren.

Jenkins Build Pipeline

Het wordt gebruikt om te weten welke taak Jenkins momenteel uitvoert. Vaak worden verschillende wijzigingen door meerdere ontwikkelaars tegelijk aangebracht, dus het is handig om te weten welke wijziging wordt getest of welke wijziging in de wachtrij staat of welke build kapot is. Dit is waar de pijpleiding in beeld komt. De Jenkins Pipeline geeft u een overzicht van waar tests mee bezig zijn. In de build-pijplijn wordt de build als geheel opgesplitst in secties, zoals de unit-test, acceptatietest, verpakking, rapportage en implementatiefase. De pijplijnfasen kunnen in serie of parallel worden uitgevoerd en als een fase succesvol is, gaat deze automatisch door naar de volgende fase (vandaar de relevantie van de naam 'pijplijn'). De onderstaande afbeelding laat zien hoe een meervoudige pijplijn eruit ziet.

Ik hoop dat je de theoretische concepten hebt begrepen. Laten we nu wat plezier maken met hands-on.

Ik zal een nieuwe baan creëren in Jenkins, het is een Freestyle-project . Er zijn echter nog 3 andere opties beschikbaar. Laten we eens kijken naar de soorten build-banen die beschikbaar zijn in Jenkins.

Freestyle-project:

Freestyle build-jobs zijn jobs voor algemene doeleinden, die maximale flexibiliteit bieden.De freestyle-bouwtaak is de meest flexibele en configureerbare optie en kan voor elk type project worden gebruikt. Het is relatief eenvoudig in te stellen en veel van de opties die we hier configureren, verschijnen ook in andere build-taken.

Multiconfiguratietaak:

Met het 'multiconfiguratieproject' (ook wel 'matrixproject' genoemd) kunt u dezelfde bouwtaak in verschillende omgevingen uitvoeren. Het wordt gebruikt voor het testen van een applicatie in verschillende omgevingen, met verschillende databases of zelfs op verschillende build-machines.

Monitor een externe taak:

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

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 hoeft te doen om uw project op te zetten.

Hier is een video over de Jenkins-zelfstudie voor een beter begrip van Jenkins. Bekijk deze tutorialvideo van Jenkins.

hoe double naar int te converteren

Aan de slag met Jenkins | Zelfstudie voor Jenkins en DevOps | Jenkins voor beginners | Edureka

Een build maken met Jenkins

Stap 1: Selecteer in de startpagina van de Jenkins-interface Nieuw item.

Stap 2: Voer een naam in en selecteer Freestyle-project .

Stap 3: Op deze volgende pagina specificeert u de taakconfiguratie. Zoals u snel zult zien, zijn er een aantal instellingen beschikbaar wanneer u een nieuw project maakt.Op deze configuratiepagina heb je ook de mogelijkheid om Bouwstap toevoegen om extra acties uit te voeren, zoals het uitvoeren van scripts. Ik zal een shellscript uitvoeren.

Dit geeft u een tekstvak waarin u alle gewenste opdrachten kunt toevoegen. U kunt scripts gebruiken om verschillende taken uit te voeren, zoals serveronderhoud, versiebeheer, het lezen van systeeminstellingen, enz. Ik zal deze sectie gebruiken om een ​​eenvoudig script uit te voeren.

Stap 4: Sla het project op en u wordt naar een projectoverzichtspagina geleid. Hier kunt u informatie over het project zien, inclusief de bouwgeschiedenis.

Stap 5: Klik Bouw nu aan de linkerkant om te beginnen met bouwen.

Stap 6: Om meer informatie te zien, klikt u op die build in het buildhistoriegedeelte, waarna u naar een pagina wordt geleid met een overzicht van de build-informatie.

Stap 7: De Console-uitgang link op deze pagina is vooral handig om de resultaten van de job in detail te bekijken.

Stap 8: Als je teruggaat naar het huis van Jenkins, zie je een overzicht van alle projecten en hun informatie, inclusief de status.

De status van de build wordt op twee manieren aangegeven, door een weerpictogram en door een gekleurde bal. Het weerpictogram is bijzonder handig omdat het u een record van meerdere builds in één afbeelding laat zien.

Zoals je in de bovenstaande afbeelding kunt zien, geeft de zon aan dat al mijn builds succesvol waren. De kleur van de bal geeft ons de status van die specifieke build, in de bovenstaande afbeelding is de kleur van de bal blauw, wat betekent dat deze specifieke build succesvol was.

In deze Jenkins-zelfstudie heb ik zojuist een inleidend voorbeeld gegeven. In mijn volgende blog laat ik je zien hoe je code uit de GitHub-repository kunt halen en bouwen met Jenkins.

Als je dit hebt gevonden Jenkins-zelfstudie relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen expertise op te doen in verschillende DevOps-processen en tools zoals Puppet, Jenkins, Nagios en GIT voor het automatiseren van meerdere stappen in SDLC.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte en we nemen contact met u op.