Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Olen FirstVDS-i süsteemiadministraator ja see on minu algajate kolleegide abistamise lühikursuse esimese sissejuhatava loengu tekst. Hiljuti süsteemihaldusega tegelema hakanud spetsialistid seisavad silmitsi mitmete samade probleemidega. Lahenduste pakkumiseks võtsin ette selle loengusarja kirjutamise. Mõned asjad selles on spetsiifilised tehnilise toe hostimiseks, kuid üldiselt võivad need olla kasulikud, kui mitte kõigile, siis paljudele. Seega olen kohandanud loengu teksti siin jagamiseks.

Pole tähtis, kuidas teie ametikohta nimetatakse – oluline on see, et olete tegelikult seotud haldusega. Seetõttu alustame sellest, mida peaks süsteemiadministraator tegema. Selle põhiülesanne on korda seada, hoida korda ja valmistuda tulevasteks korratõusudeks. Ilma süsteemiadministraatorita muutub server segaseks. Logisid ei kirjutata või kirjutatakse sinna valed asjad, ressursid ei jaotata optimaalselt, ketas on täis igasugust prügi ja süsteem hakkab nii suurest kaosest vaikselt välja surema. rahulikult! Teie isiku süsteemiadministraatorid hakkavad probleeme lahendama ja segadust kõrvaldama!

Süsteemihalduse tugisambad

Enne probleemide lahendamisega alustamist tasub aga tutvuda nelja peamise haldussambaga:

  1. Dokumentatsioon
  2. Mallimine
  3. Optimeerimine
  4. Automatiseerimine

See on põhitõed. Kui te oma töövoogu nendele põhimõtetele ei ehita, on see ebaefektiivne, ebaproduktiivne ja üldiselt ei sarnane tegelikule haldusele. Vaatame igaüht eraldi.

Документация

Документация ei tähenda dokumentatsiooni lugemist (kuigi ilma selleta ei saa), vaid ka selle säilitamist.

Kuidas dokumente säilitada:

  • Kas olete kokku puutunud uue probleemiga, mida te pole kunagi varem näinud? Kirjutage üles peamised sümptomid, diagnoosimismeetodid ja kõrvaldamise põhimõtted.
  • Kas olete ühisele probleemile välja mõelnud uue elegantse lahenduse? Kirjutage see üles, et te ei peaks seda kuu aja pärast uuesti leiutama.
  • Kas nad aitasid teil välja mõelda küsimuse, millest te aru ei saanud? Kirjutage üles peamised punktid ja mõisted, joonistage enda jaoks diagramm.

Põhiidee: uute asjade valdamisel ja rakendamisel ei tohiks oma mälu täielikult usaldada.

Millises vormingus seda teete, on teie otsustada: see võib olla märkmetega süsteem, isiklik ajaveeb, tekstifail, füüsiline märkmik. Peaasi, et teie dokumendid vastaksid järgmistele nõuetele:

  1. Ära ole liiga pikk. Tõstke esile peamised ideed, meetodid ja vahendid. Kui probleemi mõistmine nõuab Linuxi mälujaotuse madala taseme mehaanikasse sukeldumist, ärge kirjutage artiklit, millest õppisite, ümber – lisage sellele link.
  2. Kirjed peaksid olema teile selged. Kui rida race cond.lockup ei võimalda kohe aru saada, mida selle reaga kirjeldasid – seleta. Hea dokumentatsiooni mõistmiseks ei kulu pool tundi.
  3. Otsing on väga hea funktsioon. Kui kirjutate ajaveebi postitusi, lisage sildid; kui see on füüsilises märkmikus, kleepige kirjeldustega väikesed post-itid. Dokumentatsioonil pole erilist mõtet, kui kulutate selles vastuse otsimisele sama palju aega, kui oleksite kulutanud küsimuse nullist lahendamisele.

Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Selline võib dokumentatsioon välja näha: alates primitiivsetest märkmetest märkmikus (pilt ülal) kuni täisväärtusliku mitme kasutaja teadmistebaasi koos siltide, otsingu ja kõigi võimalike mugavustega (all).

Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Te mitte ainult ei pea samu vastuseid kaks korda otsima, vaid dokumenteerimine on suureks abiks uute teemade õppimisel (märkused!), parandab teie ämblikutaju (võimet diagnoosida keerulist probleemi ühe pealiskaudse pilguga), ja lisab teie tegevustele organiseeritust. Kui dokumendid on teie kolleegidele kättesaadavad, saavad nad aru, mida ja kuidas te sinna kuhjasite, kui teid seal ei viibi.

Mallimine

Mallimine on mallide loomine ja kasutamine. Enamiku tüüpiliste probleemide lahendamiseks tasub luua konkreetne tegevusmall. Enamiku probleemide diagnoosimiseks tuleks kasutada standardiseeritud toimingute jada. Kui olete midagi parandanud/paigaldanud/optimeerinud, tuleks selle toimivust kontrollida standardsete kontrollnimekirjade abil.

Mallide loomine on parim viis töövoo korraldamiseks. Kui kasutate kõige levinumate probleemide lahendamiseks standardprotseduure, saate palju lahedaid asju. Näiteks kontrollnimekirjade kasutamine võimaldab teil diagnoosida kõiki teie töö jaoks olulisi funktsioone ja loobuda ebaoluliste funktsioonide diagnoosist. Ja standardiseeritud protseduurid vähendavad tarbetut viskamist ja vähendavad vea tõenäosust.

Esimene oluline punkt on see, et protseduurid ja kontrollnimekirjad tuleb samuti dokumenteerida. Kui loodate lihtsalt mälule, võite mõne tõeliselt olulise kontrolli või toimingu vahele jätta ja kõik rikkuda. Teine oluline punkt on see, et kõiki malli tavasid saab ja tuleks muuta, kui olukord seda nõuab. Ideaalseid ja absoluutselt universaalseid malle pole olemas. Kui probleem on olemas, kuid malli kontroll seda ei näidanud, ei tähenda see, et probleemi poleks. Enne mõne ebatõenäolise hüpoteetilise probleemi testimise alustamist tasub aga alati esmalt teha kiire mallitest.

Optimeerimine

Optimeerimine räägib enda eest. Tööprotsessi tuleb aja- ja tööjõukulu osas võimalikult palju optimeerida. Võimalusi on lugematu arv: õppige klaviatuuri otseteid, lühendeid, regulaaravaldisi, saadaolevaid tööriistu. Otsige nende tööriistade praktilisemaid kasutusvõimalusi. Kui helistate käsule 100 korda päevas, määrake see kiirklahvile. Kui teil on vaja regulaarselt ühendust luua samade serveritega, kirjutage ühe sõnaga varjunimi, mis teid seal ühendab:

Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Tutvuge tööriistade erinevate võimalustega – võib-olla on olemas mugavam terminaliklient, DE, lõikelauahaldur, brauser, meiliklient, operatsioonisüsteem. Uurige, milliseid tööriistu teie kolleegid ja sõbrad kasutavad – võib-olla valivad nad need mingil põhjusel. Kui teil on tööriistad olemas, õppige neid kasutama: õppige klahve, lühendeid, näpunäiteid ja nippe.

Kasutage optimaalselt standardseid tööriistu – coreutils, vim, regulaaravaldised, bash. Viimase kolme kohta on tohutult palju suurepäraseid käsiraamatuid ja dokumentatsiooni. Nende abiga saate kiiresti jõuda olekust "Ma tunnen end nagu ahv, kes purustab sülearvutiga pähkleid" olekusse "Olen ahv, kes kasutab sülearvutit endale pähklipuru tellimiseks".

Automaatika

Automaatika viib keerulised toimingud meie väsinud kätelt üle automatiseerimise väsimatutesse kätesse. Kui viies sama tüüpi käsus tehakse mingi standardprotseduur, siis miks mitte mässida kõik need käsud ühte faili ja kutsuda välja üks käsk, mis selle faili alla laadib ja käivitab?

Automatiseerimine ise seisneb 80% ulatuses teie enda tööriistade kirjutamises ja optimeerimises (ja veel 20% püüab neid tööle panna, nagu peaks). See võib olla lihtsalt täiustatud ühekihiline või tohutu kõikvõimas tööriist veebiliidese ja API-ga. Peamine kriteerium on siin see, et tööriista loomine ei võta rohkem aega ja vaeva, kui see, kui palju aega ja vaeva tööriist teid säästab. Kui kulutate viis tundi skripti kirjutamisele, mida te enam kunagi ei vaja, ülesande jaoks, mille lahendamiseks ilma skriptita oleks kulunud tund või kaks, on see väga halb töövoo optimeerimine. Tööriista loomisele saate kulutada viis tundi ainult siis, kui ülesannete arv, tüüp ja aeg seda võimaldavad, mida aga sageli ei juhtu.

Automatiseerimine ei tähenda tingimata täisväärtuslike skriptide kirjutamist. Näiteks loendist hunniku sama tüüpi objektide loomiseks on vaja ainult nutikat ühekihilist, mis teeb automaatselt seda, mida teeksite käsitsi, akende vahel vahetades ja kopeerides-kleebi hunnikutes.

Tegelikult, kui ehitate haldusprotsessi nendele neljale sambale, saate kiiresti tõsta oma tõhusust, tootlikkust ja kvalifikatsiooni. Seda nimekirja tuleb aga täiendada veel ühe punktiga, ilma milleta on IT-s töötamine pea võimatu – eneseharimine.

Süsteemiadministraatori eneseharidus

Et olla selles vallas vähegi pädev, pead pidevalt õppima ja uusi asju õppima. Kui sul pole vähimatki soovi tundmatule silmitsi seista ja sellest aru saada, jääd väga kiiresti jänni. IT-sse ilmub pidevalt igasuguseid uusi lahendusi, tehnoloogiaid ja meetodeid ning kui sa neid vähemalt pealiskaudselt ei uuri, oled teel läbikukkumisele. Paljud infotehnoloogia valdkonnad on väga keerukad ja mahukad. Näiteks võrgu toimimine. Võrgud ja Internet on kõikjal, nendega puutute kokku iga päev, kuid kui süvenete nende taga olevatesse tehnoloogiatesse, avastate tohutu ja väga keerulise distsipliini, mille uurimine ei ole kunagi jalutuskäik pargis.

Ma ei lisanud seda üksust loendisse, kuna see on IT jaoks üldiselt võtmetähtsusega, mitte ainult süsteemihalduse jaoks. Loomulikult ei jõua sa absoluutselt kõike kohe selgeks õppida – sul pole lihtsalt füüsiliselt piisavalt aega. Seetõttu tuleks enda harimisel meeles pidada vajalikke abstraktsioonitasemeid.

Te ei pea kohe õppima, kuidas iga üksiku utiliidi sisemälu haldamine töötab ja kuidas see Linuxi mäluhaldusega suhtleb, kuid on hea teada, mis on RAM skemaatiliselt ja miks seda vaja on. Te ei pea teadma, kuidas TCP ja UDP päised struktuurilt erinevad, kuid oleks hea mõista protokollide tööpõhimõtteid. Te ei pea õppima, mis on optikas signaali sumbumine, kuid oleks tore teada, miks tegelikud kadud päritakse alati sõlmede vahel. Pole midagi halba selles, kui tead, kuidas teatud elemendid teatud abstraktsioonitasemel töötavad, ja ei pruugi mõista absoluutselt kõiki tasandeid, kui abstraktsiooni üldse pole (sa lähed lihtsalt hulluks).

Kuid teie valdkonnas ei ole abstraktsiooni tasemel mõtlemine “no see on asi, mis võimaldab teil veebisaite kuvada”. Järgmised loengud on pühendatud ülevaatele peamistest valdkondadest, millega süsteemiadministraator peab tegelema madalamatel abstraktsioonitasemetel töötades. Püüan piirata läbivaadatud teadmiste hulka minimaalse abstraktsioonitasemega.

Süsteemi haldamise 10 käsku

Niisiis, oleme õppinud neli põhisammast ja alust. Kas saame hakata probleeme lahendama? Mitte veel. Enne seda on soovitatav tutvuda nn parimate tavade ja heade kommete reeglitega. Ilma nendeta teete tõenäoliselt rohkem kahju kui kasu. Niisiis, alustame:

  1. Mõned mu kolleegid usuvad, et kõige esimene reegel on "ära kahjusta". Kuid ma kaldun mitte nõustuma. Kui proovite mitte kahjustada, ei saa te midagi teha – liiga paljud tegevused võivad olla hävitavad. Ma arvan, et kõige olulisem reegel on "teha varukoopia". Isegi kui teete kahju, saate alati tagasi pöörduda ja kõik pole nii hull.

    Peaksite alati varundama, kui aeg ja koht seda võimaldavad. Peate varundama, mida muudate ja mida võite potentsiaalselt hävitava tegevuse tõttu kaotada. Soovitav on kontrollida varukoopia terviklikkust ja kõigi vajalike andmete olemasolu. Varukoopiat ei tohiks kohe pärast kõike kontrollimist kustutada, välja arvatud juhul, kui peate kettaruumi vabastama. Kui asukoht seda nõuab, varundage see oma isiklikku serverisse ja kustutage see nädala pärast.

  2. Teine kõige olulisem reegel (mida ma ise sageli rikun) on "ära varja". Kui tegite varukoopia, kirjutage kuhu, et kolleegid ei peaks seda otsima. Kui tegite ebaselgeid või keerukaid toiminguid, kirjutage see üles: lähete koju ja probleem võib korduda või tekkida kellegi teise jaoks ning teie lahendus leitakse märksõnade abil. Isegi kui teete midagi, mida teate hästi, ei pruugi teie kolleegid seda teha.
  3. Kolmas reegel ei vaja selgitamist: “Ära tee kunagi midagi, mille tagajärgi sa ei tea, ei kujuta ette ega mõista”. Ärge kopeerige käske Internetist, kui te ei tea, mida nad teevad, helistage mehele ja analüüsige need kõigepealt. Ärge kasutage valmislahendusi, kui te ei saa aru, mida need teevad. Hoidke hägustatud koodi täitmine absoluutse miinimumini. Kui teil pole aega selle välja mõelda, siis teete midagi valesti ja peaksite lugema järgmist punkti.
  4. "Test". Uusi skripte, tööriistu, üherealisi ja käske tuleks testida kontrollitud keskkonnas, mitte klientmasinas, kui destruktiivseks tegevuseks on kasvõi minimaalne potentsiaal. Isegi kui te kõik varundasite (ja tegite), pole seisak kõige lahedam asi. Loo selle jaoks eraldi server/virtuaal/chroot ja testi seal. Kas midagi on katki? Seejärel saate selle käivitada "võitluses".

    Algajale süsteemiadministraatorile: kuidas kaosest korda luua

  5. "Kontroll". Minimeerige kõik toimingud, mida te ei kontrolli. Üks paketi sõltuvuskõver võib poole süsteemi alla tõmmata ja yum remove jaoks seatud lipp -y annab teile võimaluse oma süsteemi taastamise oskusi nullist harjutada. Kui toimingul pole kontrollimatuid alternatiive, on järgmiseks valmis varukoopia.
  6. "Kontrollima". Kontrollige oma tegevuse tagajärgi ja seda, kas peate naasta varukoopiale. Kontrollige, kas probleem on tõesti lahendatud. Kontrollige, kas viga taasesitatakse ja millistel tingimustel. Kontrollige, mida saate oma tegudega murda. Pole vaja meie tööd usaldada, kuid mitte kunagi kontrollida.
  7. "Suhtlema". Kui te ei saa probleemi lahendada, küsige oma kolleegidelt, kas nad on sellega kokku puutunud. Kui soovite rakendada vastuolulist otsust, uurige oma kolleegide arvamust. Võib-olla pakuvad nad parema lahenduse. Kui te ei ole oma tegudes kindel, arutage seda kolleegidega. Isegi kui see on teie valdkond, võib olukorra värske pilk palju selgitada. Ära häbene oma teadmatust. Parem on esitada rumal küsimus, näida loll ja saada vastus, kui jätta küsimus esitamata, mitte saada vastust ja jääda lolliks.
  8. "Ära keeldu abist põhjendamatult". See punkt on vastupidine eelmisele. Kui sulle esitatakse rumal küsimus, siis täpsusta ja selgita. Nad küsivad võimatut – selgitage, et see on võimatu ja miks, pakkuge alternatiive. Kui teil pole aega (teil pole tõesti aega, mitte soovi) - öelge, et teil on kiireloomuline küsimus, palju tööd, kuid lahendate selle hiljem. Kui kolleegidel pole kiireloomulisi ülesandeid, pakkuge nendega ühendust ja delegeerige küsimus.
  9. "Andke tagasisidet". Kas keegi teie kolleegidest on hakanud kasutama uut tehnikat või uut stsenaariumi ja kas teil on selle otsuse negatiivseid tagajärgi? Teatage sellest. Võib-olla saab probleemi lahendada kolme koodirea või viie minutiga tehnika viimistlemisega. Kas olete oma tarkvaras veaga kokku puutunud? Teata veast. Kui see on reprodutseeritav või seda pole vaja, siis suure tõenäosusega see parandatakse. Esitage oma soovid, ettepanekud ja konstruktiivne kriitika ning esitage aruteluks küsimusi, kui need tunduvad asjakohased.
  10. "Küsi tagasisidet". Me kõik oleme ebatäiuslikud, nagu ka meie otsused, ja parim viis oma otsuse õigsust testida on see aruteluks tuua. Kui olete kliendi jaoks midagi optimeerinud, paluge tal tööd jälgida, võib-olla pole süsteemi kitsaskoht seal, kus otsisite. Olete kirjutanud abiskripti – näidake seda oma kolleegidele, võib-olla leiavad nad viisi selle täiustamiseks.

Kui te neid praktikaid oma töös pidevalt rakendate, lakkab enamik probleeme olemast probleemidest: te mitte ainult ei vähenda omaenda vigade ja võltsimiste arvu miinimumini, vaid saate ka võimaluse vigu parandada ( varukoopiate kujul ja kolleegid, kes soovitavad teil varundada). Edasi - ainult tehnilised detailid, milles, nagu me teame, peitub kurat.

Peamised tööriistad, millega peate rohkem kui 50% ajast töötama, on grep ja vim. Mis võiks olla lihtsam? Tekstiotsing ja teksti redigeerimine. Nii grep kui ka vim on aga võimsad multitööriistad, mis võimaldavad teil teksti tõhusalt otsida ja redigeerida. Kui mõni Windowsi märkmik võimaldab lihtsalt rida kirjutada/kustutada, siis vimis saab tekstiga teha peaaegu kõike. Kui te mind ei usu, helistage terminalist käsule vimtutor ja alustage õppimist. Mis puutub grep-i, siis selle peamine tugevus on regulaaravaldistes. Jah, tööriist ise võimaldab teil üsna paindlikult määrata otsingutingimusi ja väljastada andmeid, kuid ilma RegExpita pole sellel erilist mõtet. Ja sa pead teadma regulaaravaldisi! Vähemalt algtasemel. Alustuseks soovitaksin teil seda vaadata video, see hõlmab regulaaravaldiste põhitõdesid ja nende kasutamist koos grepiga. Oh jah, kui kombineerite need vimiga, saate ülivõimsa võimaluse teha asju tekstiga, mille peate märgistama 18+ ikoonidega.

Ülejäänud 50%, 40% pärineb coreutilsi tööriistakomplektist. Corutilsi jaoks saate vaadata loendit aadressil Vikipeediaja kogu loendi juhend on veebisaidil GNU. Mida see komplekt ei hõlma, on kommunaalteenustes POSIX. Kõiki klahve ei pea pähe õppima, kuid kasulik on vähemalt umbkaudu teada, mida põhitööriistad teha suudavad. Sa ei pea ratast karkude abil uuesti leiutama. Mul oli millegipärast vaja mingi utiliidi väljundis reavahetused tühikutega asendada ja mu haige aju sünnitas sellise konstruktsiooni nagu sed ':a;N;$!ba;s/n/ /g', tuli kolleeg ja ajas mu luudaga konsooli juurest minema ning lahendas siis probleemi kirjutades tr 'n' ' '.

Algajale süsteemiadministraatorile: kuidas kaosest korda luua

Soovitaksin meeles pidada, mida iga tööriist teeb ja kõige sagedamini kasutatavate käskude võtmed; kõige muu jaoks on inimene. Helistage julgelt mehele, kui teil on kahtlusi. Ja lugege kindlasti ka meest ennast - see sisaldab olulist teavet selle kohta, mida leiate.

Neid tööriistu teades saate tõhusalt lahendada olulise osa probleemidest, millega praktikas kokku puutute. Järgmistes loengutes vaatleme, millal neid tööriistu kasutada ning nende aluseks olevate teenuste ja rakenduste raamistikke.

FirstVDS-i süsteemiadministraator Kirill Tsvetkov oli teiega.

Allikas: www.habr.com

Lisa kommentaar