Hogyan lehet létrehozni az első Jenkins csővezetékét?

Lépésről lépésre a Jenkins csővezeték létrehozásához


Miért Jenkins Pipeline??

A folyamatos szállítás (CD) a DevOps életciklusának alapvető része.

Ez biztosítja, hogy a szoftver- / alkalmazásfejlesztők mindig készen álljanak a készítésre. Ahhoz, hogy ez megtörténjen, minden alkalommal, amikor a kód frissítésre kerül, folyamatosan ki kell építeni, tesztelnie és telepíteni kell. Itt jön a kép Jenkins Pipeline.

A DevOps-ban a Jenkins Pipeline révén folyamatos integráció és folyamatos kézbesítés (CI / CD) érhető el. A Jenkins Pipeline CD-lemezzel történő felhasználása elősegíti a szoftver gyorsabb és gyakori kiadását. Ez segít a visszajelzés beépítésében minden következő kiadásba.

Mi a Jenkins Pipeline?

A Jenkins Pipeline olyan feladatok kombinációja, amely folyamatosan továbbítja a szoftvert a Jenkins segítségével.

Feltételezem, hogy tudja, mi a Jenkins. Ha nem, akkor nézd meg ezt Udemy tanfolyam Jenkins elsajátításához.

A Jenkins csővezeték több állapotból vagy szakaszból áll, és egymás után sor kerül végrehajtásra. A JenkinsFile egy egyszerű szöveges fájl, amelyet egy csővezeték kódként történő létrehozására használnak a Jenkins fájlban. Kódot tartalmaz a Groovy Domain Specific Language (DSL) nyelvben, amely egyszerűen írható és ember számára olvasható.

Vagy külön futtathatja a JenkinsFile fájlt, vagy futtathatja a csővezeték kódját a Jenkins Web UI-ből is. Kétféle módon hozhat létre csővezetéket a Jenkins segítségével.

  • Deklarációs – a Jenkins Pipeline létrehozásának új módja. Itt olyan groovy kódot írsz, amely „pipeline” blokkokat tartalmaz, és bekerül egy SCM-be (Source Code Management)
  • Scripted – groovy kód írásának módja, ahol a kódot a „csomópont” blokkokban definiálják.

Mielőtt belekezdenénk a bemutatóba, ha még nem telepítette a Jenkins-t, kérjük, telepítse először. Győződjön meg arról, hogy a Jenkins fut és fut a rendszerén.

Hozzon létre egy Jenkins csővezetéket

Így néz ki a Jenkins-csővezeték-áramlás, amely több szakaszból áll, a szoftverfejlesztő (kódoló) fejlesztő és a gyártás során szállított szoftver között.

Jenkins Pipeline

Hozzunk létre egy deklaratív csővezetéket.

A Jenkins műszerfalon kattintson az Új elem elemre. Ezután írjon be egy elemnevet, például „Első csővezeték”, és válassza ki a „Csővezeték” projektet. Ezután kattintson az OK gombra.

Új elem - Jenkins Pipeline

Kattintson a Csővezeték fülre az alábbi képen látható módon, és tegye ide a JenkinsFile kódot (Groovy Code).

JenkinsFile Code

csővezeték {
ügynök bármilyen
szakasz {
színpad (‘Build’) {
lépések {
echo ‘Szia, GeekFlare. Megkezdik az App. “
}
}
szakasz (‘teszt’) {
lépések {
input (‘Folytatni akarsz?’)
}
}
szakasz (‘telepítés’) {
párhuzamos {
szakasz (‘Indulás indítása’) {
lépések {
visszhang "Indítsa el a telepítést .."
}
}
szakasz (‘Telepítés most’) {
ügynök {
dokkoló {
reuseNode igaz
‘nginx’ kép
}
}

lépések {
visszhang "Létrehozta a dokkolót"
}
}
}
}
színpad (‘Prod’) {
lépések {
visszhang "Az alkalmazás készen áll a termékre"
}

}
}
}

Magyarázom el a fenti blokkokat.

  • Az csővezeték A blokk a szoftver készítésére, tesztelésére és kézbesítésére vonatkozó összes utasításból áll. Ez a Jenkins csővezeték kulcseleme.
  • egy ügynök hozzá van rendelve a csővezeték csomóponton történő végrehajtásához és egy munkaterület kiosztásához a csővezeték számára.
  • A színpad egy olyan blokk, amely lépéseket tartalmaz az alkalmazás létrehozására, tesztelésére és telepítésére. A szakaszokat a Jenkins Pipeline folyamatok megjelenítésére használják.
  • A lépés egy egyetlen elvégzendő feladat, például könyvtár létrehozása, dokkolókép futtatása, fájl törlése stb.

A fenti Groovy-kódot, a JenkinsFile-hez használom. Bármely rendelkezésre álló ügynököt kiosztanak a csővezetékbe. Aztán meghatározzam az Összeállítás stádiumot és elvégzem egy egyszerű visszhangját. Ezután meghatároztam a Teszt szakaszát, ahol a lépés azt kérdezi, hogy folytatni akarja-e vagy sem. Ezután létrehoztam egy Deploy színpadot, amelyben további két szakasz van párhuzamosan. A központi telepítés kezdő szakaszában van egy lépés az echo paranccsal, és a központi telepítésnek most egy olyan lépése van, amely az Nginx dokkolóképét húzza a csomóponton. Végül van egy Prod színpad egy egyszerű visszhang-lépéssel.

A fent kifejtett csővezetéknek olyan szakaszai vannak, amelyek egyszerű lépéseket tartalmaznak, hogy megértsék, hogyan működik. Miután megtanulta, hogyan kell létrehozni a csővezetéket, hozzáadhat további összetettséget, és összetett csővezetékeket is létrehozhat.

Miután megvan a kód a Csővezeték lapon, kattintson az Alkalmaz és Mentés gombra. Végül kattintson az Építés most elemre az éppen létrehozott Jenkins csővezeték építésének megkezdéséhez.

Építsd most

Így fog kinézni a felhasználói felület, amikor a csővezeték fut. Ha helyesen teljesítette az összes lépést, akkor az építkezés sikeres lesz, és kék színű lesz az építkezés (27. szám). Ha vannak hibák az építkezésben, akkor piros színű lesz az építkezés (# 27).

Jenkins Build 27

Most kattintson a 27. számú felépítésre, majd kattintson a Konzolkimenet elemre, hogy ellenőrizze, mi történt pontosan a háttérben, amikor futott.

Jenkins Build

Így fog kinézni a kimenet SIKER üzenettel.

Sikeres konzol kimenet

A geekflare felhasználó indította
Futás tartóssági szinten: MAX_SURVIVABILITY
[Csővezeték] A Csővezeték kezdete
[Csővezeték] csomópont
Futtatás a Jenkins fájlon a / var / lib / jenkins / munkaterületen / az első csővezetéken
[Csővezeték] {
[Csővezeték] szakasz
[Csővezeték] {(Építés)
[Csővezeték] visszhangja
Szia, GeekFlare. Az alkalmazás fejlesztésének megkezdése.
[Csővezeték]}
[Csővezeték] // színpad
[Csővezeték] szakasz
[Csővezeték] {(teszt)
[Csővezeték] bemenet
Akarod folytatni?
Folytassa vagy megszakítsa
Geekflare jóváhagyta
[Csővezeték]}
[Csővezeték] // színpad
[Csővezeték] szakasz
[Csővezeték] {(Telepítés)
[Csővezeték] párhuzamos
[Csővezeték] {(Ágazat: Telepítés kezdete)
[Csővezeték] {(Ágazat: Telepítés most)
[Csővezeték] szakasz
[Csővezeték] {(Telepítés indítása)
[Csővezeték] szakasz
[Csővezeték] {(Telepítés most)
[Csővezeték] getContext
[Csővezeték] isUnix
[Csővezeték] sh
[Csővezeték] visszhangja
Indítsa el a telepítést ..
[Csővezeték]}
+ dokkoló ellenőrzi -f. nginx
[Csővezeték] // színpad
[Csővezeték]}

Hiba: Nincs ilyen objektum: nginx
[Csővezeték] isUnix
[Csővezeték] sh
+ dokkoló pull nginx
Alapértelmezett címke használata: legújabb
legfrissebb: Hívás a könyvtárból / nginx
8d691f585fa8: Az fs réteg húzása
5b07f4e08ad0: Az fs réteg húzása
abc291867bca: Az fs réteg húzása
abc291867bca: A Checksum ellenőrzése
abc291867bca: Letöltés kész
5b07f4e08ad0: Az ellenőrző összeg ellenőrzése
5b07f4e08ad0: Letöltés kész
8d691f585fa8: Az ellenőrző összeg ellenőrzése
8d691f585fa8: Letöltés kész
8d691f585fa8: Húzza be
5b07f4e08ad0: Húzza be
abc291867bca: Húzza be
Feldolgozás: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Állapot: Letöltött újabb képet az nginx számára: legújabb
[Csővezeték] aDockerContainerrel
Úgy tűnik, hogy Jenkins nem fut egy konténerben
$ docker futtatása -t -d -u 125: 131 -w "/ var / lib / jenkins / munkaterület / Első csővezeték" -v "/ var / lib / jenkins / munkaterület / Első csővezeték: / var / lib / jenkins / munkaterület / Első csővezeték: rw, z" -v "/ Var / lib / Jenkins / munkaterület / First [Email protected]: / Var / lib / Jenkins / munkaterület / First [Email protected]: Rw, Z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx cat
$ dokkoló felső 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Csővezeték] {
[Csővezeték] visszhangja
Létrehozta a dokkolót
[Csővezeték]}
$ dokkoló megálló – idő = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Csővezeték] // withDockerContainer
[Csővezeték]}
[Csővezeték] // színpad
[Csővezeték]}
[Csővezeték] // párhuzamos
[Csővezeték]}
[Csővezeték] // színpad
[Csővezeték] szakasz
[Csővezeték] {(Prod)
[Csővezeték] visszhangja
Az alkalmazás készen áll a termékre
[Csővezeték]}
[Csővezeték] // színpad
[Csővezeték]}
[Csővezeték] // csomópont
[Csővezeték] A Csővezeték vége
Kész: SIKER

A fenti Jenkins Pipeline dokkoló képet készített Nginxről. Ezt az alábbi parancs futtatásával ellenőrizheti. Láthatja, hogy a Nginx dokkoló képe is fel van sorolva.

[Email protected]: ~ $ dokkoló kép ls
A KÖNYVTÁR KÉP-azonosítója létrehozta a méretet
nginx legújabb 540a289bab6c 2 héttel ezelőtt 126 MB
A httpd legfrissebb 7d85cc3b2d80 2 hónappal ezelőtt 154MB
redis legújabb f7302e4ab3a8 2 hónappal ezelőtt 98.2MB
geekflare_mongodb legújabb 095d17727ca0 3 hónappal ezelőtt 325MB

Következtetés

Remélem, ez ötletet ad neked Jenkins csővezeték előnyei és hogyan hozhatók létre. A fentiek egy egyszerű demonstrációt jelentenek, és a tanulás legjobb módja az összetett csővezetékek építése.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map