Ako vytvoriť prvý plynovod Jenkins?

Podrobný sprievodca vytvorením ropovodu Jenkins


Prečo Jenkins Pipeline?

Nepretržité doručovanie (CD) je nevyhnutnou súčasťou životného cyklu DevOps.

Zabezpečuje, aby vývojári softvéru / aplikácií, ktorí vytvárajú, boli vždy pripravení na výrobu. Aby sa to stalo, vždy, keď sa kód aktualizuje, musí sa neustále vytvárať, testovať a zavádzať. To je miesto, kde Jenkins Pipeline prichádza do obrazu.

V systéme DevOps sa kontinuálna integrácia a kontinuálne dodávanie (CI / CD) dosahuje pomocou Jenkinsovho potrubia. Použitie Jenkins Pipeline pre CD pomáha dodávať softvér rýchlejšie a častejšie. Pomáha to zahrnúť spätnú väzbu do každého nasledujúceho vydania.

Čo je Jenkins Pipeline?

Jenkins Pipeline je kombináciou úloh na nepretržité poskytovanie softvéru pomocou Jenkins.

Predpokladám, že viete, čo je Jenkins. Ak nie, potom to vyskúšajte Kurz Udemy zvládnuť Jenkins.

Potrubie Jenkins sa skladá z niekoľkých stavov alebo etáp a sú popravené postupne za sebou. JenkinsFile je jednoduchý textový súbor, ktorý sa používa na vytvorenie plynovodu ako kódu v Jenkins. Obsahuje kód v jazyku špecifickom pre Groovy Domain (DSL), ktorý sa ľahko zapisuje a je čitateľný pre človeka.

Buď môžete spustiť JenkinsFile osobitne, alebo môžete spustiť kód potrubia z webového rozhrania Jenkins. Existujú dva spôsoby, ako môžete vytvoriť plynovod pomocou Jenkins.

  • Deklaratívny – nový spôsob vytvárania potrubia Jenkins. Tu napíšete groovy kód obsahujúci „pipeline“ bloky, ktoré sú kontrolované do SCM (Source Source Management)
  • Scripted – spôsob písania groovy kódu, kde je kód definovaný vo vnútri „uzlových“ blokov.

Predtým, ako sa dostaneme do ukážky, ak ste nenainštalovali Jenkins, najskôr ju nainštalujte. Uistite sa, že máte na svojom systéme spustenú Jenkins.

Vytvorte Jenkinsov plynovod

Takto vyzerá tok plynovodu Jenkins, ktorý pozostáva z viacerých fáz medzi vývojármi vytvárajúcimi softvér (kódovanie) a softvér dodávaný pri výrobe..

Potrubie Jenkins

Vytvorme deklaratívny plynovod.

Na informačnom paneli Jenkins kliknite na položku Nová položka. Potom zadajte názov položky, napríklad „Prvý pipeline“ a vyberte projekt „Pipeline“. Potom kliknite na OK.

Nová položka - potrubie Jenkins

Kliknite na kartu Potrubie, ako je to znázornené na obrázku nižšie, a vložte sem kód JenkinsFile (kód Groovy).

JenkinsFile Code

potrubie {
agent akýkoľvek
etapy {
stage (‘Build’) {
kroky {
echo ‘Ahoj, GeekFlare. Začíname vytvárať aplikáciu. “
}
}
fáza („Test“) {
kroky {
vstup („Chcete pokračovať?“)
}
}
fáza („Nasadiť“) {
paralelný {
stage (‘Nasadenie start’) {
kroky {
echo "Spustite nasadenie .."
}
}
stage (‘Deploying now’) {
agent {
docker {
reuseNode true
obrázok „nginx“
}
}

kroky {
echo "Dokovacia stanica bola vytvorená"
}
}
}
}
stage („Prod“) {
kroky {
echo "Aplikácia je pripravená na produkt"
}

}
}
}

Dovoľte mi vysvetliť vyššie uvedené bloky.

  • potrubie blok pozostáva zo všetkých pokynov na zostavenie, testovanie a dodanie softvéru. Je kľúčovou súčasťou ropovodu Jenkins.
  • agent je priradený na vykonanie potrubia v uzle a priradenie pracovného priestoru pre potrubie.
  • štádium je blok, ktorý má kroky na zostavenie, testovanie a nasadenie aplikácie. Fázy sa používajú na vizualizáciu procesov Jenkinsovho potrubia.
  • krok je jedna úloha, ktorá sa má vykonať, napríklad vytvorenie adresára, spustenie obrazu doku, vymazanie súboru atď.

Vyššie uvedený kód Groovy používam pre súbor JenkinsFile. K potrubiu je priradený akýkoľvek dostupný agent. Potom definujem fázu zostavenia a vykonám jednoduchý krok ozveny. Potom som definoval fázu Test, kde sa krok pýta, či chcete pokračovať alebo nie. Potom som vytvoril fázu nasadenia, ktorá má dve paralelné fázy. Štartovacia fáza nasadenia má krok s príkazom echo a nasadenie má teraz krok, ktorý vytiahne do uzla obraz doku Nginx. Nakoniec je tu fáza Prod s jednoduchým krokom ozveny.

Vyššie uvedený plynovod má fázy, ktoré obsahujú jednoduché kroky na pochopenie jeho fungovania. Akonáhle sa naučíte, ako vytvoriť plynovod, môžete pridať väčšiu zložitosť a tiež vytvoriť zložité plynovody.

Keď máte kód na karte Potrubie, kliknite na Použiť a Uložiť. Nakoniec kliknite na tlačidlo Zostaviť a začnite stavať potrubie Jenkins, ktoré ste práve vytvorili.

Zostavte teraz

Takto bude užívateľské rozhranie vyzerať pri spustení plynovodu. Ak ste postupovali správne, vaša zostavenie bude úspešné a pre zostavenie sa zobrazí modrá farba (# 27). Ak sa v zostave vyskytnú chyby, dá sa stavbe červenej farby (# 27)..

Jenkins Build 27

Teraz kliknite na # 27 build a potom kliknite na Console Output a skontrolujte, čo sa presne stalo v back-ende, keď bežalo.

Jenkins Build

Takto bude výstup vyzerať ako koniec správy SUCCESS.

Výstup konzoly úspechu

Založil užívateľ geekflare
Prevádzka na úrovni trvanlivosti: MAX_SURVIVABILITY
[Pipeline] Začiatok Pipeline
Uzol [Potrubie]
Beží na Jenkins v / var / lib / jenkins / workspace / First Pipeline
[Potrubie] {
[Potrubie] fáza
[Potrubie] {(Zostaviť)
[Pipeline] echo
Ahoj, GeekFlare. Začína sa vytvárať aplikácia.
[Potrubie]}
[Potrubie] // etapa
[Potrubie] fáza
[Potrubie] {(Test)
Vstup [Potrubie]
Chcete pokračovať?
Pokračovať alebo prerušiť
Schválené geekflare
[Potrubie]}
[Potrubie] // etapa
[Potrubie] fáza
[Potrubie] {(Nasadiť)
[Potrubie] paralelne
[Pipeline] {(Branch: Nasadiť začiatok)
[Pipeline] {(Branch: Nasadenie teraz)
[Potrubie] fáza
[Potrubie] {(Nasadenie začať)
[Potrubie] fáza
[Potrubie] {(Zavádza sa teraz)
[Pipeline] getContext
[Pipeline] isUnix
[Pipeline] sh
[Pipeline] echo
Spustite nasadenie ..
[Potrubie]}
+ kontrola doku -f. Nginx
[Potrubie] // etapa
[Potrubie]}

Chyba: Žiadny taký objekt: nginx
[Pipeline] isUnix
[Pipeline] sh
+ nginx
Použitie predvolenej značky: najnovšie
najnovšie: Vytiahnutie z knižnice / nginx
8d691f585fa8: Vytiahnutie vrstvy fs
5b07f4e08ad0: Potiahnutie vrstvy fs
abc291867bca: Ťahanie vrstvy fs
abc291867bca: Overovanie kontrolného súčtu
abc291867bca: Sťahovanie bolo dokončené
5b07f4e08ad0: Overovanie kontrolného súčtu
5b07f4e08ad0: Sťahovanie bolo dokončené
8d691f585fa8: Overovanie kontrolného súčtu
8d691f585fa8: Sťahovanie bolo dokončené
8d691f585fa8: Vytiahnutie dokončené
5b07f4e08ad0: Potiahnite dokončené
abc291867bca: Potiahnite dokončené
Prehľad: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Stav: Stiahnutý novší obrázok pre nginx: najnovší
[Pipeline] withDockerContainer
Zdá sa, že Jenkins nebeží vnútri kontajnera
$ docker run -t -d -u 125: 131 -w "/ var / lib / jenkins / workspace / First Pipeline" -proti "/ var / lib / jenkins / workspace / First Pipeline: / var / lib / jenkins / workspace / First Pipeline: rw, z" -proti "/ Var / lib / Jenkins / workspace / First [Email protected]: / Var / lib / Jenkins / workspace / 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 kat
$ docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Potrubie] {
[Pipeline] echo
Dokovacia stanica bola vytvorená
[Potrubie]}
$ docker stop –time = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Pipeline] // withDockerContainer
[Potrubie]}
[Potrubie] // etapa
[Potrubie]}
[Potrubie] // paralelne
[Potrubie]}
[Potrubie] // etapa
[Potrubie] fáza
[Potrubie] {(Prod)
[Pipeline] echo
Aplikácia je pripravená na produkt
[Potrubie]}
[Potrubie] // etapa
[Potrubie]}
[Potrubie] // uzol
[Potrubie] Koniec potrubia
Dokončené: ÚSPECH

Vyššie uvedený Jenkins Pipeline vytvoril dokovací obraz Nginx. Môžete to overiť spustením príkazu nižšie. Môžete tiež vidieť obrázok doku Nginx.

[Email protected]: ~ $ obrázok doku ls
VEĽKOSŤ VYTVORENÉ ID OBRAZOVKY TAG
nginx posledných 540a289bab6c pred 2 týždňami 126MB
httpd last 7d85cc3b2d80 pred 2 mesiacmi 154MB
redis latest f7302e4ab3a8 pred 2 mesiacmi 98,2MB
geekflare_mongodb last 095d17727ca0 pred 3 mesiacmi 325MB

záver

Dúfam, že vám to dá predstavu Potrubie Jenkins výhody a ako si ich môžete vytvoriť. Vyššie uvedené je jednoduchá demonštrácia a najlepší spôsob, ako sa učiť, je vyskúšať zložité potrubia.

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