Hur att Installera och Använda Jenkins att Bygga en CI – /CD-Pipeline

0
454

För programvaruföretag efter en agil utvecklingsprocess, släppa mjukvara varje dag är en intensiv process. Jenkins är ett verktyg som kan snabba upp ditt arbetsflöde genom att automatisera många av de repetitiva uppgifter, såsom att bygga, testa och släppa.

Vad Är Jenkins?

Jenkins var ursprungligen byggd för att tjäna ett enda syfte—att automatisera uppbyggnad och testning av nattliga programvara bygger. Nya förbinder måste integreras i master-branch regelbundet (ofta hänvisat till som “”continuous integration”), vilket ofta innebär omfattande tester för att säkerställa att allt löper smidigt. Att göra det en gång i veckan är en sak, men när du integrerar flera gånger om dagen, det är bättre för alla att ha att vara en automatisk process.

Jenkins, och andra CI – /CD-lösningar som det, påskynda denna process. Du kan se det som ett automatiserat skript. Till exempel, för att släppa ett nytt bygga en Reagera app, kanske du måste köra npm install, npm köra bygga, sedan köra ett test suite som Skämt för att kontrollera att bygga nya passerar alla tester. Om det är framgångsrikt, kanske du vill skicka det till en testmiljö för manuell granskning, eller helt enkelt publicera en ny version direkt. Alla dessa kommandon kan du script helt enkelt.

Jenkins klarar att köra alla dessa uppgifter som en del av en rörledning. När Jenkins upptäcker förändringar till din source control (antingen på master-eller en funktion branch), kommer den att starta den automatiska pipeline, och kör genom varje uppgift du har gett det. Vissa arbetsuppgifter är så enkelt som att bash kommandon, övriga arbetsuppgifter som kan samverka med en extern tjänst som Jira, Git, eller om din e-postleverantör. Jenkins är också fullt utbyggbar med plugins, och kan verkligen vara gjord för att göra vad du vill.

Jenkins har två utgåvor, Blue Ocean, och klassiskt. Blue Ocean är nyare och har en strömlinjeformad UI erfarenhet som gör att skapa rörledningarna mycket lättare. Vi kommer att använda det Blå Havet för denna guide, men de flesta av samma begrepp kommer att gälla för båda versionerna av Jenkins.

Installera Jenkins

Jenkin binärer finns för flera operativsystem, men vanligtvis inte från standard paket chefer. Om du är på Ubuntu, kan du ladda ner och installera med följande några kommandon:

wget -f -O – https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add –
sudo sh -c ” echo deb https://pkg.jenkins.io/debian-stable binära/ > /etc/apt/sources.förteckningen.d/jenkins.lista’
sudo apt-get update
sudo apt-get install jenkins

För att göra saker och ting oberoende av plattform men vi ska köra Jenkins med Docker, vilket är vad Jenkins rekommenderar iaf.

Installera Docker

Docker är en plattform för att köra applikationer i “behållare;” behållaren innehåller alla nödvändiga beroenden, och kommer att se till appen går samma oavsett bas operativsystem—allt du behöver göra är att installera Docker för ditt system, och kör några kommandon.

För Ubuntu, måste du installera vissa förutsättningar:

sudo apt att installera apt-transport-https ca-certifikat curl programvara-fastigheter-gemensamma

Lägg sedan till Docker är GPG-nyckel:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Och lägg till den repa sig:

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stabil”

Uppdatera dina källor:

apt uppdatering

Och, slutligen, installera Hamnarbetare från apt:

sudo apt att installera docker-ce

Docker ska nu köras på ditt system, som du kan kontrollera med systemctl.

Att Sätta Upp Jenkins

Med Docker igång, du kan ställa in Docker behållare för Jenkins. Du måste först en bryggad nätverk för behållare för att kommunicera på:

docker nätverk skapa jenkins

Docker är till sin natur tillfälliga—alla data som lagras på containrar kommer att raderas när dessa behållare har slutat. För att förhindra detta, men du vill lagra data på Docker volymer, som kommer att finnas kvar till disken. Du behöver två delar, en för en TLS-certifikat Jenkins behöver ansluta med Docker, och den andra för alla dina Jenkins data. Dessa kommer att vara bunden till behållare vid körning.

docker volym skapa jenkins-docker-certs
docker volym skapa jenkins-data

Jenkins faktiskt behöver för att kunna köra Docker som en del av sin verksamhet, för att ställa upp att bygga miljöer. Detta är inte möjligt med vanliga Hamnarbetare, så för att få att fungera ordentligt, måste du köra “Docker i Hamnarbetare,” eller Fungerade. Följande kommando kommer att köra Hamnarbetare unionens officiella docker:fungerade behållare, knyta nätverk och volymer du skapade i föregående steg om du vill det, och publicera det som en tjänst som körs på port 2376 för Jenkins behållare för användning. Du är fri att ändra denna port, om du vill, men du måste ändra det i nästa steg.

docker behållare springa –namn jenkins-docker-rm-ta loss
–privilegierade –nätverk jenkins –nät-alias docker
–env DOCKER_TLS_CERTDIR=/certs
– volym jenkins-docker-certs:/certs/client
– volym jenkins-data:/var/jenkins_home
–publicera 2376:2376 docker:fungerade

Med att ställa upp, kan du köra jenkinsci/blueocean container med hjälp av följande kommando:

docker behållare springa –namn jenkins-blueocean –rm-ta loss
–nätverk jenkins –env DOCKER_HOST=tcp://docker:2376
–env DOCKER_CERT_PATH=/certs/client-env DOCKER_TLS_VERIFY=1
– volym jenkins-data:/var/jenkins_home
– volym jenkins-docker-certs:/certs/klient:ro –
–publicera 8080:8080 –publicera 50000:50000 jenkinsci/blueocean

Detta kommer att montera nätverk och enheter, ställ DOCKER_HOST variabel till den port som Fungerade kör på, och att publicera tjänst på port 8080, som du kan ändra om det inte är gratis. (Formatet är värd:behållare.) Det ger även ut Jenkin administrativa anslutning på port 50000, om du planerar att sätta upp en master Jenkins server med flera distribuerade bygger ansluta till det.

När Jenkins är igång, det kommer att vara tillgänglig via en webbläsare på port 8080 i den mottagande maskinen. Du kommer att behöva göra lite inställningar innan Jenkins är fullt användbara, av vilka den första är att autentisera dig själv för att bevisa att du är ägaren av servern, och inte en bot attackerar en sårbar web-gränssnitt.

Du måste ange ett lösenord som lagras i /var/jenkins_home/, som är en del av Docker volym. För att få tillgång till det, du måste köra katt inne i Docker behållare:

docker behållare exec -det jenkins-blueocean cat /var/jenkins_home/secrets/initialAdminPassword

Detta kommer att skriva ut lösenordet, som du kan kopiera och börjar resten av installationen.

Du kommer att bli ombedd att konfigurera din admin-användarnamn och lösenord, installera olika plugins. Att välja “Installera Rekommenderade Plugins” kommer bara att installera en hel del av gemenskapen rekommenderas att börja. Du är alltid gratis att installera mer senare.

Skapa en Pipeline

När du har ställt upp Jenkins, kommer du bli hälsad med följande välkomstskärmen. Klicka på “Skapa En Ny Pipeline” för att komma igång.

Du har att välja om din kod är lagrad. Du kan länka ditt Github eller BitBucket konto direkt med ett snabbkommando.

Men en bättre lösning är att helt enkelt välja generiska “Jävel.” Ange i ditt arkiv URL, och Jenkins kommer att ge dig en publik nyckel. Eftersom Jenkins har möjlighet att göra begår (och alltid sparar dina ändringar till pipeline konfiguration), bör du skapa en ny tjänst för användaren och lägg till den publika nyckeln för det.

Jenkins kommer att ta en sekund för att ansluta till Git, och sedan föra dig till en sida där du kan redigera pipeline inställningar. Jenkins lagrar alla pipeline konfiguration i en Jenkinsfile, placeras i roten på ditt arkiv. När du gör uppdateringar till gasledningen i editorn, Jenkins kommer att begå ändra till din Jenkinsfile.

Varje rörledning kommer att ha några olika faser, såsom Bygg -, Test -, eller Distribuera, som kommer att innehålla de enskilda stegen. Dessa kan göra alla möjliga saker, till exempel skicka e-post, interagera med andra tjänster som Jira och Git, och samordna flödet av övriga steg, men du oftast använda dessa för att utföra enkla shell-skript. Eventuella fel i retur av dessa skript kommer att orsaka gång att misslyckas.

Innan du lägger alla steg, kommer du vill konfigurera inställningar miljö. Vanligtvis kommer du att använda en Docker behållare, till exempel nod:senaste.

För detta exempel kommer vi att bygga en Nod baserade web app. Att helt enkelt lägga till två steg för npm install och npm köra bygga är allt som krävs. Jenkins kommer att utföra dessa kommandon och gå vidare till nästa steg, med bygga artefakter på plats. För testfasen, ställa upp ett shell-skript för att köra Skämt kommer att kräva att alla tester sig för att bygga för att bli framgångsrik.

Jenkins kan köra flera steg parallellt, vilket är användbart om du behöver för att testa på flera olika plattformar. Du kan sätta upp en “Testa på Linux” och “Testa på Windows” – stadiet, och få dem att köra på samma gång så att du inte väntar på en att börja den andra. Om man misslyckas, ledningen ändå kommer att misslyckas.

När du är klar med redigeringen, Jenkins kommer automatiskt att starta din pipeline. Om du klickar på den för mer info, du kan titta på den bygga-framsteg genom stadierna.

Den övre balken blir röd om det är ett fel, och grönt om allt går bra. Om du kör i fel, kan du klicka på den felande steg för att visa konsolen utdata från kommandon som orsakar pipeline för att misslyckas. Du kommer också vill kolla din miljö konfiguration för att kontrollera att alla nödvändiga verktyg är installerade. (Du kanske vill ställa in din egen Docker behållare för dina byggen.)