Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Hi uile. Tha mi ag obair mar phrìomh rianadair siostam aig OK agus tha uallach orm airson obrachadh seasmhach a’ phortal. Tha mi airson bruidhinn air mar a thog sinn pròiseas airson ath-chur air diosgan gu fèin-ghluasadach, agus an uairsin mar a chuir sinn a-mach an rianadair bhon phròiseas seo agus chuir sinn bot na àite.

Tha an artaigil seo na sheòrsa de eadar-theangachadh cuirmean aig HighLoad+ 2018

A 'togail pròiseas ath-nuadhachadh diosg

An toiseach cuid de na h-àireamhan

Is e seirbheis mòr a th’ ann an OK a bhios milleanan de dhaoine a’ cleachdadh. Tha e air a fhrithealadh le timcheall air 7 mìle frithealaiche, a tha suidhichte ann an 4 ionadan dàta eadar-dhealaichte. Tha còrr air 70 mìle diosc anns na frithealaichean. Ma chruaicheas tu iad air mullach a chèile, gheibh thu tùr nas àirde na 1 km a dh’ àirde.

Is e draibhearan cruaidh am pàirt frithealaiche a dh’ fhàilicheas mar as trice. Le leithid de leabhraichean, feumaidh sinn mu 30 diosc atharrachadh gach seachdain, agus tha am modh-obrach seo air a thighinn gu bhith na chleachdadh nach eil gu math tlachdmhor.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Tachartasan

Tha a’ chompanaidh againn air riaghladh tachartais làn-chuimseach a thoirt a-steach. Bidh sinn a 'clàradh gach tachartas ann an Jira, agus an uairsin a' fuasgladh agus a rèiteachadh. Ma thug tachartas buaidh air luchd-cleachdaidh, bidh sinn gu cinnteach a 'tighinn còmhla agus a' smaoineachadh air mar a dhèiligeas sinn nas luaithe ann an cùisean mar sin, mar a lughdaicheas tu a 'bhuaidh agus, gu dearbh, ciamar a chuireas sinn casg air ath-chuairteachadh.

Tha innealan stòraidh mar eisgeachd. Tha Zabbix a’ cumail sùil air an inbhe aca. Bidh sinn a’ cumail sùil air teachdaireachdan ann an Syslog airson mearachdan sgrìobhaidh/leughaidh, a’ sgrùdadh inbhe creach HW/SW, a’ cumail sùil air SMART, agus a’ tomhas caitheamh airson SSDs.

Mar a chaidh na diosgan atharrachadh roimhe seo

Nuair a thachras spionnadh ann an Zabbix, thèid tachartas a chruthachadh ann an Jira agus thèid a shònrachadh gu fèin-ghluasadach dha na h-innleadairean iomchaidh anns na h-ionadan dàta. Bidh sinn a’ dèanamh seo leis a h-uile tachartas HW, is e sin, an fheadhainn a dh’ fheumas obair chorporra sam bith le uidheamachd san ionad dàta.
Is e innleadair ionad dàta neach a dh’ fhuasglas cùisean co-cheangailte ri bathar-cruaidh agus a tha an urra ri stàladh, cumail suas agus toirt air falbh frithealaichean. An dèidh an tiogaid fhaighinn, gheibh an t-innleadair a dh'obair. Ann an sgeilpichean diosg bidh e ag atharrachadh diosgan gu neo-eisimeileach. Ach mura h-eil cothrom aige air an inneal a tha a dhìth, bidh an innleadair a’ tionndadh gu rianadairean an t-siostaim air dleasdanas airson cuideachadh. An toiseach, feumaidh tu an diosc a thoirt air falbh bho chuairteachadh. Gus seo a dhèanamh, feumaidh tu na h-atharrachaidhean riatanach a dhèanamh air an fhrithealaiche, stad a chuir air tagraidhean, agus dì-mhunnt an diosc.

Tha uallach air rianadair an t-siostaim a tha air dleasdanas airson obrachadh na portal gu lèir rè an gluasad obrach. Bidh e a’ sgrùdadh thachartasan, a’ càradh, agus a’ cuideachadh luchd-leasachaidh gus gnìomhan beaga a choileanadh. Chan eil e a’ dèiligeadh ach ri draibhean cruaidh.

Roimhe sin, bha innleadairean ionad dàta a’ conaltradh ri rianadair an t-siostaim tro chat. Chuir innleadairean ceanglaichean gu tiogaidean Jira, lean an rianaire iad, chùm iad log obrach ann an leabhar notaichean. Ach tha cabadaich mì-ghoireasach airson gnìomhan mar sin: chan eil am fiosrachadh structarail agus tha e air chall gu sgiobalta. Agus b 'urrainn don rianadair dìreach coiseachd air falbh bhon choimpiutair agus gun a bhith a' freagairt iarrtasan airson ùine, fhad 'sa bha an innleadair na sheasamh aig an fhrithealaiche le stac de dhioscaichean agus a' feitheamh.

Ach b’ e an rud a bu mhiosa nach robh an luchd-rianachd a’ faicinn an dealbh gu lèir: dè na tachartasan diosc a bha ann, far am faodadh duilgheadas èirigh. Tha seo air sgàth gu bheil sinn a’ tiomnadh a h-uile tachartas HW gu innleadairean. Seadh, bha e comasach a h-uile tachartas a thaisbeanadh air deas-bhòrd an rianaire. Ach tha tòrr dhiubh ann, agus cha robh an rianadair an sàs ach airson cuid dhiubh.

A bharrachd air an sin, cha b 'urrainn don innleadair prìomhachasan a shuidheachadh gu ceart, oir chan eil fios aige air adhbhar luchd-frithealaidh sònraichte no sgaoileadh fiosrachaidh am measg dhràibhearan.

Dòigh-obrach ùr na àite

B ’e a’ chiad rud a rinn sinn a h-uile tachartas diosc a ghluasad gu seòrsa air leth “Diosg HW” agus na raointean “ainm inneal bloca”, “meud” agus “seòrsa diosc” a chuir ris gus am biodh am fiosrachadh seo air a stòradh san tiogaid agus gum biodh chan fheum thu an-còmhnaidh iomlaid ann an cabadaich.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Dh’ aontaich sinn cuideachd nach atharraich sinn ach aon diosc aig aon tachartas. Rinn seo gu mòr am pròiseas fèin-ghluasaid, cruinneachadh staitistig agus obair san àm ri teachd.

A bharrachd air an sin, chuir sinn ris an raon “rianaire cunntachail”. Tha rianadair an t-siostaim air dleasdanas air a chuir a-steach gu fèin-ghluasadach an sin. Tha seo gu math goireasach, oir a-nis tha an innleadair an-còmhnaidh a’ faicinn cò a tha cunntachail. Chan fheumar a dhol chun mhìosachan agus sgrùdadh. B’ e an raon seo a rinn e comasach tiogaidean a thaisbeanadh air deas-bhòrd an rianaire a dh’ fhaodadh a bhith feumach air a chuideachadh.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Gus dèanamh cinnteach gum faigh a h-uile com-pàirtiche na buannachdan as motha bho innleachdan, chruthaich sinn sìoltachain agus clàran-dannsa agus dh’ innis sinn dha na balaich mun deidhinn. Nuair a thuigeas daoine atharraichean, chan eil iad gam fàgail fhèin bhuapa mar rud neo-riatanach. Tha e cudromach gum bi fios aig innleadair air an àireamh raca far a bheil am frithealaiche suidhichte, meud agus seòrsa diosc. Feumaidh an rianaire, an toiseach, tuigsinn dè an seòrsa buidheann de luchd-frithealaidh a th’ ann agus dè a’ bhuaidh a dh’ fhaodadh a bhith ann nuair a thèid diosc a chuir na àite.

Tha làthaireachd achaidhean agus an taisbeanadh aca goireasach, ach cha do shàbhail e sinn bhon fheum air cabadaich a chleachdadh. Gus seo a dhèanamh, dh'fheumadh sinn an sruth-obrach atharrachadh.

Roimhe seo bha e mar seo:

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Seo mar a chumas innleadairean ag obair an-diugh nuair nach eil feum aca air cuideachadh rianadair.

B’ e a’ chiad rud a rinn sinn inbhe ùr a thoirt a-steach Rannsaich. Tha an tiogaid san inbhe seo nuair nach eil an innleadair air co-dhùnadh fhathast am feum e rianadair no nach eil. Tron inbhe seo, faodaidh an innleadair an tiogaid a ghluasad chun rianadair. A bharrachd air an sin, bidh sinn a’ cleachdadh an inbhe seo gus tiogaidean a chomharrachadh nuair a dh’ fheumar diosg a chuir na àite, ach chan eil an diosc fhèin air an làrach. Bidh seo a’ tachairt ann an cùis CDNn agus làraich iomallach.

Chuir sinn ris an inbhe cuideachd Ready. Thèid an tiogaid a ghluasad thuige às deidh an diosc a chuir na àite. Is e sin, chaidh a h-uile càil a dhèanamh mu thràth, ach tha an HW / SW RAID air a shioncronachadh air an fhrithealaiche. Faodaidh seo ùine mhòr a thoirt.

Ma tha rianadair an sàs san obair, bidh an sgeama beagan nas iom-fhillte.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Bho inbhe Open Faodar an tiogaid eadar-theangachadh le rianadair an t-siostaim agus an innleadair. Ann an staid A 'dèanamh adhartais bidh an rianaire a’ toirt air falbh an diosc bho chuairteachadh gus an urrainn don innleadair dìreach a tharraing a-mach: a’ tionndadh air an backlight, a’ toirt a-mach an diosc, a’ stad thagraidhean, a rèir a’ bhuidheann shònraichte de luchd-frithealaidh.

Thèid an tiogaid an uairsin a ghluasad gu Deiseil airson atharrachadh: Tha seo na chomharradh don innleadair gun gabh an diosc a tharraing a-mach. Tha a h-uile raon ann an Jira air a lìonadh a-steach mu thràth, tha fios aig an innleadair dè an seòrsa agus meud an diosc. Thèid an dàta seo a chuir a-steach gu fèin-ghluasadach air an inbhe roimhe no leis an rianaire.

Às deidh an diosc a chuir na àite, thèid inbhe na tiogaid atharrachadh gu Atharraichte. Bidh e a’ dèanamh cinnteach gu bheil an diosc ceart air a chuir a-steach, gu bheil sgaradh air a dhèanamh, gu bheil an tagradh air a chuir air bhog agus gu bheil cuid de ghnìomhan faighinn seachad air dàta air an cur air bhog. Faodar an tiogaid a ghluasad chun inbhe cuideachd Ready, anns a 'chùis seo bidh an rianadair fhathast cunntachail, oir chuir e an diosg ann an cuairteachadh. Tha an sgeama slàn a’ coimhead mar seo.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Le bhith a’ cur raointean ùra ris rinn ar beatha tòrr nas fhasa. Thòisich na balaich ag obair le fiosrachadh structarail, dh'fhàs e soilleir dè a dh'fheumar a dhèanamh agus dè an ìre. Tha prìomhachasan air fàs mòran nas buntainniche, leis gu bheil iad a-nis air an suidheachadh leis an rianaire.

Chan eil feum air cabadaich. Gu dearbh, faodaidh an rianaire sgrìobhadh chun innleadair “feumar seo a chuir na àite nas luaithe,” no “tha e mar-thà feasgar, am bi ùine agad a chuir na àite?” Ach cha bhith sinn a’ conaltradh gach latha tuilleadh ann an cabadaich mu na cùisean sin.

Thòisich diosgan air an atharrachadh ann an baidsean. Ma thàinig an rianadair a dh'obair beagan tràth, tha ùine shaor aige, agus chan eil dad air tachairt fhathast, faodaidh e grunn luchd-frithealaidh ullachadh airson an ath-chur: lìon a-steach na h-achaidhean, thoir air falbh diosgan bho chuairteachadh agus gluais an obair gu innleadair. Bidh an innleadair a ’tighinn chun ionad dàta beagan nas fhaide air adhart, a’ faicinn na h-obrach, a ’toirt na draibhearan riatanach bhon taigh-bathair agus a’ dol nan àite sa bhad. Mar thoradh air an sin, tha an ìre ath-chuiridh air a dhol suas.

Leasanan a chaidh ionnsachadh nuair a thogas tu Sruth-obrach

  • Nuair a bhios tu a 'togail modh-obrach, feumaidh tu fiosrachadh a chruinneachadh bho dhiofar thùsan.
    Cha robh fios aig cuid den luchd-rianachd againn gu bheil an innleadair ag atharrachadh na diosgan e fhèin. Bha cuid den bheachd gun robh sioncronadh MD RAID air a làimhseachadh le innleadairean, eadhon ged nach robh cothrom aig cuid dhiubh sin a dhèanamh. Rinn cuid de phrìomh innleadairean seo, ach chan ann an-còmhnaidh leis nach deach am pròiseas a mhìneachadh an àite sam bith.
  • Bu chòir don dòigh-obrach a bhith sìmplidh agus furasta a thuigsinn.
    Tha e duilich do dhuine iomadh ceum a chumail na inntinn. Bu chòir na h-inbhean nàbaidh as cudromaiche ann an Jira a chuir air a’ phrìomh sgrion. Faodaidh tu an ath-ainmeachadh, mar eisimpleir, canaidh sinn Ann an adhartas Deiseil airson atharrachadh. Agus faodar inbhean eile fhalach ann an clàr tuiteam-sìos gus nach bi iad nan sùilean. Ach tha e nas fheàrr gun a bhith a 'cuingealachadh dhaoine, gus cothrom a thoirt dhaibh an eadar-ghluasad a dhèanamh.
    Mìnich luach ùr-ghnàthachadh. Nuair a thuigeas daoine, tha iad nas gabhail ris a’ mhodh-obrach ùr. Bha e glè chudromach dhuinne nach bi daoine a’ cliogadh tron ​​​​phròiseas gu lèir, ach gun lean iad e. An uairsin thog sinn fèin-ghluasad air seo.
  • Fuirich, dèan mion-sgrùdadh, cuir a-mach e.
    Thug e timcheall air mìos dhuinn am modh-obrach a thogail, buileachadh teignigeach, coinneamhan agus còmhraidhean. Agus bheir buileachadh barrachd air trì mìosan. Chunnaic mi mar a tha daoine slaodach a’ tòiseachadh a’ cleachdadh an innleachdas. Bha mòran àicheileachd anns na tràth ìrean. Ach bha e gu tur neo-eisimeileach bhon dòigh-obrach fhèin agus a bhuileachadh teicnigeach. Mar eisimpleir, cha do chleachd aon rianadair Jira, ach am plugan Jira ann an Confluence, agus cha robh cuid de rudan ri fhaighinn dha. Sheall sinn dha Jira, agus mheudaich cinneasachd an rianaire an dà chuid airson gnìomhan coitcheann agus airson diosgan a chuir an àite.

Automation ath-nuadhachadh diosc

Thàinig sinn gu fèin-ghluasad ath-nuadhachadh diosc grunn thursan. Bha leasachaidhean agus sgriobtaichean againn mu thràth, ach dh’ obraich iad uile gu h-eadar-ghnìomhach no le làimh agus bha feum aca air an cur air bhog. Agus is ann dìreach às deidh dhuinn am modh-obrach ùr a thoirt a-steach a thuig sinn gur e seo dìreach a bha sinn a dhìth.

Bhon àm seo tha ar pròiseas ùr air a roinn ann an ìrean, agus tha cluicheadair sònraichte aig gach fear dhiubh agus liosta de ghnìomhan, is urrainn dhuinn fèin-ghluasad a chomasachadh ann an ìrean, agus chan ann aig an aon àm. Mar eisimpleir, faodar an ìre as sìmplidh - Ready (a’ sgrùdadh RAID / sioncronadh dàta) a thiomnadh gu bot gu furasta. Nuair a tha am bot air beagan ionnsachadh, faodaidh tu gnìomh nas cudromaiche a thoirt dha - cuir an diosc ann an cuairteachadh, msaa.

Suidhichidhean sù

Mus bruidhinn sinn mun bot, bheir sinn turas goirid a-steach don sù againn de ionadan. An toiseach, tha e mar thoradh air meud mòr ar bun-structair. San dàrna h-àite, bidh sinn a’ feuchainn ris an rèiteachadh bathar-cruaidh as fheàrr a thaghadh airson gach seirbheis. Tha timcheall air 20 modal RAID bathar-cruaidh againn, a’ mhòr-chuid LSI agus Adaptec, ach tha HP agus DELL ann de dhreachan eadar-dhealaichte. Tha a ghoireas riaghlaidh fhèin aig gach rianadair RAID. Faodaidh an seata òrdughan agus an sgaoileadh a bhith eadar-dhealaichte bho dhreach gu dreach airson gach rianadair RAID. Far nach eilear a’ cleachdadh HW-RAID, faodar mdraid a chleachdadh.

Bidh sinn a’ dèanamh cha mhòr a h-uile inneal ùr às aonais cùl-taic diosc. Bidh sinn a’ feuchainn ri gun a bhith a’ cleachdadh bathar-cruaidh is bathar-bog RAID tuilleadh, oir bidh sinn a’ cumail suas ar siostaman aig ìre ionad dàta, chan e frithealaichean. Ach gu dearbh tha mòran de luchd-frithealaidh dìleab ann ris am feumar taic a thoirt.

An àiteigin bidh diosgan ann an luchd-riaghlaidh RAID air an gluasad gu innealan amh, an àiteigin bidh JBODs gan cleachdadh. Tha rèiteachaidhean ann le aon diosc siostam anns an fhrithealaiche, agus ma dh’ fheumar a chuir na àite, feumaidh tu an frithealaiche ath-shuidheachadh le stàladh an OS agus tagraidhean, de na h-aon dreachan, an uairsin cuir faidhlichean rèiteachaidh, cuir air bhog tagraidhean. Tha mòran de bhuidhnean frithealaidh ann cuideachd far a bheil cùl-taic air a dhèanamh chan ann aig ìre fo-shiostam diosc, ach gu dìreach anns na tagraidhean fhèin.

Gu h-iomlan, tha còrr air 400 buidheann frithealaiche sònraichte againn a’ ruith faisg air 100 diofar thagraidhean. Gus dèiligeadh ri àireamh cho mòr de roghainnean, bha feum againn air inneal fèin-ghluasaid ioma-ghnìomhach. Is fheàrr le DSL sìmplidh, gus nach bi a-mhàin an neach a sgrìobh e comasach air taic a thoirt dha.

Thagh sinn Ansible oir tha e gun àidseant: cha robh feum air bun-structar ullachadh, toiseach tòiseachaidh luath. A bharrachd air an sin, tha e sgrìobhte ann am Python, a thathas a’ gabhail ris mar ìre àbhaisteach taobh a-staigh na sgioba.

Sgeama coitcheann

Bheir sinn sùil air an sgeama fèin-ghluasaid coitcheann a’ cleachdadh aon tachartas mar eisimpleir. Tha Zabbix a’ faighinn a-mach gu bheil an diosc sdb air fàiligeadh, gu bheil an inneal-brosnachaidh a’ lasadh suas, agus gu bheil tiogaid air a chruthachadh ann an Jira. Choimhead an rianaire air, thuig e nach e dùblachadh a bh’ ann agus nach e dearbhach meallta a bh’ ann, is e sin, dh’ fheumadh an diosc atharrachadh, agus ghluais e an tiogaid gu A’ dol air adhart.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Bidh an tagradh DiskoBot, sgrìobhte ann am Python, bho àm gu àm a’ bhòtadh Jira airson tiogaidean ùra. Tha e a’ mothachadh gu bheil tiogaid ùr In progress air nochdadh, tha an snàithlean co-fhreagarrach air a phiobrachadh, a chuireas air bhog an leabhar-cluiche ann an Ansible (tha seo air a dhèanamh airson gach inbhe ann an Jira). Anns a ’chùis seo, thèid Prepare2change a chuir air bhog.

Tha Ansible air a chuir chun aoigh, a’ toirt air falbh an diosc bho chuairteachadh agus ag aithris inbhe an tagraidh tro Callbacks.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
Stèidhichte air na toraidhean, bidh am bot gu fèin-ghluasadach a’ gluasad an tiogaid gu Ready to change. Bidh an innleadair a’ faighinn fios agus a’ dol a dh’ atharrachadh an diosc, às deidh sin bidh e a’ gluasad an tiogaid gu Changed.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
A rèir an sgeama a chaidh a mhìneachadh gu h-àrd, bidh an tiogaid a’ dol air ais chun bot, a chuireas air bhog leabhar-cluiche eile, a’ dol chun aoigh agus a’ cur an diosc ann an cuairteachadh. Bidh am bot a’ dùnadh an tiogaid. Hooray!

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach
A-nis bruidhnidh sinn mu chuid de phàirtean den t-siostam.

Discobot

Tha an tagradh seo sgrìobhte ann am Python. Bidh e a’ taghadh thiogaidean bho Jira a rèir JQL. A rèir inbhe na tiogaid, bidh an tè mu dheireadh a 'dol chun an neach-làimhseachaidh co-fhreagarrach, a bhios an uair sin a' cur air bhog an leabhar-cluiche Ansible a fhreagras ris an inbhe.

Tha JQL agus amannan bhòtaidh air am mìneachadh ann am faidhle rèiteachaidh an tagraidh.

jira_states:
  investigate:
    jql: '… status = Open and "Disk Size" is EMPTY'
    interval: 180

  inprogress:
    jql: '…  and "Disk Size" is not EMPTY and "Device Name" is not EMPTY'
 
  ready:
    jql: '… and (labels not in ("dbot_ignore") or labels is EMPTY)'
    interval: 7200

Mar eisimpleir, am measg thiogaidean san inbhe In progress, chan eil ach an fheadhainn le meud diosc agus raointean ainm inneal air an lìonadh a-steach air an taghadh. Is e ainm inneal ainm an inneal bloca a dh ’fheumar gus an leabhar cluiche a chuir an gnìomh. Tha feum air meud diosc gus am bi fios aig an innleadair dè am meud diosc a tha a dhìth.

Agus am measg thiogaidean le inbhe Deiseil, tha tiogaidean leis an leubail dbot_ignore air an sìoladh a-mach. Co-dhiù, bidh sinn a’ cleachdadh bileagan Jira an dà chuid airson a leithid de shìoladh agus airson tiogaidean dùblaichte a chomharrachadh agus staitistig a chruinneachadh.

Ma dh’ fhailicheas leabhar-cluiche, sònraichidh Jira an leubail dbot_failed gus an tèid a rèiteach nas fhaide air adhart.

Eadar-obrachadh le Ansible

Bidh an aplacaid a’ conaltradh ri Ansible tro Ansible Python API. Airson playbook_executor bheir sinn seachad ainm an fhaidhle agus seata de chaochladairean. Leigidh seo leat am pròiseact Ansible a chumail ann an cruth faidhlichean yml cunbhalach, seach a bhith ga mhìneachadh ann an còd Python.

Cuideachd ann an Ansible, tro * extra_vars *, ainm an inneal bloca, inbhe na tiogaid, a bharrachd air an callback_url, anns a bheil an iuchair cùis - tha e air a chleachdadh airson callback ann an HTTP.

Airson gach cur air bhog, thèid clàr sealach a chruthachadh, anns a bheil aon aoigh agus a’ bhuidheann dham buin an t-òstair seo, gus am bi group_vars air an cur an sàs.

Seo eisimpleir de ghnìomh a chuireas an gnìomh gairm HTTP air ais.

Gheibh sinn toradh bho bhith a’ cur an gnìomh leabhraichean-cluiche a’ cleachdadh callaback(s). Tha iad de dhà sheòrsa:

  • Plugin callback ansible, bidh e a’ toirt seachad dàta mu thoraidhean coileanadh leabhar cluiche. Tha e ag innse mu na gnìomhan a chaidh a chur air bhog, a chaidh a choileanadh gu soirbheachail no gu neo-shoirbheachail. Canar an callback seo nuair a tha an leabhar-cluiche deiseil a’ cluich.
  • Call HTTP gus fiosrachadh fhaighinn fhad ‘s a tha thu a’ cluich leabhar-cluiche. Anns a’ ghnìomh Ansible bidh sinn a’ cur an gnìomh iarrtas POST/FAIGHINN don tagradh againn.

Thèid caochladairean a chuir tro ghairm(ean) HTTP a chaidh a mhìneachadh nuair a chaidh an leabhar-cluiche a chuir gu bàs agus a tha sinn airson a shàbhaladh agus a chleachdadh ann an ruith às deidh sin. Bidh sinn a’ sgrìobhadh an dàta seo ann an sqlite.

Bidh sinn cuideachd a’ fàgail bheachdan agus ag atharrachadh inbhe nan tiogaidean tro ghairm air ais HTTP.

Ath-ghairm HTTP

# Make callback to Diskobot App
# Variables:
#    callback_post_body: # A dict with follow keys. All keys are optional
#       msg: If exist it would be posted to Jira as comment
#       data: If exist it would be saved in Incident.variables
#       desire_state: Set desire_state for incident
#       status: If exist Proceed issue to that status

  - name: Callback to Diskobot app (jira comment/status)
    uri:
      url: "{{ callback_url }}/{{ devname }}"
      user: "{{ diskobot_user }}"
      password: "{{ diskobot_pass }}"
      force_basic_auth: True
      method: POST
      body: "{{ callback_post_body | to_json }}"
      body_format: json
    delegate_to: 127.0.0.1

Coltach ri iomadh gnìomh den aon sheòrsa, bidh sinn ga chuir ann am faidhle cumanta fa leth agus ga thoirt a-steach ma tha sin riatanach, gus nach bi sinn ga ath-aithris gu cunbhalach ann an leabhraichean-cluiche. Tha seo a’ toirt a-steach an callback_ url, anns a bheil an iuchair cùise agus ainm an òstair. Nuair a chuireas Ansible an t-iarrtas POST seo an gnìomh, tha am bot a’ tuigsinn gun tàinig e mar phàirt de leithid de thachartas.

Agus seo eisimpleir bhon leabhar-cluiche, anns am bi sinn a’ cuir a-mach diosc bho inneal MD:

  # Save mdadm configuration
  - include: common/callback.yml
    vars:
      callback_post_body:
        status: 'Ready to change'
        msg: "Removed disk from mdraid {{ mdadm_remove_disk.msg | comment_jira }}"
        data:
          mdadm_data: "{{ mdadm_remove_disk.removed }}"
          parted_info: "{{ parted_info | default() }}"
    when:
      - mdadm_remove_disk | changed
      - mdadm_remove_disk.removed

Bidh an gnìomh seo a’ gluasad tiogaid Jira chun inbhe “Ready to change” agus a’ cur beachd ris. Cuideachd, bidh an caochladair mdam_data a’ stòradh liosta de dh’ innealan md às an deach an diosc a thoirt air falbh, agus bidh parted_info a’ stòradh dump sgaradh bho parted.

Nuair a chuireas an t-innleadair diosc ùr a-steach, is urrainn dhuinn na caochladairean sin a chleachdadh gus an dump sgaradh a thoirt air ais, a bharrachd air an diosc a chuir a-steach do na h-innealan md às an deach a thoirt air falbh.

Modh sgrùdaidh iomchaidh

Bha e eagallach an fèin-ghluasad a thionndadh air. Mar sin, chuir sinn romhainn a h-uile leabhar-cluiche a ruith sa mhodh
ruith tioram, anns nach bi Ansible a’ coileanadh gnìomhan sam bith air na frithealaichean, ach a-mhàin gan atharrais.

Tha an leithid de chuir air bhog air a ruith tro mhodal gairm air ais air leth, agus tha toradh coileanadh an leabhar-cluiche air a shàbhaladh ann an Jira mar bheachd.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

An toiseach, thug seo cothrom dha obair bot agus leabhraichean-cluiche a dhearbhadh. San dàrna h-àite, mheudaich e misneachd luchd-rianachd anns a’ bot.

Nuair a chaidh sinn seachad air an dearbhadh agus a thuig sinn gun urrainn dhut Ansible a ruith chan ann a-mhàin ann am modh ruith tioram, rinn sinn putan Run Diskobot ann an Jira gus an aon leabhar-cluiche a chuir air bhog leis na h-aon caochladairean air an aon òstair, ach ann am modh àbhaisteach.

A bharrachd air an sin, thèid am putan a chleachdadh gus an leabhar-cluiche ath-thòiseachadh ma thuiteas e.

Structar playbooks

Tha mi air iomradh a thoirt mu thràth, a rèir inbhe tiogaid Jira, gu bheil am bot a’ cur air bhog diofar leabhraichean cluiche.

An toiseach, tha e mòran nas fhasa an t-slighe a-steach a chuir air dòigh.
San dara h-àite, ann an cuid de chùisean tha e dìreach riatanach.

Mar eisimpleir, nuair a chuireas tu diosc siostam an àite, feumaidh tu an-toiseach a dhol chun t-siostam cleachdadh, gnìomh a chruthachadh, agus às deidh a chleachdadh ceart, bidh am frithealaiche ruigsinneach tro ssh, agus faodaidh tu an tagradh a chuir a-steach air. Nan dèanadh sinn seo uile ann an aon leabhar-cluiche, cha bhiodh e comasach dha Ansible a chrìochnachadh leis nach robh an aoigh ri fhaighinn.

Cleachdaidh sinn dreuchdan Ansible airson gach buidheann de luchd-frithealaidh. An seo chì thu mar a tha an leabhar(ean) cluiche air an eagrachadh ann am fear dhiubh.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Tha seo goireasach oir tha e soilleir sa bhad càite a bheil na gnìomhan suidhichte. Ann am main.yml, is e sin an cuir a-steach airson an dreuchd Ansible, faodaidh sinn dìreach a bhith a’ toirt a-steach le inbhe tiogaid no gnìomhan coitcheann a dh ’fheumar airson a h-uile duine, mar eisimpleir, a’ dol seachad air aithne no a ’faighinn comharra.

Rannsachadh.yml

A’ ruith airson tiogaidean san inbhe Sgrùdaidh is Fosgailte. Is e an rud as cudromaiche airson an leabhar-cluiche seo an t-ainm inneal bloc. Chan eil am fiosrachadh seo an-còmhnaidh ri fhaighinn.

Gus fhaighinn, bidh sinn a’ dèanamh anailis air geàrr-chunntas Jira, an luach mu dheireadh bhon inneal-brosnachaidh Zabbix. Is dòcha gu bheil ainm an inneal bloca ann - fortanach. No is dòcha gu bheil puing sreap ann, feumaidh tu a dhol chun t-seirbheisiche, a pharsadh agus obrachadh a-mach an diosc a tha a dhìth. Faodaidh an inneal-brosnachaidh seòladh scsi no fiosrachadh eile a chuir a-mach cuideachd. Ach tha e cuideachd a 'tachairt nach eil sanasan ann, agus feumaidh tu mion-sgrùdadh a dhèanamh.

Às deidh dhuinn ainm an inneal bloca fhaighinn a-mach, bidh sinn a’ tional fiosrachadh mu sheòrsa agus meud an diosc bhuaithe gus na raointean ann an Jira a lìonadh. Bidh sinn cuideachd a’ toirt air falbh fiosrachadh mun reiceadair, modail, firmware, ID, SMART, agus cuir a-steach seo uile ann am beachd ann an tiogaid Jira. Chan fheum an rianaire agus an innleadair an dàta seo a lorg tuilleadh. 🙂

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

ullaich2change.yml

A 'toirt air falbh an diosg bho chuairteachadh, ag ullachadh airson ath-chur. An ìre as duilghe agus as cudromaiche. Seo far an urrainn dhut stad a chuir air an tagradh nuair nach bu chòir stad a chuir air. No thoir a-mach diosg nach robh gu leòr mac-samhail, agus mar sin a 'toirt buaidh air luchd-cleachdaidh, a' call cuid de dhàta. An seo tha an àireamh as motha de sgrùdaidhean agus fiosan againn sa chat.

Anns a 'chùis as sìmplidh, tha sinn a' bruidhinn mu bhith a 'toirt air falbh diosg bho RAID HW / MD.

Ann an suidheachaidhean nas iom-fhillte (anns na siostaman stòraidh againn), nuair a thèid an cùl-taic a dhèanamh aig ìre an tagraidh, feumaidh tu a dhol chun tagradh tron ​​​​API, aithris a thoirt air toradh diosc, a chuir dheth agus tòiseachadh air an ath-bheothachadh.

Tha sinn a-nis a’ dèanamh imrich en masse gu an sgòth, agus ma tha an frithealaiche stèidhichte air sgòthan, an uairsin bidh Diskobot a’ gairm an Cloud API, ag ràdh gu bheil e gu bhith ag obair leis a ’mhion-fhiosrachadh seo - am frithealaiche a’ ruith soithichean - agus ag iarraidh “imrich a h-uile inneal bhon mhion-fhiosrachadh seo.” Agus aig an aon àm, tionndaidh air backlight an diosc gus am faic an t-innleadair sa bhad dè am fear a dh’ fheumar a tharraing a-mach.

dh'atharraich.yml

Às deidh diosc a chuir na àite, bidh sinn an-toiseach a’ dèanamh cinnteach gu bheil e ri fhaighinn.

Cha bhith innleadairean an-còmhnaidh a’ stàladh dhràibhearan ùra, agus mar sin chuir sinn seic ris airson luachan SMART a tha gar sàsachadh.

Dè na feartan air a bheil sinn a’ coimhead?Cunnt roinnean ath-riaraichte (5) < 100
Cunntas gnàthach ri feitheamh san roinn (107) == 0

Ma dh’ fhailicheas an draibhear an deuchainn, thèid fios a chuir chun innleadair gus a chuir na àite a-rithist. Ma tha a h-uile càil ann an òrdugh, tionndaidh an backlight dheth, thèid comharran a chuir an sàs agus thèid an diosc a chuir ann an cuairteachadh.

deiseil.yml

A ’chùis as sìmplidh: a’ sgrùdadh sioncronadh ionnsaigh HW / SW no a ’crìochnachadh sioncronadh dàta san tagradh.

Iarrtas API

Tha mi air iomradh a thoirt grunn thursan gu bheil am bot gu tric a’ faighinn cothrom air APIan tagraidh. Gu dearbh, cha robh na modhan riatanach aig a h-uile tagradh, agus mar sin dh'fheumadh iad a bhith air an atharrachadh. Seo na dòighean as cudromaiche a chleachdas sinn:

  • Inbhe. Inbhe brabhsair no diosc gus tuigsinn an gabh obrachadh leis;
  • Tòisich/stad. Gnìomhachadh/dì-ghnìomhachadh diosc;
  • Imrich / thoir air ais. Imrich dàta agus faighinn air ais rè agus às deidh ath-chur.

Leasanan a chaidh ionnsachadh bho Ansible

Tha gaol mòr agam air Ansible. Ach gu tric, nuair a choimheadas mi air diofar phròiseactan opensource agus a chì mi mar a bhios daoine a’ sgrìobhadh leabhraichean-cluiche, bidh beagan eagal orm. Eadar-fhighe loidsigeach iom-fhillte de cuin / lùb, dìth sùbailteachd agus neo-chomasachd mar thoradh air cleachdadh tric de shligean / àithne.

Cho-dhùin sinn a h-uile càil a dhèanamh nas sìmplidhe cho mòr 's as urrainn dhuinn, a' gabhail brath air a 'bhuannachd de Ansible - modularity. Aig an ìre as àirde tha leabhraichean-cluiche ann; faodaidh iad a bhith air an sgrìobhadh le rianadair sam bith, leasaiche treas-phàrtaidh aig a bheil eòlas air beagan Ansible.

- name: Blink disk
  become: True
  register: locate_action
  disk_locate:
      locate: '{{ locate }}'
      devname: '{{ devname }}'
      ids: '{{ locate_ids | default(pd_id) | default(omit) }}'

Ma tha cuid de loidsig duilich a chuir an gnìomh ann an leabhraichean-cluiche, gluaisidh sinn e gu modal no criathrag Ansible. Faodar sgriobtaichean a sgrìobhadh ann am Python no cànan sam bith eile.

Tha iad furasta agus luath airson sgrìobhadh. Mar eisimpleir, tha am modal backlight diosc, a tha air a shealltainn gu h-àrd, air a dhèanamh suas de loidhnichean 265.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Air an ìre as ìsle tha an leabharlann. Airson a’ phròiseict seo, sgrìobh sinn tagradh air leth, seòrsa de tharraing thairis air RAIDan bathar-cruaidh is bathar-bog a choileanas na h-iarrtasan co-fhreagarrach.

Ag ath-nuadhachadh diosc gu fèin-ghluasadach le freagairteach

Is e na neartan as motha a th’ aig Ansible cho sìmplidh ‘s a tha e agus na leabhraichean cluiche soilleir aige. Tha mi a’ creidsinn gum feum thu seo a chleachdadh agus gun a bhith a’ gineadh faidhlichean yaml eagallach agus àireamh mhòr de shuidheachaidhean, còd shligean agus lùban.

Ma tha thu airson ar n-eòlas leis an Ansible API ath-aithris, cumaibh dà rud nad inntinn:

  • Chan urrainnear ùine-ama a thoirt dha playbook_executor agus leabhraichean-cluiche san fharsaingeachd. Tha ùine-ama air an t-seisean ssh, ach chan eil ùine-ama air an leabhar-cluiche. Ma dh’ fheuchas sinn ri diosc nach eil san t-siostam a thoirt a-mach tuilleadh, ruithidh an leabhar-cluiche gun stad, agus mar sin bha againn ri a chuir air bhog a phasgadh ann am pasgan air leth agus a mharbhadh le ùine a-muigh.
  • Bidh Ansible a’ ruith air pròiseasan forked, agus mar sin chan eil an API aige sàbhailte ann an snàithlean. Bidh sinn a’ ruith na leabhraichean-cluiche againn gu lèir le aon snàthainn.

Mar thoradh air an sin, bha e comasach dhuinn ath-nuadhachadh timcheall air 80% de dhioscaichean gu fèin-ghluasadach. Gu h-iomlan, tha an ìre ath-chuiridh air dùblachadh. An-diugh, bidh an rianaire dìreach a’ coimhead air an tachartas agus a’ co-dhùnadh am feum an diosc atharrachadh no nach eil, agus an uairsin nì e aon bhriogadh.

Ach a-nis tha sinn a’ tòiseachadh a’ ruith a-steach do dhuilgheadas eile: chan eil fios aig cuid de luchd-rianachd ùr mar a dh’ atharraicheas iad draibhearan. 🙂

Source: www.habr.com

Cuir beachd ann