Jenkins laza integráció

1. Áttekintés

Amikor csapataink felelősek a DevOps gyakorlatokért, gyakran figyelemmel kell kísérnünk az építkezéseket és más automatizált feladatokat.

Ebben az oktatóanyagban megtudhatjuk, hogyan konfigurálhat két népszerű platformot, a Jenkins-t és a Slack-ot, hogy működjenek együtt, és elmondják nekünk, mi történik a CI / CD-csővezetékünk futása közben.

2. A Slack beállítása

Kezdjük a Slack konfigurálásával, hogy a Jenkins üzeneteket küldhessen neki. Ezt csináld meg, létrehozunk egy egyedi Slack alkalmazást, amelyhez rendszergazdai fiók szükséges.

A Slack alkalmazásban létrehozunk egy alkalmazást, és létrehozunk egy OAuth tokent:

  • Látogasson el a //api.slack.com oldalra
  • Jelentkezzen be a kívánt munkaterületre
  • Kattints a Kezdje el építeni gomb
  • Nevezze el az alkalmazást Jenkins és kattintson App létrehozása
  • Kattintson OAuth és engedélyek
  • Ban,-ben Bot Token hatókörök szakaszban adja hozzá a chat: írj hatálya
  • Kattints a Telepítse az alkalmazást a munkaterületre gomb
  • Kattints a Elfogad gomb

Ha ez megtörtént, megjelenik egy összefoglaló képernyő:

Most tudomásul kell vennünk az OAuth tokent - később szükségünk lesz rá, amikor konfiguráljuk a Jenkins-t. Ezeket érzékeny bizonylatokként kell kezelnünk és tartsa biztonságban őket.

A Slack beállítás befejezéséhez meg kell hívnunk az új Jenkins felhasználót arra a csatornára, amelyet használni szeretnénk. Ennek egyik egyszerű módja az új felhasználó megemlítése a @ karaktert az egyes csatornákon belül.

3. Jenkins beállítása

Jenkins felállításához szükségünk lesz egy rendszergazdai fiókra.

Először kezdjük azzal, hogy bejelentkezünk a Jenkins-be, és navigálunk a Jenkins kezelése >Plugin Manager.

Aztán a Elérhető fülre keresünk Laza:

Jelöljük ki a jelölőnégyzetet Laza értesítés és kattintson Telepítés újraindítás nélkül.

Most új hitelesítő adatokat kell konfigurálnunk. Navigáljunk ide Jenkins> Hitelesítő adatok> Rendszer> Globális hitelesítő adatok és adj hozzá egy újat Titkos szöveg hitelesítő adatok:

Betesszük a Slack OAuth tokent a Titok terület. Ezeknek a hitelesítő adatoknak értelmes azonosítót és leírást is kell adnunk, hogy később könnyebben azonosíthassuk őket. A Jenkins hitelesítő adatok tárolása biztonságos hely a token megőrzéséhez.

Miután elmentettük a hitelesítő adatokat, még egy globális konfigurációt kell beállítani. Alatt Jenkins> Jenkins kezelése> Rendszer konfigurálása, ellenőriznünk kell a Egyéni laza alkalmazás bot felhasználó jelölőnégyzet a Laza szakasz:

Most, hogy befejeztük a Jenkins telepítését, nézzük meg, hogyan konfigurálhatjuk a Jenkins feladatokat és csővezetékeket a Slack üzenetek küldésére.

4. Hagyományos Jenkins munka konfigurálása

A hagyományos Jenkins munkák általában egy vagy több műveletet hajtanak végre céljaik elérése érdekében. Ezek konfigurálása a Jenkins felhasználói felületen keresztül történik.

A hagyományos munka és a Slack integrálása érdekében építkezés utáni műveletet fogunk használni.

Válasszunk bármilyen munkát, vagy hozzunk létre újat. Amikor ledobjuk a Építés utáni művelet hozzáadása menüben megtaláljuk Laza értesítések:

Miután kiválasztotta, rengeteg elérhető bemenet található a Laza értesítés művelethez. Általában az alapértelmezett értékek többsége elegendő. Van azonban néhány szükséges információ:

  • Mely felépítési fázisokból kell üzeneteket küldeni (kezdet, siker, kudarc stb.)
  • A használni kívánt hitelesítő adatok neve - amelyeket korábban hozzáadtunk
  • A laza csatorna név vagy tag-azonosító, amelyhez üzeneteket küldhet

Szükség esetén további mezőket is megadhatunk, például a Jenkins jobhoz használt kötelezettségvállalási információkat, egyéni üzeneteket, egyedi bot ikonokat és még sok mást:

A dolgok felhasználói felületen keresztül történő beállításakor használhatjuk a Tesztelje a kapcsolatot gombot annak biztosítására, hogy Jenkins elérje a Slacket. Ha ez sikerül, a Slenk csatornán egy tesztüzenetet fogunk látni a Jenkins felhasználó részéről:

Ha az üzenet nem jelenik meg, a Jenkins naplófájljai hasznosak a hibaelhárításhoz. Általában szükségünk van rá ellenőrizze még egyszer, hogy a build utáni művelet rendelkezik-e minden szükséges mezővel, hogy az OAuth tokent helyesen másolták be, és hogy a tokennek megfelelő hatókörök lettek megadva, amikor konfiguráltuk a Slack-et.

5. Jenkins csővezeték konfigurálása

A Jenkins Pipelines különbözik a hagyományos munkáktól. Egy Groovy szkriptet használnak szakaszokra bontva, hogy meghatározzák a felépítést. Nincsenek utólagos építési műveleteik sem, ezért magát a pipeline szkriptet használjuk a Slack üzenetek küldéséhez.

A következő kódrészlet üzenetet küld a Slacknek egy Jenkins-csővezetékről:

slackSend botUser: true, channel: 'builds', szín: '# 00ff00', üzenet: 'Jekins tesztelése Slackkel', tokenCredentialId: 'slack-token'

Csakúgy, mint a hagyományos Jenkins jobbeállításoknál, továbbra is meg kell adnunk a csatorna nevét és a használni kívánt hitelesítő adatok nevét.

A Jenkins csővezetéken keresztül számos további Slack funkciót is használhatunk, például fájlfeltöltés, üzenetszálak és egyebek.

A Jenkins csővezetékek használatának egyik hátránya, hogy nincs tesztgomb. A Slack integrációjának teszteléséhez végre kell hajtanunk a teljes csővezetéket.

A dolgok első beállításakor létrehozhatunk egy új folyamatot, amely csak a Slack parancsot tartalmazza, miközben a dolgokat működtetjük.

6. További szempontok

Most, hogy összekapcsoltuk a Jenkins-t és a Slack-et, van néhány további szempont.

Először, egyetlen Jenkins-példány képes kommunikálni több Slack munkaterülettel. Csak annyit kell tennünk, hogy létrehozunk egy egyedi alkalmazást, és minden egyes munkaterülethez létrehozunk egy új tokent. Mindaddig, amíg az egyes tokenek a saját hitelesítő adataiként vannak tárolva a Jenkins-ben, a különböző munkák különböző munkaterületekre küldhetnek üzenetet.

Ugyanezen vonalak mentén, egy másik Jenkins-job különböző Slack csatornákra küldhet üzenetet. Ez egy munkakörönkénti beállítás a építkezés utáni akciók konfiguráljuk. Például a szoftverépítésekkel kapcsolatos feladatok csak fejlesztési csatornára tehetnek közzé üzenetet. A teszteléssel vagy a gyártással kapcsolatos munkák a saját dedikált csatornáikra mehetnek.

Végül, miközben megvizsgáltuk a Jenkins egyik legnépszerűbb Slack bővítményét, amely finom szemcseméretű vezérlést biztosít a küldendő adatok felett, számos más, különböző célokat szolgáló bővítmény létezik. Például, ha akarjuk minden Jenkins feladata ugyanazt az értesítést küldeni, van egy Global Slack Notifier plugin, amely talán jobban megfelel erre.

7. Következtetés

Ebben a cikkben azt láttuk, hogyan lehet integrálni a Jenkins-t és a Slack-et, hogy visszajelzést kapjunk a CI / CD-csővezetékeinkről.

A Jenkins plugin és egy egyedi Slack alkalmazás segítségével üzeneteket küldhettünk a Jenkins-től a Slack-hez. Ez lehetővé teszi a csapatok számára, hogy észrevegyék a Jenkins-munkák állapotát, és gyorsabban megoldják a problémákat.


$config[zx-auto] not found$config[zx-overlay] not found