Automating disk replacement neAnsible

Automating disk replacement neAnsible

Mhoroi mose. Ini ndinoshanda seanotungamira sisitimu maneja paOK uye ndine mutoro wekushanda kwakagadzikana kweiyo portal. Ndinoda kutaura pamusoro pekuti takagadzira sei nzira yekutsiva dhisiki, uyezve kuti takabvisa sei mutongi kubva pane izvi uye kumutsiva nebhoti.

Ichi chinyorwa imhando yekushandura zvesimba paHighLoad+ 2018

Kuvaka dhisiki yekutsiva maitiro

Kutanga dzimwe nhamba

OK ibasa guru rinoshandiswa nemamiriyoni evanhu. Inoshumirwa neanosvika 7 zviuru maseva, ayo ari mu 4 akasiyana data data. Iwo masevha ane anopfuura zviuru makumi manomwe edhisiki. Kana ukaaisa pamusoro peumwe neumwe, unowana shongwe inodarika 70 km kureba.

Hard Drives ndicho chikamu cheserver chinotadza kazhinji. Nemavhoriyamu akadaro, isu tinofanirwa kushandura madhisiki makumi matatu pasvondo, uye maitiro aya ave maitiro asina kunakidza.

Automating disk replacement neAnsible

Zviitiko

Kambani yedu yakaunza yakazara-yakazara chiitiko manejimendi. Tinorekodha chiitiko chega chega muJira, tobva tagadzirisa nekuchigadzirisa. Kana chiitiko chine mhedzisiro kune vashandisi, saka isu tinoungana pamwe chete uye tinofunga nezve nzira yekupindura nekukurumidza mumamiriro ezvinhu akadaro, maitiro ekudzikisa mhedzisiro uye, hongu, nzira yekudzivirira kudzokorora.

Zvishandiso zvekuchengeta hazvisi izvo. Chimiro chavo chinotariswa neZabbix. Isu tinotarisisa mameseji muSyslog yekunyora/kuverenga zvikanganiso, kuongorora mamiriro eHW/SW kupambwa, kutarisa SMART, uye kuverenga kupfeka kweSSD.

Madhisiki akachinjwa sei kare

Kana chinokonzeresa chikaitika muZabbix, chiitiko chinogadzirwa muJira uye chinopihwa otomatiki kune mainjiniya akakodzera munzvimbo dzedata. Isu tinoita izvi nezviitiko zvese zveHW, ndiko kuti, izvo zvinoda chero basa remuviri nemidziyo iri munzvimbo yedata.
Injiniya yedata centre munhu anogadzirisa nyaya dzine chekuita nehardware uye ane basa rekuisa, kuchengetedza, nekubvisa maseva. Agamuchira tikiti, injiniya anotanga kushanda. Mumasherufu edhisiki anoshandura madhisiki akazvimiririra. Asi kana asingakwanisi kuwana mudziyo unodiwa, injiniya anotendeukira kuvatariri vehurongwa vari pabasa kuti abatsirwe. Chokutanga pane zvose, unoda kubvisa disk kubva pakutenderera. Kuti uite izvi, unofanirwa kuita shanduko dzinodiwa pane sevha, kumisa zvikumbiro, uye kudzikisa dhisiki.

Iyo system administrator pabasa ndiye ane basa rekushanda kweiyo portal yese panguva yekuchinja kwebasa. Anoongorora zviitiko, anogadzirisa, uye anobatsira vanogadzira kupedzisa mabasa madiki. Haaite chete nema hard drive.

Pakutanga, mainjiniya epa data aitaurirana nemaneja system kuburikidza nekutaura. Mainjiniya akatumira zvinongedzo kumatikiti eJira, maneja akadzitevera, akachengeta chinyorwa chebasa mune imwe notepad. Asi kutaura kunonetsa kumabasa akadaro: ruzivo rwuripo haruna kurongeka uye rwunorasika nekukurumidza. Uye maneja anogona kungofamba kubva pakombuta uye kusapindura zvikumbiro kwenguva yakati, nepo injiniya akamira pasevha aine madhisiki akawanda uye akamirira.

Asi chakaipisisa ndechekuti vatungamiri havana kuona mufananidzo wose: ndezvipi zviitiko zve disk zvaivepo, apo dambudziko rinogona kuitika. Izvi zvinokonzerwa nekuti tinopa zvese zviitiko zveHW kune mainjiniya. Hongu, zvaigoneka kuratidza zviitiko zvese padhibhodhi remutungamiriri. Asi kune akawanda awo, uye maneja aibatanidzwa chete kune vamwe vavo.

Mukuwedzera, injinjiniya haakwanisi kuisa zvakakosha, nokuti haazivi chinhu pamusoro pechinangwa chemaseva chaiwo kana kugoverwa kwemashoko pakati pemadhiraivha.

Nzira itsva yekutsiva

Chinhu chekutanga chatakaita kufambisa zviitiko zvese zvedisiki mune imwe mhando "HW disk" uye tikawedzera minda "block mudziyo zita", "saizi" uye "dhisiki mhando" kwairi kuitira kuti ruzivo urwu ruchengetwe mutikiti uye haufanirwe kugara uchichinjana mukutaura.

Automating disk replacement neAnsible
Takabvumiranawo kuti pane chimwe chiitiko taizongochinja disk rimwe chete. Izvi zvakarerutsa maitiro otomatiki, kuunganidza nhamba uye kushanda mune ramangwana.

Mukuwedzera, isu takawedzera iyo "responsible administrator" ndima. Iyo system administrator pabasa inongoiswa ipapo. Izvi zviri nyore kwazvo, nekuti zvino injiniya anogara achiona kuti ndiani ane mhosva. Hapana chikonzero chekuenda kukarenda uye kutsvaga. Yakanga iri ndima iyi yakaita kuti zvikwanisike kuratidza matikiti padhibhodhi remutungamiriri angangoda rubatsiro rwake.

Automating disk replacement neAnsible
Kuti ive nechokwadi chekuti vatori vechikamu vese vawana mabhenefiti akanyanya kubva kune zvitsva, takagadzira mafirita nemadhibhodhi uye takaudza vakomana nezvavo. Kana vanhu vakanzwisisa shanduko, havazvibvisi kure navo sechimwe chinhu chisingadikanwi. Izvo zvakakosha kuti injinjiniya azive iyo rack nhamba panowanikwa sevha, saizi uye rudzi rwe diski. Mutariri anoda, kutanga pane zvese, kuti anzwisise kuti rudzii rweboka remaseva iri uye kuti chii chinogona kuitika pakutsiva dhisiki.

Kuvapo kweminda uye kuratidzwa kwavo kuri nyore, asi hazvina kutiponesa kubva pakudiwa kwekushandisa chats. Kuti tiite izvi, taifanira kuchinja mafambiro ebasa.

Pakutanga zvaive sezvizvi:

Automating disk replacement neAnsible
Aya ndiwo mabatiro anoita mainjiniya anoramba achishanda nhasi kana vasingade rubatsiro rwemaneja.

Chinhu chekutanga chatakaita kuunza chimiro chitsva Wongorora. Tikiti riri muchimiro ichi kana mainjiniya asati afunga kuti achada maneja here kana kuti kwete. Kuburikidza nechimiro ichi, mainjiniya anogona kuendesa tikiti kune maneja. Mukuwedzera, isu tinoshandisa chimiro ichi kumaka matikiti kana dhisiki inoda kutsiviwa, asi dhisiki pachayo haisi panzvimbo. Izvi zvinoitika munyaya yeCDNs uye nzvimbo dziri kure.

Takawedzerawo chimiro gadzirira. Iyo tikiti inoendeswa kwairi mushure mekutsiva dhisiki. Ndiko kuti, zvese zvakatoitwa, asi iyo HW/SW RAID inowiriraniswa pane server. Izvi zvinogona kutora nguva yakati rebei.

Kana maneja achibatanidzwa mubasa racho, chirongwa chacho chinova chakaoma zvishoma.

Automating disk replacement neAnsible
Kubva pachimiro Open Tikiti rinogona kududzirwa neaviri system maneja uye mainjiniya. Muchimiro Munzira maneja anobvisa dhisiki kubva pakutenderera kuitira kuti injiniya ingoiburitsa kunze: inobatidza backlight, inobvisa dhisiki, inomisa zvikumbiro, zvichienderana neboka chairo remaseva.

Tikiti rinobva raendeswa ku Wakagadzirira kuchinja: Ichi chiratidzo kune injiniya kuti dhisiki inogona kuburitswa kunze. Minda yese muJira yakatozadzwa mukati, injinjini inoziva rudzi uye saizi ye diski. Iyi data inoiswa otomatiki pane iyo yapfuura chimiro kana nemutungamiriri.

Mushure mekutsiva dhisiki, chimiro chetikiti chinoshandurwa kuita Changed. Inotarisa kuti dhisiki chaiyo yakaiswa here, kupatsanura kwaitwa, application inotangwa uye mamwe mabasa ekudzoreredza data anotangwa. Tikiti rinogona kuendeswa kune chimiro gadzirira, munyaya iyi mutungamiri acharamba ane mhosva, nokuti akaisa disk mukutenderera. Dhiagiramu yakakwana inotaridzika seizvi.

Automating disk replacement neAnsible
Kuwedzera minda mitsva kwakaita kuti hupenyu hwedu huve nyore. Vakomana vakatanga kushanda neruzivo rwakarongeka, zvakava pachena kuti chii chaifanira kuitwa uye panguva ipi. Zvinonyanya kukosha zvave zvakanyanya kukosha, sezvo zvave kuiswa nemutungamiriri.

Hapana chikonzero chekutaura. Ehe, maneja anogona kunyorera kuna injiniya "izvi zvinoda kutsiviwa nekukurumidza," kana "atove manheru, uchawana nguva yekuitsiva?" Asi isu hatichataudzana zuva nezuva mumachats panyaya idzi.

Madhisiki akatanga kuchinjwa mumabhechi. Kana mutungamiri akauya kuzoshanda zvishomanana kare, ane nguva yekusununguka, uye hapana chakaitika, anogona kugadzirira mavhareji akawanda ekutsiva: zadza minda, bvisa disks kubva pakutenderera uye kutumira basa kune injiniya. Injiniya anouya kunzvimbo yedata gare gare, anoona basa racho, anotora madhiraivha anodiwa kubva kuimba yekuchengetera uye anobva atsiva iwo. Somugumisiro, chiyero chekutsiva chakawedzera.

Zvidzidzo zvinodzidzwa pakuvaka Workflow

  • Paunenge uchigadzira nzira, unofanirwa kuunganidza ruzivo kubva kwakasiyana zvinyorwa.
    Vamwe vevatariri vedu havana kuziva kuti injiniya anochinja madhisiki pachake. Vamwe vanhu vakafunga kuti MD RAID kuwiriranisa kwaiitwa nevainjiniya, kunyangwe vamwe vacho vasina kana mukana wekudaro. Vamwe mainjiniya anotungamira vakaita izvi, asi kwete nguva dzose nekuti maitiro acho haana kutsanangurwa chero kupi.
  • Nzira yacho inofanira kunge iri nyore uye inonzwisisika.
    Zvakaoma kuti munhu achengete matanho akawanda mupfungwa. Iwo akanyanya kukosha mameseji ekuvakidzana muJira anofanirwa kuiswa pachiratidziro chikuru. Unogona kuzvitumidza zita, semuenzaniso, tinodaidza In progress Ready to change. Uye mamwe mastatus anogona kuvanzwa mune yekudonhedza-pasi menyu kuitira kuti ive isiri yeziso. Asi zviri nani kusaganhurira vanhu, kuvapa mukana wekuita shanduko.
    Tsanangura kukosha kwekuvandudza. Kana vanhu vakanzwisisa, ivo vanogamuchira zvakanyanya maitiro matsva. Zvaive zvakakosha kwatiri kuti vanhu varege kudzvanya mukati memaitiro ese, asi vatevedzere. Ipapo takagadzira otomatiki pane izvi.
  • Mirira, ongorora, zvione.
    Zvakatitorera inenge mwedzi kuvaka maitiro, kushandiswa kwehunyanzvi, misangano uye nhaurirano. Uye kushandiswa kunotora inopfuura mwedzi mitatu. Ndakaona kuti vanhu vari kutanga sei kushandisa hutsva zvishoma nezvishoma. Pakanga pane zvakawanda zvisina kunaka mumatanho ekutanga. Asi yakanga yakasununguka zvachose kune iyo nzira pachayo uye nekuita kwayo kwehunyanzvi. Somuenzaniso, mumwe maneja haana kushandisa Jira, asi Jira plugin muConfluence, uye zvimwe zvinhu akanga asingawanikwi kwaari. Takamuratidza Jira, uye kugadzirwa kweadmin kwakawedzera zvese kumabasa ese uye nekutsiva madhisiki.

Automation ye disk replacement

Takasvika otomatiki yekutsiva dhisiki kakawanda. Isu takanga tatova nebudiriro uye zvinyorwa, asi zvese zvakashanda pamwe nekudyidzana kana nemaoko uye zvaida kutanga. Uye pashure bedzi pokunge tasuma muitiro mutsva ndipo patakaona kuti izvi ndizvo chaizvo zvatakanga tisina.

Kubva ikozvino nzira yedu yekutsiva yakakamurwa kuita nhanho, imwe neimwe ine chaiyo muiti uye runyorwa rwezviito, tinogona kugonesa otomatiki mumatanho, uye kwete zvese kamwechete. Semuenzaniso, iyo yakapusa nhanho - Yakagadzirira (kutarisa RAID / data kuwiriranisa) inogona kupihwa nyore kune bot. Apo bhoti yakadzidza zvishomanana, unogona kuipa basa rinokosha - kuisa diski mukutenderera, nezvimwewo.

Zvirongwa zveZoo

Tisati tataura nezve bot, ngatitore rwendo rupfupi muzoo yedu yekuisa. Chekutanga pane zvese, imhaka yehukuru hukuru hwezvivakwa zvedu. Chechipiri, isu tinoedza kusarudza iyo yakakwana hardware kumisikidzwa kune yega yega sevhisi. Tine angangoita makumi maviri emhando dzeRAID modhi, kazhinji LSI neAdaptec, asi kune zvakare HP neDELL yemhando dzakasiyana. Imwe neimwe RAID controller ine yayo yekushandisa yekushandisa. Iyo seti yemirairo uye kuburitswa kwayo kunogona kusiyana kubva kune vhezheni kune shanduro kune yega yega RAID controller. Apo HW-RAID isiri kushandiswa, mdraid inogona kushandiswa.

Isu tinoita zvinenge zvese zvitsva zvekuisa pasina disk backup. Isu tinoedza kusashandisa Hardware uye software RAID, sezvatino tsigira masisitimu edu padanho repakati data, kwete maseva. Asi chokwadi kune akawanda enhaka maseva anoda kutsigirwa.

Kumwe kunhu madhisiki ari muRAID controllers anoendeswa kune mbishi michina, kumwe kunoshandiswa maJBOD. Pane zvigadziriso zvine imwe system disk museva, uye kana ichida kutsiviwa, saka iwe unofanirwa kudzorera sevha nekuisirwa kweOS uye maapplication, eshanduro dzakafanana, wobva wawedzera mafaera ekugadzirisa, tanga maapplication. Kune zvakare akawanda maseva mapoka uko backup inoitwa kwete padhisiki subsystem level, asi zvakananga mumashandisirwo acho.

Pakazara, isu tine anopfuura mazana mana akasiyana sevha mapoka anomhanya angangoita zana akasiyana maapplication. Kuvhara nhamba yakakura kudaro yesarudzo, taida multifunctional otomatiki chishandiso. Zvichida neDSL iri nyore, kuitira kuti kwete chete munhu akazvinyora anogona kuitsigira.

Isu takasarudza Ansible nekuti haina mumiriri: pakanga pasina chikonzero chekugadzirira zvivakwa, kutanga nekukurumidza. Mukuwedzera, yakanyorwa muPython, iyo inogamuchirwa seyero mukati meboka.

General chirongwa

Ngatitarisei kune general automation scheme tichishandisa chiitiko chimwe semuenzaniso. Zabbix yaona kuti sdb dhisiki rakundikana, chinokonzeresa chinovheneka, uye tikiti rinogadzirwa muJira. Mutungamiriri akazvitarisa, akaziva kuti yakanga isiri kopi uye kwete yenhema, kureva kuti, disk inoda kuchinjwa, uye yakaendesa tikiti kuIn progress.

Automating disk replacement neAnsible
Iyo DiskoBot application, yakanyorwa muPython, nguva nenguva inovhota Jira yematikiti matsva. Inocherechedza kuti tikiti idzva reKufambira mberi raonekwa, tambo inoenderana inotangwa, iyo inotangisa bhuku rekutamba muAnsible (izvi zvinoitirwa chimiro chega chega muJira). Muchiitiko ichi, Prepare2change inotangwa.

Ansible inotumirwa kumugadziri, inobvisa dhisiki kubva pakutenderera uye inoshuma chimiro kune application kuburikidza neCallbacks.

Automating disk replacement neAnsible
Zvichienderana nemhedzisiro, bot inoendesa otomatiki tikiti kuenda Kugadzirira kuchinja. Injiniya inogamuchira chiziviso uye inoenda kunoshandura dhisiki, mushure mezvo anotamisa tikiti kuChandurwa.

Automating disk replacement neAnsible
Maererano nechirongwa chinotsanangurwa pamusoro apa, tikiti inodzokera kubhoti, iyo inotanga rimwe bhuku rekutamba, inoenda kumugadziri uye inoisa diski mukutenderera. Bot inovhara tikiti. Hooray!

Automating disk replacement neAnsible
Zvino ngatitaure nezve zvimwe zvikamu zvehurongwa.

Diskobot

Ichi chishandiso chakanyorwa muPython. Inosarudza matikiti kubva kuJira maererano neJQL. Zvichienderana nechimiro chetiketi, rekupedzisira rinoenda kune anoribata anowirirana, iro rinotangisa Ansible playbook inoenderana nechimiro.

JQL uye nguva dzekuvhota dzinotsanangurwa mufaira rekugadzirisa application.

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

Semuyenzaniso, pakati pematikiti ari muIn progress status, iwawo chete ane Disk size nemazita eChishandiso mazita akazadzwa ndiwo anosarudzwa. Zita remudziyo ndiro zita rechivharo chinodiwa kuita bhuku rekutamba. Disk saizi inodiwa kuitira kuti injinjini azive kuti saizi disk inodiwa.

Uye pakati pematikiti ane Ready chimiro, matikiti ane dbot_ignore label anosefa. Nenzira, isu tinoshandisa maJira mavara ese kusefa kwakadaro uye kumaka matikiti akapetwa uye kuunganidza nhamba.

Kana bhuku rekutamba rikatadza, Jira anopa dbot_failed label kuti igadziriswe gare gare.

Kudyidzana neAnsible

Iyo application inotaurirana neAnsible kuburikidza Ansible Python API. Ku playbook_executor tinopfuudza zita refaira uye seti yezvakasiyana. Izvi zvinokutendera kuti uchengetedze iyo Ansible purojekiti muchimiro chenguva dzose yml mafaera, pane kuitsanangura muPython kodhi.

Zvakare muAnsible, kuburikidza ne *extra_vars*, zita reblock mudziyo, mamiriro etiketi, pamwe necallback_url, ine kiyi yekuburitsa - inoshandiswa pakufona kumashure muHTTP.

Pakuvhurwa kwega kwega, hesitori yechinguvana inogadzirwa, ine mugamuchiri mumwechete uye boka rine mugamuchiri uyu, kuitira kuti group_vars ishandiswe.

Heino muenzaniso webasa rinoshandisa HTTP callback.

Isu tinowana mhedzisiro yekuita mabhuku ekutamba tichishandisa callaback (s). Iwo ndeemhando mbiri:

  • Ansible callback plugin, inopa data pamhedzisiro yekuitwa kwebhuku rekutamba. Inotsanangura mabasa akatangwa, akapedzwa zvinobudirira kana kusabudirira. Iyi callback inodanwa kana playbook yapedza kutamba.
  • HTTP callback kuti ugamuchire ruzivo uchitamba bhuku rekutamba. MuAnsible basa tinoita chikumbiro chePOST/GET kune yedu application.

Misiyano inopfuudzwa kuburikidza neHTTP callback(s) iyo yakatsanangurwa panguva yekuitwa kwebhuku rekutamba uye yatinoda kuchengetedza nekushandisa mune inotevera inomhanya. Isu tinonyora iyi data mu sqlite.

Isu tinosiyawo makomendi uye tinoshandura chimiro chetikiti kuburikidza neHTTP callback.

HTTP callback

# 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

Kufanana nemabasa mazhinji emhando imwe chete, tinoiisa mune imwe yakajairwa faira uye tinoisanganisira kana zvichidikanwa, kuti urege kuramba uchiidzokorora mumabhuku ekutamba. Izvi zvinosanganisira callback_ url, iyo ine kiyi yenyaya uye zita remuenzi. Kana Ansible aita ichi chikumbiro chePOST, bot inonzwisisa kuti yakauya sechikamu chechiitiko chakadai uye chakadaro.

Uye heino muenzaniso kubva kubhuku rekutamba, umo isu tinoburitsa dhisiki kubva kune MD mudziyo:

  # 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

Iri basa rinoendesa tikiti reJira kune "Yakagadzirira kuchinja" chimiro uye rinowedzera mhinduro. Zvakare, iyo mdam_data inosiyanisa inochengetedza runyoro rwemidziyo md iyo dhisiki yakabviswa, uye parted_info inochengeta dura rekuparadzanisa kubva pakaparadzaniswa.

Kana injinjini ichiisa dhisiki nyowani, tinogona kushandisa shanduko idzi kudzoreredza dump yekuparadzanisa, pamwe nekuisa dhisiki mumidziyo md iyo yakabviswa.

Ansible cheki mode

Zvaityisa kubatidza otomatiki. Naizvozvo, takasarudza kumhanyisa mabhuku ese ekutamba mumodhi
dry run, umo Ansible haaite chero zviito pamaseva, asi anongotevedzera iwo.

Kuvhurwa kwakadai kunoitwa kuburikidza neyakasiyana callback module, uye mhedzisiro yebhuku rekutamba inochengetwa muJira sekutaura.

Automating disk replacement neAnsible

Chekutanga, izvi zvakaita kuti zvikwanise kusimbisa basa re bot nemabhuku ekutamba. Kechipiri, yakawedzera kuvimba kwevatariri mune bot.

Patakapfuura kusimbiswa uye tikaona kuti unogona kumhanya Ansible kwete chete muome run mode, takagadzira Run Diskobot bhatani muJira kuti titange iro rimwechete bhuku rekutamba rine madhiriji akafanana pane imwechete saiti, asi mune yakajairika maitiro.

Mukuwedzera, bhatani rinoshandiswa kutangazve bhuku rekutamba kana rikaputsika.

Playbooks chimiro

Ndatotaura kuti zvichienderana nechimiro chetikiti reJira, bot inotanga mabhuku ekutamba akasiyana.

Kutanga, zviri nyore kwazvo kuronga mukova.
Chechipiri, mune zvimwe zviitiko zvinongodiwa.

Semuenzaniso, kana uchitsiva system disk, iwe unofanirwa kutanga waenda kune deployment system, gadzira basa, uye mushure mekutumira chaiko, sevha inosvikika kuburikidza ne ssh, uye unogona kuburitsa application pairi. Dai takaita zvese izvi mubhuku rimwe chete rekutamba, saka Ansible haaizokwanisa kuipedza nekuda kwekuti muenzi wacho aive asipo.

Isu tinoshandisa Ansible mabasa kune rimwe nerimwe boka remaseva. Pano iwe unogona kuona kuti bhuku rekutamba rakarongwa sei mune rimwe rawo.

Automating disk replacement neAnsible

Izvi zviri nyore nekuti zvinobva zvangojeka kuti ndeapi mabasa anowanikwa. In main.yml, inova inopinza yebasa Rinogoneka, tinogona kungosanganisa nechimiro chetikiti kana mabasa ese anodiwa kumunhu wese, semuenzaniso, chitupa chekupfuura kana kugamuchira chiratidzo.

investigation.yml

Inomhanyisa matikiti muKuongorora uye Kuvhurika chimiro. Chinhu chinonyanya kukosha chebhuku rino rekutamba izita remudziyo we block. Mashoko aya haawanikwi nguva dzose.

Kuti tizviwane, tinoongorora muchidimbu Jira, kukosha kwekupedzisira kubva kuZabbix trigger. Inogona kunge iine zita reiyo block mudziyo - rombo rakanaka. Kana kuti inogona kunge iine nzvimbo yekukwira, saka iwe unofanirwa kuenda kune sevha, patsanura uye uverenge dhisiki inodiwa. Iyo inokonzeresa inogona zvakare kutumira scsi kero kana rumwe ruzivo. Asi zvinoitikawo kuti hapana zviratidzo, uye unofanira kuongorora.

Tawana zita reiyo block mudziyo, tinounganidza ruzivo nezve rudzi uye saizi ye diski kubva pairi kuzadza minda muJira. Isu tinobvisawo ruzivo nezve mutengesi, modhi, firmware, ID, SMART, uye toisa zvese izvi mukutaura mutikiti reJira. Mutungamiri uye mainjiniya haachadi kutsvaga iyi data. πŸ™‚

Automating disk replacement neAnsible

gadzirira2change.yml

Kubvisa dhisiki kubva kutenderera, kugadzirira kutsiva. Danho rakaoma uye rinokosha. Apa ndipo paunogona kumisa application kana isinga miswe. Kana kuti tora dhisiki rakanga risina kukwana replicas, uye nekudaro kuve nemhedzisiro kune vashandisi, kurasikirwa neimwe data. Pano isu tine macheki akawanda uye zviziviso mune chat.

Muchiitiko chakareruka, tiri kutaura nezvekubvisa dhisiki kubva kuHW/MD RAID.

Mune mamwe mamiriro akaomarara (mune edu ekuchengetedza masisitimu), kana backup yaitwa padanho rekushandisa, unofanirwa kuenda kune application kuburikidza neAPI, taura kuburitsa dhisiki, iite kuti iite uye tanga kupora.

Iye zvino tiri kutamira kune vakawanda gore, uye kana sevha iri-yakavakirwa gore, ipapo Diskobot inodaidza gore API, inotaura kuti ichashanda neiyi minion - sevha inomhanyisa midziyo - uye inobvunza "tamisa midziyo yese kubva kune iyi minion." Uye panguva imwecheteyo, inobatidza backlight ye diski kuitira kuti injinjini inogona kuona kuti ndeipi inoda kuburitswa kunze.

changed.yml

Mushure mekutsiva dhisiki, tinotanga kutarisa kuwanikwa kwayo.

Mainjiniya haagari achiisa madhiraivha matsva, saka isu takawedzera cheki yeSMART tsika dzinotigutsa.

Unhu hupi hwatiri kutarisa?Reallocated Sectors Count (5) <100
Ikozvino Yakamirira Sector Count (107) == 0

Kana dhiraivha ikatadza bvunzo, injinjini inoziviswa kuti aitsive zvakare. Kana zvinhu zvose zvakarongeka, backlight inodzima, zviratidzo zvinoshandiswa uye disc inoiswa mukutenderera.

ready.yml

Iyo yakapusa kesi: kutarisa HW / SW raid kuwiriranisa kana kupedzisa kuwiriranisa data mukushandisa.

App API

Ndataura kakawanda kuti bot inowanzowana application APIs. Chokwadika, hadzisi dzese kunyorera dzaive nemitoo inodiwa, saka dzaifanira kugadziridzwa. Heano nzira dzakanyanya kukosha dzatinoshandisa:

  • Status. Chimiro chesumbu kana dhisiki kuti unzwisise kana inogona kushandiswa nayo;
  • Tanga/mira. Disk activation / deactivation;
  • Kutama/kudzorera. Kutama uye kudzoreredza data panguva uye mushure mekutsiva.

Zvidzidzo zvakadzidzwa kubva kuna Ansible

Ini ndinoda chaizvo Ansible. Asi kazhinji, pandinotarisa akasiyana opensource mapurojekiti uye ndoona manyorero anoita vanhu mabhuku ekutamba, ndinotya zvishoma. Yakaomarara inonzwisisika interweavings yekuti riini/loop, kushaikwa kwekuchinjika uye kusasimba nekuda kwekugara uchishandiswa kwegoko/command.

Isu takasarudza kurerutsa zvese sezvazvinogona, tichitora mukana weAnsible - modularity. Padanho repamusoro pane mabhuku ekutamba; anogona kunyorwa chero maneja, wechitatu-bato mugadziri anoziva zvishoma Ansible.

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

Kana imwe pfungwa yakaoma kuita mumabhuku ekutamba, tinoifambisa muAnsible module kana sefa. Zvinyorwa zvinogona kunyorwa muPython kana chero mumwe mutauro.

Izvo zviri nyore uye zvinokurumidza kunyora. Semuenzaniso, disk backlight module, muenzaniso wakaratidzwa pamusoro apa, une mitsara ye265.

Automating disk replacement neAnsible

Pamwero wakaderera pane raibhurari. Kune iyi purojekiti, isu takanyora yakaparadzana application, rudzi rwekubvisa pamusoro pehardware uye software RAIDs anoita zvikumbiro zvinoenderana.

Automating disk replacement neAnsible

Masimba makuru eAnsible ari nyore uye akajeka emabhuku ekutamba. Ini ndinotenda kuti iwe unofanirwa kushandisa izvi uye kwete kugadzira anotyisa yaml mafaera uye huwandu hukuru hwemamiriro, shell kodhi uye zvishwe.

Kana iwe uchida kudzokorora chiitiko chedu neAnsible API, chengeta zvinhu zviviri mupfungwa:

  • Playbook_executor uye mabhuku ekutamba kazhinji haagone kupihwa nguva yekubuda. Pane nguva yekubuda pachirongwa che ssh, asi hapana nguva yekubuda pabhuku rekutamba. Kana tikaedza kudzikisa dhisiki risisipo muhurongwa, bhuku rekutamba rinomhanya risingaperi, saka taifanira kuputira kuvhurwa kwayo mune imwe wrapper uye kuiuraya nenguva yekubuda.
  • Ansible inomhanya pamaforogo maitiro, saka API yayo haina tambo yakachengeteka. Isu tinomhanyisa ese emabhuku edu ekutamba ane shinda imwe chete.

Nekuda kweizvozvo, takakwanisa kuita otomatiki kutsiva kweanosvika makumi masere muzana emadhisiki. Pakazara, mwero wekutsiva wakapetwa kaviri. Nhasi, mutungamiri anongotarisa chiitiko uye anosarudza kana diski inoda kuchinjwa kana kwete, uye obva aita kamwe chete.

Asi ikozvino tava kutanga kupinda mune rimwe dambudziko: vamwe vatungamiri vatsva havazivi kuchinja madhiraivha. πŸ™‚

Source: www.habr.com

Voeg