Jenkins Slack integracija

1. Pregled

Kada su naši timovi odgovorni za prakse DevOps-a, često moramo nadgledati izrade i druge automatizirane poslove.

U ovom uputstvu vidjet ćemo kako konfigurirati dvije popularne platforme, Jenkins i Slack, da rade zajedno i govore nam što se događa dok naši CI / CD cjevovodi rade.

2. Postavljanje Slacka

Počnimo s konfiguriranjem Slacka kako bi mu Jenkins mogao slati poruke. Uraditi ovo, stvorit ćemo prilagođenu Slack aplikaciju koja zahtijeva administratorski račun.

U Slacku ćemo stvoriti aplikaciju i generirati OAuth token:

  • Posjetite //api.slack.com
  • Prijavite se u željeni radni prostor
  • Pritisnite Počnite graditi dugme
  • Imenujte aplikaciju Jenkins i kliknite Izradite aplikaciju
  • Kliknite na OAuth & Dopuštenja
  • U Bot Token Scopes odjeljak, dodajte chat: napiši opseg
  • Pritisnite Instalirajte aplikaciju u radni prostor dugme
  • Pritisnite Prihvatiti dugme

Kad je to gotovo, vidjet ćemo zaslon sažetka:

Sada moramo uzeti na znanje OAuth token - trebat će nam kasnije kad konfiguriramo Jenkinsa. To bismo trebali tretirati kao osjetljive vjerodajnice i čuvaj ih na sigurnom ..

Da bismo dovršili postavljanje Slacka, moramo pozvati novog korisnika Jenkinsa na kanale koje želimo da koristi. Jednostavan način za to je spominjanje novog korisnika s @ znak unutar svakog kanala.

3. Postavljanje Jenkinsa

Da postavim Jenkinsa, trebat će nam administratorski račun.

Prvo, krenimo s prijavom na Jenkins i navigacijom na Upravljajte Jenkinsom >Upravitelj dodataka.

Zatim, na Dostupno kartici, tražit ćemo Zatišje:

Označimo potvrdni okvir za Slack obavijest i kliknite Instalirajte bez ponovnog pokretanja.

Sada moramo konfigurirati nove vjerodajnice. Idemo do Jenkins> Vjerodajnice> Sustav> Globalne vjerodajnice i dodajte novi Tajni tekst uvjerenje:

Stavit ćemo OAuth token iz Slacka u Tajna polje. Ovim vjerodajnicama trebali bismo dati i značajan ID i opis kako bismo ih kasnije mogli lako identificirati. Trgovina vjerodajnica Jenkins sigurno je mjesto za čuvanje ovog tokena.

Nakon što spremimo vjerodajnice, treba postaviti još jednu globalnu konfiguraciju. Pod, ispod Jenkins> Upravljanje Jenkinsom> Konfiguriranje sustava, moramo provjeriti Prilagođeni opušteni korisnik bota aplikacije potvrdni okvir ispod Zatišje odjeljak:

Sad kad smo dovršili postavljanje Jenkinsa, pogledajmo kako konfigurirati Jenkinsove poslove i cjevovode za slanje Slack poruka.

4. Konfiguriranje tradicionalnog Jenkinsovog posla

Tradicionalni Jenkinsovi poslovi obično izvršavaju jednu ili više radnji za postizanje svojih ciljeva. Oni se konfiguriraju putem Jenkins korisničkog sučelja.

Kako bi integrirali tradicionalni posao sa Slackom, koristit ćemo akciju nakon izrade.

Odaberite bilo koji posao ili stvorimo novi. Kad spustimo dolje Dodajte radnju nakon izgradnje izbornik, naći ćemo Slack obavijesti:

Nakon odabira, dostupno je puno ulaznih podataka za akciju Slack Notification. Općenito je dovoljna većina zadanih vrijednosti. Međutim, postoji nekoliko potrebnih podataka:

  • Koje faze izrade za slanje poruka (početak, uspjeh, neuspjeh itd.)
  • Naziv vjerodajnica koje ćemo koristiti - one koje smo prethodno dodali
  • Slack naziv kanala ili ID člana na koji želite slati poruke

Po želji možemo odrediti i dodatna polja, kao što su informacije o urezi koje se koriste za posao Jenkins, prilagođene poruke, prilagođene ikone botova i još mnogo toga:

Kada postavljamo stvari putem korisničkog sučelja, možemo koristiti Test veza gumb kako bi Jenkins mogao doći do Slacka. Ako uspije, vidjet ćemo testnu poruku korisnika Jenkins na kanalu Slack:

Ako se poruka ne pojavi, datoteke evidencije Jenkins korisne su za rješavanje problema. Općenito, moramo još jednom provjerite imaju li radnje nakon izrade sva obavezna polja, da je OAuth token ispravno kopiran i da je token dobio odgovarajuće opsege kada smo konfigurirali Slack.

5. Konfiguriranje Jenkinsova cjevovoda

Jenkinsovi cjevovodi razlikuju se od tradicionalnih poslova. Za definiranje izrade koriste jednu Groovyjevu skriptu, podijeljenu u faze. Oni također nemaju radnje nakon izgradnje, pa koristimo samu skriptu cjevovoda za slanje Slack poruka.

Sljedeći isječak Slacku šalje poruku iz Jenkinsova cjevovoda:

slackSend botUser: true, channel: 'builds', color: '# 00ff00', message: 'Testing Jekins with Slack', tokenCredentialId: 'slack-token'

Baš kao i kod tradicionalnog postavljanja posla Jenkins, i dalje moramo odrediti naziv kanala i naziv vjerodajnice koje ćemo koristiti.

Putem Jenkins cjevovoda možemo koristiti i razne dodatne značajke Slack, poput prijenosa datoteka, niti poruka i još mnogo toga.

Nedostatak korištenja Jenkinsovih cjevovoda je taj što ne postoji testni gumb. Da bismo testirali integraciju sa Slackom, moramo izvršiti cijeli cjevovod.

Prilikom prvog postavljanja stvari, možemo stvoriti novi cjevovod koji sadrži samo naredbu Slack dok stvari radimo.

6. Dodatna razmatranja

Sad kad smo povezali Jenkinsa i Slacka, postoje neka dodatna razmatranja.

Prvo, pojedinačna Jenkinsova instanca može komunicirati s više Slack radnih prostora. Sve što moramo učiniti je stvoriti prilagođenu aplikaciju i generirati novi token za svaki radni prostor. Sve dok je svaki token pohranjen kao svoja vjerodajnica u Jenkinsu, različiti se poslovi mogu objavljivati ​​na različitim radnim prostorima.

U skladu s istim linijama, drugi Jenkinsov posao može objavljivati ​​na različitim Slack kanalima. Ovo je postavka po radnom mjestu u akcije nakon izgradnje konfiguriramo. Na primjer, poslovi vezani uz izradu softvera mogu se objavljivati ​​na kanalu samo za razvoj. A poslovi povezani s ispitivanjem ili proizvodnjom mogli bi ići na njihove vlastite namjenske kanale.

Napokon, dok smo pogledali jedan od popularnijih Slack dodataka za Jenkins, koji pruža preciznu kontrolu nad time što poslati, postoji niz drugih dodataka koji služe u različite svrhe. Primjerice, ako želimo svaki Jenkinsov posao da pošalje istu obavijest, postoji Global Slack Notifier dodatak koji bi mogao biti prikladniji za ovo.

7. Zaključak

U ovom smo članku vidjeli kako integrirati Jenkinsa i Slack kako bismo stekli povratne informacije o našim CI / CD cjevovodima.

Koristeći dodatak Jenkins, zajedno s prilagođenom aplikacijom Slack, mogli smo slati poruke s Jenkinsa u Slack. To omogućava timovima da uoče status Jenkinsovih poslova i brže riješe probleme.