Latha math, Habr!
An-diugh bu mhath leam aon de na dòighean cleachdaidh a roinn
Ro-ràdh
Chan eil an leithid de ghiorrachadh mar DevOps a-nis na rud ùr don choimhearsnachd IT. Dha mòran dhaoine, tha an abairt “do DevOps” co-cheangailte ri seòrsa de phutan draoidheachd, nuair a thèid a bhriogadh, bidh an còd tagraidh gu fèin-ghluasadach a ’tionndadh gu bhith na thagradh air a chleachdadh agus air a dhearbhadh (tha a h-uile dad nas toinnte, ach tha sinn a’ tarraing às a h-uile pròiseas).
Mar sin, fhuair sinn òrdugh a leithid de phutan draoidheil a dhèanamh gus am b’ urrainn do luchd-rianachd an aplacaid a chleachdadh le aon bhriogadh. Tha diofar sheòrsaichean de bhuileachadh air a’ ghnìomh seo: bho bhith a’ sgrìobhadh bot airson gin de na teachdairean sa bhad gu bhith a’ leasachadh tagradh air leth. Ach a dh’ aindeoin sin, tha an aon amas aig seo uile - gus tòiseachadh air togail agus cleachdadh an tagraidh a dhèanamh cho follaiseach agus cho goireasach sa ghabhas.
Anns a 'chùis againn cleachdaidh sinn Jenkins.
Amas
Cruthaich obair Jenkins goireasach a chuireas air bhog togail agus (no) cleachdadh na microservice taghte de dhreach sònraichte.
Dàta inntrigidh
Tha grunn stòran againn anns a bheil còd stòr diofar mhicro-sheirbheisean.
A 'mìneachadh crìochan
Bu chòir na crìochan a leanas fhaighinn mar chur-a-steach don obair againn:
- URL an stòrais leis a’ chòd microservice a tha sinn airson a thogail agus a chleachdadh nuair a bhios sinn a’ ruith na h-obrach.
- ID a’ gheallaidh bhon tachair an togail.
MAR A THA
Is e an dòigh as fhasa air an obair seo a choileanadh dà pharamadair den t-seòrsa String a chruthachadh.
Anns a ’chùis seo, feumaidh an neach-cleachdaidh a dhol a-steach le làimh air an t-slighe chun stòr agus an id gealltanas, nach eil, chì thu, gu tur goireasach.
MAR A BHITH
A-nis feuchaidh sinn ri seòrsa eile de pharamadairean gus beachdachadh air na buannachdan uile.
Cruthaichidh sinn a 'chiad paramadair leis an t-seòrsa Parameter Roghainn, an dàrna fear - Paramadair Iomraidh Ath-ghnìomhach Roghainnean Gnìomhach. Anns a ’pharamadair leis an t-seòrsa Roghainn, cuiridh sinn le làimh anns an raon Roghainnean ainmean nan stòran far a bheil còd ar microservices air a stòradh.
Mas toil leis an luchd-èisteachd an artaigil seo, an uairsin san ath artaigil bheir mi cunntas air a’ phròiseas airson gnìomhan a rèiteachadh ann an Jenkins, a ’cleachdadh tuairisgeul tro chòd (Rèiteachadh mar chòd), i.e. cha bhith feum againn air ainmean tasgaidh a chuir a-steach le làimh agus paramadairean a chruthachadh, tachraidh a h-uile càil gu fèin-ghluasadach (gheibh ar còd liosta de stòran bho SCM agus cruthaichidh sinn paramadair leis an liosta seo).
Thèid luachan an dàrna paramadair a lìonadh gu dinamach, a rèir dè an luach a bheir a’ chiad paramadair (test1 no test2), leis gu bheil a liosta geallaidhean fhèin aig gach stòr.
Roghainnean Gnìomhach Paramadair Iomraidh Reactive tha na raointean a leanas aige ri lìonadh:
- Ainm - ainm paramadair.
- sgriobt - còd a thèid a chuir gu bàs a h-uile uair a thèid luach a’ pharamadair bhon raon paramadair ainmichte atharrachadh (anns a’ chùis againn, nuair a thaghas sinn eadar test1 agus test2).
- Tuairisgeul - tuairisgeul goirid air paramadair.
- Seòrsa Roghainn - an seòrsa rud a thill an sgriobt (anns a’ chùis againn tillidh sinn còd html).
- Paramadair air ainmeachadh - ainm a’ pharamadair, nuair a thèid a luach atharrachadh, thèid an còd bhon roinn Sgriobt a chuir gu bàs.
Rachamaid air adhart gu dìreach gu bhith a 'lìonadh a-mach an raon as cudromaiche anns a' pharamadair seo. Thathas a’ tabhann dà sheòrsa buileachaidh dhuinn airson taghadh: cleachdadh Sgriob Groovy no Sgriobtur Sgriobtur.
Bidh sinn a’ taghadh a’ chiad fhear, leis nach eil ann an Scriptler ach plugan a shàbhaileas sgriobtaichean a sgrìobh thu roimhe agus a leigeas leat an cleachdadh ann an gnìomhan eile gun a bhith a’ dèanamh lethbhreac-pas a-rithist.
Còd Groovy gus a h-uile gealltanas fhaighinn bhon stòr taghte:
AUTH = "логин и пароль в Base64"
GIT_URL = "url до вашей SCM (https://bitbucket.org/)"
PROJECT_NAME = "имя проектной области, где находятся репозитории"
def htmlBuild() {
html = """
<html>
<head>
<meta charset="windows-1251">
<style type="text/css">
div.grayTable {
text-align: left;
border-collapse: collapse;
}
.divTable.grayTable .divTableCell, .divTable.grayTable .divTableHead {
padding: 0px 3px;
}
.divTable.grayTable .divTableBody .divTableCell {
font-size: 13px;
}
</style>
</head>
<body>
"""
def commitOptions = ""
getCommitsForMicroservice(MICROSERVICE_NAME).each {
commitOptions += "<option style='font-style: italic' value='COMMIT=${it.getKey()}'>${it}</option>"
}
html += """<p style="display: inline-block;">
<select id="commit_id" size="1" name="value">
${commitOptions}
</select></p></div>"""
html += """
</div>
</div>
</div>
</body>
</html>
"""
return html
}
def getCommitsForMicroservice(microserviceRepo) {
def commits = [:]
def endpoint = GIT_URL + "/rest/api/1.0/projects/${PROJECT_NAME}/repos/${microserviceRepo}/commits"
def conn = new URL(endpoint).openConnection()
conn.setRequestProperty("Authorization", "Basic ${AUTH}")
def response = new groovy.json.JsonSlurper().parseText(conn.content.text)
response.values.each {
commits.put(it.displayId, it.message)
}
return commits
}
return htmlBuild()
Gun a dhol a-steach gu mion-fhiosrachadh, gheibh an còd seo an t-ainm microservice (MICROSERVICE_NAME) mar chur-a-steach agus cuiridh e iarrtas gu Bitbucket (dòigh getCommitsForMicroservice) a’ cleachdadh an API aige, agus a’ faighinn an id agus an teachdaireachd gealltanas a h-uile gealltanas airson meanbh-sheirbheis sònraichte.
Mar a chaidh a ràdh na bu tràithe, bu chòir don chòd seo tilleadh html a thèid a thaisbeanadh air an duilleag Togail le Parameters ann an Jenkins, agus mar sin bidh sinn a’ pasgadh a h-uile luach a fhuaireadh bho Bitbucket ann an liosta agus gan cur ri taghadh.
Às deidh na ceumannan gu lèir a chrìochnachadh, bu chòir dhuinn duilleag cho breagha fhaighinn Togail le Parameters.
Ma thagh thu test1 microservice:
Ma thagh thu test2 microservice:
Aontaich gum bi e tòrr nas goireasaiche don neach-cleachdaidh eadar-obrachadh leis an obair agad san dòigh seo na bhith a’ dèanamh lethbhreac den url a h-uile turas agus a’ coimhead airson an id gealltanas a tha a dhìth.
PS Tha an artaigil seo a 'toirt seachad eisimpleir gu math sìmplidh, a dh' fhaodadh nach eil e gu feum practaigeach san fhoirm seo, oir tha mòran a bharrachd de pharaimearan eadar-dhealaichte aig co-chruinneachaidhean, ach b 'e adhbhar an artaigil seo sealltainn mar a tha an inneal ag obair, gun a bhith a' toirt seachad fuasgladh obrach.
PSS Mar a sgrìobh mi na bu thràithe, ma tha an artaigil seo feumail, bidh an ath fhear mu dheidhinn rèiteachadh fiùghantach de ghnìomhan Jenkins tro chòd.
Source: www.habr.com