Integrácia Jenkins Slack

1. Prehľad

Keď sú naše tímy zodpovedné za postupy DevOps, často musíme monitorovať zostavenia a ďalšie automatizované úlohy.

V tomto výučbe sa dozvieme, ako nakonfigurovať dve populárne platformy, Jenkins a Slack, aby spolupracovali a povedali nám, čo sa deje, keď sú spustené naše kanály CI / CD.

2. Nastavenie Slacku

Začnime konfiguráciou Slacku, aby mu mohol Jenkins posielať správy. Urobiť toto, vytvoríme vlastnú aplikáciu Slack, ktorá vyžaduje účet správcu.

V aplikácii Slack vytvoríme aplikáciu a vygenerujeme token OAuth:

  • Navštívte stránku //api.slack.com
  • Prihláste sa do požadovaného pracovného priestoru
  • Kliknite na ikonu Začnite stavať tlačidlo
  • Pomenujte aplikáciu Jenkins a kliknite Vytvoriť aplikáciu
  • Kliknite na OAuth a povolenia
  • V Rozsahy tokenov botov oddiel, pridajte chat: napíš rozsah
  • Kliknite na ikonu Nainštalujte si aplikáciu do pracovného priestoru tlačidlo
  • Kliknite na ikonu súhlasiť tlačidlo

Po dokončení sa zobrazí súhrnná obrazovka:

Teraz si musíme všimnúť token OAuth - budeme ho potrebovať neskôr, keď nakonfigurujeme Jenkinsa. Mali by sme s nimi zaobchádzať ako s citlivými údajmi a udržujte ich v bezpečí ..

Na dokončenie nastavenia Slacku musíme pozvať nového používateľa Jenkinsa do kanálov, ktoré si prajeme, aby používal. Jedným z jednoduchých spôsobov, ako to urobiť, je spomenúť nového používateľa pomocou @ znak v každom kanáli.

3. Nastavenie Jenkinsa

Ak chcete nastaviť Jenkinsa, budeme potrebovať účet správcu.

Najprv začnime prihlásením do Jenkinsa a prechodom do Spravujte Jenkinsa >Správca doplnkov.

Potom na K dispozícii karta, vyhľadáme Slack:

Začiarknite políčko pre Slack Notification a kliknite Nainštalujte bez reštartu.

Teraz musíme nakonfigurovať nové poverenia. Prejdime k Jenkins> Poverovacie údaje> Systém> Globálne poverenia a pridať nový Tajný text poverenie:

Token OAuth od Slacka vložíme do Tajomstvo lúka. Mali by sme tiež dať týmto povereniam zmysluplné ID a popis, aby sme ich neskôr mohli ľahšie identifikovať. Úložisko poverení Jenkins je bezpečným miestom na uchovanie tohto tokenu.

Po uložení poverení je potrebné nastaviť ešte jednu globálnu konfiguráciu. Pod Jenkins> Spravovať Jenkins> Konfigurovať systém, musíme skontrolovať Užívateľ robota slack slack začiarkavacie políčko pod položkou Slack časť:

Teraz, keď sme dokončili nastavenie Jenkins, poďme sa pozrieť na to, ako nakonfigurovať úlohy a kanály Jenkins na odosielanie správ Slack.

4. Konfigurácia tradičnej úlohy Jenkins

Tradičné Jenkinsove práce zvyčajne vykonávajú jednu alebo viac akcií na dosiahnutie svojich cieľov. Konfigurujú sa prostredníctvom používateľského rozhrania Jenkins.

S cieľom integrovať tradičné pracovné miesto do Slacku, použijeme akciu po zostavení.

Vyberte si akúkoľvek prácu alebo vytvorme novú. Keď spustíme dole Pridajte akciu po zostavení menu nájdeme Slack Notifications:

Po výbere je k dispozícii veľa vstupov pre akciu Slack Notification. Spravidla je väčšina predvolených hodnôt dostatočná. Existuje však niekoľko požadovaných informácií:

  • Pre ktoré fázy budovania sa majú odosielať správy (štart, úspech, zlyhanie atď.)
  • Názov poverení, ktoré sa majú použiť - tie, ktoré sme pridali predtým
  • Názov kanálu Slack alebo ID člena, na ktorý sa majú správy odosielať

Môžeme tiež určiť ďalšie polia, ak je to potrebné, napríklad informácie o potvrdení použité pre úlohu Jenkins, vlastné správy, ikony vlastných robotov a ďalšie:

Pri nastavovaní vecí cez používateľské rozhranie môžeme použiť Vyskúšajte pripojenie tlačidlo, aby sa zabezpečilo, že Jenkins dosiahne Slack. Ak bude úspešný, zobrazí sa testovacia správa v kanáli Slack od používateľa Jenkins:

Ak sa správa nezobrazí, sú súbory protokolu Jenkins užitočné pri riešení problémov. Spravidla musíme znova skontrolujte, či akcia po vytvorení obsahuje všetky povinné polia, že token OAuth bol skopírovaný správne a že tokenu boli pridelené správne rozsahy, keď sme nakonfigurovali Slack.

5. Konfigurácia Jenkinsovho potrubia

Jenkins Pipelines sa líši od tradičných zamestnaní. Na definovanie zostavenia používajú jediný Groovy skript rozdelený do fáz. Tiež nemajú akcie po zostavení, takže na odosielanie správ Slack používame samotný pipeline skript.

Nasledujúci úryvok odošle správu Slackovi z Jenkinsovho potrubia:

slackSend botUser: true, kanál: 'builds', farba: '# 00ff00', správa: 'Testing Jekins with Slack', tokenCredentialId: 'slack-token'

Rovnako ako pri tradičnom nastavení úlohy Jenkins, aj tu musíme určiť názov kanála a názov poverenia, ktoré sa má použiť.

Prostredníctvom Jenkinsovho potrubia môžeme tiež použiť celý rad ďalších funkcií Slacku, ako je nahrávanie súborov, vlákna správ a ďalšie.

Jednou z nevýhod používania Jenkinsových potrubí je, že neexistuje testovacie tlačidlo. Aby sme vyskúšali integráciu so Slackom, musíme spustiť celý pipeline.

Pri prvom nastavovaní vecí môžeme vytvoriť nový kanál, ktorý obsahuje iba príkaz Slack, kým veci pracujeme.

6. Ďalšie úvahy

Teraz, keď sme pripojili Jenkinsa a Slacka, existuje niekoľko ďalších úvah.

Po prvé, jedna inštancia Jenkins môže komunikovať s viacerými pracovnými priestormi Slack. Všetko, čo musíme urobiť, je vytvoriť vlastnú aplikáciu a vygenerovať nový token pre každý pracovný priestor. Pokiaľ je každý token uložený ako svoje vlastné poverenie v serveri Jenkins, môžu sa rôzne úlohy uverejňovať v rôznych pracovných priestoroch.

V rovnakom duchu iná práca Jenkinsa môže prispievať na rôzne kanály Slack. Toto je nastavenie na pracovnú pozíciu v akcie po vybudovaní konfigurujeme. Napríklad úlohy súvisiace so zostavením softvéru by sa mohli uverejniť na kanáli iba pre vývoj. A úlohy súvisiace s testovaním alebo výrobou by mohli ísť na ich vlastné vyhradené kanály.

Nakoniec, aj keď sme sa pozreli na jeden z najobľúbenejších doplnkov Slack pre Jenkins, ktorý poskytuje presnú kontrolu nad tým, čo sa má odosielať, existuje množstvo ďalších doplnkov, ktoré slúžia na rôzne účely. Napríklad, ak chceme každý Jenkinsova úloha poslať rovnaké oznámenie, existuje Global Slack Notifier doplnok, ktorý by sa na to mohol lepšie hodiť.

7. Záver

V tomto článku sme videli, ako integrovať Jenkinsa a Slacka, aby sme získali spätnú väzbu na naše kanály CI / CD.

Pomocou pluginu Jenkins sme spolu s vlastnou aplikáciou Slack dokázali posielať správy z Jenkins do Slacku. To umožňuje tímom všimnúť si stav Jenkinsových úloh a rýchlejšie riešiť problémy.


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