Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Olen FirstVDSi sĂŒsteemiadministraator ning see on tekst minu lĂŒhikursuse esimesest sissejuhatavast loengust, mis on mĂ”eldud algajale kolleegile. Spetsialistid, kes on hiljuti alustanud sĂŒsteemiadministreerimisega, seisavad silmitsi mitmete samade probleemidega. Pakkuda lahendusi, otsustasin kirjutada selle loengute tsĂŒkli. MĂ”ned asjad on spetsiifilised hostingu tehnilise toe jaoks, kuid ĂŒldiselt vĂ”ivad need osutuda kasulikuks, kui mitte kĂ”igile, siis paljudele. SeepĂ€rast kohandasin loengu teksti, et jagada seda siin.

Ei ole oluline, kuidas teie ametit nimetatakse — tĂ€htis on see, et te tegelikult tegelete haldamisega. SeetĂ”ttu alustame sellest, mida sĂŒsteemiadministraator tegema peab. Tema pĂ”hiĂŒlesanne on korrastamine, korra hoidmine ja ette valmistamine eelseisvateks suurendusteks. Ilma sĂŒsteemiadministraatorita muutub serveris olukord segaseks. Logisid ei kirjutata vĂ”i neis on vale teave, ressursid jaotatakse ebaoptimaalselt, kett tĂ€itub igasuguse prĂŒgi ja sĂŒsteem hakkab suure kaose tĂ”ttu aeglaselt kokku kukkuma. Rahu! SĂŒsteemiadministraatorid teie ees asuvad probleemide lahendamisele ja segaduse kĂ”rvaldamisele!

SĂŒsteemiadministratsiooni alustalad

Kuid enne probleemide lahendama asumist tasub tutvuda nelja pÔhialusega, mida haldamine eeldab:

  1. Dokumentatsioon
  2. Malli loomine
  3. Optimeerimine
  4. Automatiseerimine

See on aluste alus. Kui te ei raja oma tööprotsessi nende pĂ”himĂ”tete peale, jÀÀb see ebaefektiivseks, produktiivseks ja ei meenuta tĂ”elist haldamist. Vaatame igaĂŒht eraldi.

Dokumentatsioon

Dokumentatsioon ei tÀhenda ainult dokumentatsiooni lugemist (kuigi ilma selleta ei saa), vaid ka selle pidamist.

Kuidas koostada dokumentatsiooni:

  • Kas olete sattunud uue probleemi otsa, mida te pole kunagi varem nĂ€inud? Kirjeldage pĂ”hilisi sĂŒmptomeid, diagnostika viise ja lahendamise pĂ”himĂ”tteid.
  • Kas leidsid elegantse lahenduse tavalisele probleemile? Kirjuta see ĂŒles, et ei peaks seda kuu aja pĂ€rast uuesti vĂ€lja mĂ”tlema.
  • Kas keegi aitas sul aru saada kĂŒsimusest, milles sa mitte midagi ei mĂ”istnud? Kirjuta ĂŒles pĂ”hiteesid ja kontseptsioonid, joonista endale skeem.

PÔhiteema: ei tohiks tÀielikult usaldada oma mÀlu uue omandamisel ja rakendamisel.

Millises formaadis seda teete, sĂ”ltub ainult teist: see vĂ”ib olla mĂ€rgistusĂŒsteem, isiklik blogi, tekstifail vĂ”i fĂŒĂŒsiline mĂ€rkmik. Peamine on, et teie mĂ€rkmed vastavad jĂ€rgmistele nĂ”uetele:

  1. Ärge olge liigsed pikad.Tooge esile peamised ideed, meetodid ja vahendid. Kui probleemi mĂ”istmine nĂ”uab sĂŒvenemist Linuxi mĂ€lu eraldamise madalamate mehhanismidesse, Ă€rge kirjutage ĂŒmber artiklit, millest te seda Ă”ppisite — viidake sellele.
  2. MĂ€rkmed peavad olema teile arusaadavad. Kui rida race cond.lockup ei luba teil kohe aru saada, mida te selle reaga kirjeldasite - selgitage. Heas dokumentatsioonis ei pea pool tundi otsima.
  3. Otsing on vĂ€ga hea funktsioon. Kui te peate pĂ€evikut, lisage sildid; kui fĂŒĂŒsilisse mĂ€rkmikusse - kleepige vĂ€iksed post-it'id koos kirjeldustega. Dokumentatsioonis pole mĂ”tet, kui te selle kaudu vastuse leidmiseks kulutate sama kaua aega, kui oleksite investeerinud probleemist lahenduse leidmisse alates nullist.

Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Nii vĂ”ib dokumentatsioon vĂ€lja nĂ€ha: alates primitiivsetest mĂ€rkmetest mĂ€rkmikus (ĂŒlemine pilt) kuni tĂ€isfunktsionaalse mitme kasutaja teadmistebaasini siltide, otsingu ja kĂ”igi vĂ”imalike mugavustega (allpool).

Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Te ei pea mitte ainult otsima sama vastust kaks korda: dokumenteerimine on suurepĂ€rane abivahend uute teemade Ă”ppimisel (kokkuvĂ”tted ju!), arendab teie Ă€mbliku intuitsiooni (vĂ”imet diagnoosida keerulisi probleeme, heites vaid ĂŒhe pinnapealse pilgu), lisab teie tegevusele organiseeritust. Kui dokumentatsioon on teie kolleegidele kergesti kĂ€ttesaadav, vĂ”imaldab see neil aru saada, mida ja kuidas te seal teinud olete, kui te ei viibi kohal.

Mallide loomine

Mallide loomine — see on mallide loomine ja kasutamine. Enamikku tĂŒĂŒpilisi kĂŒsimusi lahendades tasub luua teatud tegevusmall. Enamikku probleeme diagnoosides tuleb kasutada standardiseeritud tegevuste jĂ€rjestust. Kui olete midagi parandanud/paigaldanud/optimeerinud, tasub selle toimimist kontrollida vastavalt standardiseeritud kontrollnimekirjadele.

Malle kasutamine on parim viis tööprotsessi korraldamiseks. Kasutades tĂŒĂŒpilisi protseduure kĂ”ige sagedamate probleemide lahendamiseks, saate palju kasulikku. NĂ€iteks kontrollnimekirjade kasutamine vĂ”imaldab teil diagnoosida kĂ”ik olulised tööfunktsioonid ja kĂ”rvaldada ebaolulise funktsionaalsuse diagnoosimine. Standardiseeritud protseduurid vĂ€hendavad tarbetu segaduse tekkimise vĂ”imalust ja vĂ€hendavad vea tĂ”enĂ€osust.

Esimene oluline punkt on see, et protseduure ja kontrollliste tuleb samuti dokumenteerida. Kui loota lihtsalt mĂ€lule, vĂ”ib mĂ”ni tĂ”eliselt oluline kontroll vĂ”i toiming jĂ€tta tĂ€helepanuta ja kĂ”ik kokku kukkuda. Teine oluline punkt on see, et kĂ”iki mallipraktikaid saab ja tuleb modifitseerida, kui olukord seda nĂ”uab. TĂ€iuslikke ja tĂ€iesti universaalseid malle ei ole. Kui probleem esineb, kuid malli kontroll ei ole seda tuvastanud, ei tĂ€henda see, et probleemi ei oleks. Kuid enne, kui asuda kontrollima vĂ”imalikke ebatĂ”enĂ€olisi hĂŒpoteetilisi probleeme, tuleks alati esmalt teha kiire mallikontroll.

Optimeerimine

Optimeerimine kĂ”neleb enda eest. Töövoog tuleb maksimaalselt optimeerida aega ja tööjĂ”udu arvestades. Siin on lĂ”putult vĂ”imalusi: Ă”ppige kiirkLinke, lĂŒhendeid, regulaaravaldisi ja olemasolevaid tööriistu. Otsige praktilisemaid kasutusvĂ”imalusi nende tööriistadega. Kui kutsute paar korda pĂ€evas sama kĂ€sku, seadistage see klaviatuuril lĂŒhendiks. Kui peate pidevalt ĂŒhenduma samade serveritega, saate seadistada aliasi ĂŒhe sĂ”naga, mis viib teid sinna:

Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Tutvuge erinevate saadaval olevate tööriistadega — vĂ”ib-olla on olemas mugavam terminali klient, DE, lĂ”ikepulk, brauser, e-posti klient, operatsioonisĂŒsteem. Uurige, milliseid tööriistu kasutavad teie kolleegid ja tuttavad — ehk nad valivad need mitte ilma pĂ”hjuseta. PĂ€rast tööriistade valimist Ă”ppige neid rakendama: harjuta klavisi, otseteid, nĂ€punĂ€iteid ja nippe.

Kasutage standardseid tööriistu vĂ”imalikult tĂ”husalt — coreutils, vim, regulaaravaldised, bash. Viie viimase osas on tohutult palju suurepĂ€raseid juhiseid ja dokumentatsiooni. Nende abil on vĂ”imalik ĂŒsna kiiresti liikuda seisundist "ma tunnen end nagu ahv, kes lööb pĂ€hkleid sĂŒlearvutiga" kuni "ma olen ahv, kes kasutab sĂŒlearvutit pĂ€hklipurustaja tellimiseks."

Automatiseerimine

Automatiseerimine viib rasketest toimingutest meie vĂ€sinud kĂ€test masinaga töötavate kĂ€te kĂŒlge. Kui mĂ”nda standardset protseduuri tĂ€idetakse viie samasuguse kĂ€suga, siis miks mitte mĂ€hkida kĂ”ik need kĂ€sud ĂŒhte faili ja kutsuda vĂ€lja ĂŒks kĂ€sk, mis selle faili alla laadib ja tĂ€idab?

TĂ”eliselt automatiseerimine koosneb 80% oma tööriistade kirjutamisest ja optimeerimisest (ja veel 20% katsetamisest, et need töötaksid nagu peaks). See vĂ”ib olla lihtsalt keeruline ĂŒhesĂ”naline skript vĂ”i suur, kĂ”ikvĂ”imas tööriist veebiliidese ja API-ga. Peamine kriteerium on see, et tööriista loomine ei tohiks vĂ”tta rohkem aega ja vaeva kui see, kui palju aega ja vaeva see tööriist sÀÀstab. Kui te kirjutate skripti viis tundi, mis pole kunagi enam vajalik, ĂŒlesande lahendamiseks, milleks oleks arvatavasti kulunud tund-kaks ilma skriptita — see on vĂ€ga halb protsessi optimeerimine. Viie tunni tööriista loomine on pĂ”hjendatud ainult siis, kui ĂŒlesannete hulk, tĂŒĂŒp ja aeg seda vĂ”imaldavad, mis juhtub harva.

Automatiseerimine ei tĂ€henda tingimata tĂ€iendavate skriptide kirjutamist. NĂ€iteks, et luua hulk sarnaseid objekte loendist, piisab oskuslikust ĂŒhesĂ”nalistest skriptidest, mis automatiseerivad selle, mida te teeksite kĂ€sitsi, akende vahel vahetades, koos hulkade kopeeritud ja kleebitud teksti.

Tegelikult, kui ehitada haldusprotsess nende nelja samba peale, siis on vĂ”imalik ĂŒsna kiiresti suurendada oma efektiivsust, tootlikkust ja kvalifikatsiooni. Kuid seda nimekirja tuleb tĂ€iendada veel ĂŒhe punktiga, ilma milleta on IT töö praktiliselt vĂ”imatu — eneseharimisega.

SĂŒsteemiadministraatori eneseharimine

Kuna olla selles valdkonnas vĂ€hemalt veidi kompetentne, on vajalik pidevalt Ă”ppida ja uut teada saada. Kui teil puudub vĂ€himgi soov silmitsi seista tundmatuga ja arusaada asjadest, siis kukute vĂ€ga kiiresti madalamale tasemele. IT-s ilmuvad pidevalt uued lahendused, tehnoloogiad ja meetodid, ning kui te ei tutvu nendega vĂ€hemalt pinnapealselt — olete kaotamise teel. Paljud infotehnoloogia valdkonnad toetuvad ĂŒsna keerulisele ja ulatuslikule alusele. NĂ€iteks vĂ”rgu töö. VĂ”rgud ja internet on igal pool, te puutute nendega kokku igapĂ€evaselt, kuid kui kaevate vĂ€lja tehnoloogiat, mis nende taga seisab, leiate tohutu ja vĂ€ga keerulise distsipliini, mille uurimine ei ole sugugi lihtne jalutuskĂ€ik pargis.

Ma ei lisanud seda punkti nimekirja, kuna see on oluline IT valdkonnas ĂŒldiselt, mitte ainult sĂŒsteemiadministreerimises. Loomulikult ei ole vĂ”imalik kĂ”ike korraga Ă”ppida — teil ei jĂ€tku lihtsalt fĂŒĂŒsiliselt aega. SeetĂ”ttu tuleb enesetĂ€iendamisel arvestada vajalike abstraktsiooni tasemetega.

Te ei pea kohe Ă”ppima, kuidas iga eraldi tööriista sisemine mĂ€lu haldamine töötab ja kuidas see suhtleb Linuxi mĂ€lu haldamisega, kuid oleks kasulik teada, milline on operatiivmĂ€lu skeemiliselt ja miks see vajalik on. Te ei pea teadma, kuidas TCP ja UDP pĂ€ised struktuuriliselt erinevad, kuid oleks hea mĂ”ista protokollide pĂ”hilisi erinevusi töös. Te ei pea uurima, mis on signaali nĂ”rgenemine optikas, kuid oleks kasulik teada, miks reaalsed kadud pĂ€randuvad alati sĂ”lmedele. Pole midagi halba selles, et teate, kuidas teatud elemendid töötavad teatud abstraktsioonitasemel, ja ei ole vajalik peatuda kĂ”igil tasanditel, kui abstraktsiooni pole ĂŒldse (te lihtsalt kaotate arusaama).

Kuid oma valdkonnas abstraktsiooni tasemel arutamine "see on lihtsalt asi, mis vĂ”imaldab nĂ€idata veebilehti" — ei ole vĂ€ga hea. JĂ€rgmised loengud keskenduvad peamistele valdkondadele, millega sĂŒsteemiadministraator oma töö kĂ€igus madalamate abstraktsioonitasemete juures kokku puutub. PĂŒĂŒan piirata kĂ€sitletavate teadmiste arvu minimaalsele abstraktsioonitasemele.

10 sĂŒsteemiadministreerimise kĂ€sku

Nii oleme Ă”ppinud neli peamist alust ja vundamenti. Kas saame alustada probleemide lahendamist? Mitte veel. Enne seda on soovitatav tutvuda nii nimetatud „parimate praktikate” ja head tavad. Ilma neis, on oht, et teete rohkem kahju kui kasu. Alustame siis:

  1. MĂ”ned mu kolleegid arvavad, et kĂ”ige esimene reegel on „Àra tee halba”. Kuid ma ei ole nĂ”us. Kui pĂŒĂŒad mitte kahjustada, siis ei saa ka midagi teha — liiga palju tegevusi on potentsiaalselt destruktiivsed. KĂ”ige olulisem reegel, mida ma pean, on — „tee varukoopia”. Isegi kui teete kahju, on alati vĂ”imalik tagasi rullida, ja siis ei ole kĂ”ik enam nii hull.

    Backup peaks should be a priority whenever time and space permit. Focus on backing up what you'll modify and what you risk losing due to potential destructive actions. It's a good idea to verify the integrity of the backup and ensure all necessary data is included. Don’t delete the backup right after verification unless you need to free up disk space. If space is a concern, back it up to your personal server and delete it after a week.

  2. The second most important rule (which I often break myself) — «don’t keep it hidden». If you’ve created a backup, let others know where it is so that your colleagues don’t have to search for it. If you've performed any non-obvious or complex actions, document them: you might leave for the day, but the problem can recur or arise for someone else, and your solution can be found by searching relevant keywords. Even if you’re doing something you're familiar with, your colleagues may not know it.
  3. The third rule needs no explanation: «never do something whose consequences you don't know, can't envision, or don’t understand». Ära kopeeri kĂ€ske internetist, kui sa ei tea, mida need teevad; kasuta man'i ja analĂŒĂŒsi neid esmalt. Ära rakenda valmis lahendusi, kui sa ei mĂ”ista, mida need teevad. VĂ€henda obfuskeeritud koodi tĂ€itmist absoluutsele miinimumile. Kui sul pole aega sĂŒveneda — teed sa midagi valesti ja peaksid tutvuma jĂ€rgmise punktiga.
  4. „Testi“. Uusi skripte, tööriistu, ĂŒhesĂ”nalisi kĂ€ske ja komande tuleb testida kontrollitud keskkonnas, mitte kliendi masinal, kui seal on vĂ€hemalt minimaalne potentsiaal hĂ€vitavateks tegevusteks. Isegi kui oled kĂ”ik varundanud (ja sa tegid seda), siis katkestus ei ole kĂ”ige meeldivam asi. Sea selleks eraldi server/virtuaalmasin/chroot ja testi seal. Kas midagi ei rikutud? Siis vĂ”id ellu viia „tootmises“.

    Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

  5. „Kontrolli“. Minimeerige kĂ”ik teie kontrolli all olevaid toiminguid. Ühe paketi kĂ”ver sĂ”ltuvus vĂ”ib inimesi kaasa tĂ”mmata poolest sĂŒsteemist, ja yum remove lipp -y, annab teile vĂ”imaluse harjutada oma oskusi sĂŒsteemi taastamisest nullist. Kui toimingul ei ole kontrollimatuid alternatiive — liikuge jĂ€rgmise punkti ja valmis varukoopia juurde.
  6. „Kontrolli“. Kontrollige oma tegevuste tagajĂ€rgi ja kas on vaja varukoopia peale tagasi minna. Kontrollige, kas probleem on tĂ”epoolest lahendatud. Kontrollige, kas viga kordub ja millistes tingimustes see juhtub. Kontrollige, mida saaksite oma tegevustega rikkuda. Usaldus meie töös on ĂŒleliigne, kuid kontrollimine — kunagi mitte.
  7. „Suhtle“. Kui probleem ei lahene, kĂŒsige kolleegidelt, kas nad on sellise olukorraga kokku puutunud. Kui soovite rakendada vaidlusalust lahendust, uurige kolleegide arvamust. VĂ”imalik, et nad pakuvad paremat lahendust. Kui te pole oma tegevustes kindel, arutage neid kolleegidega. Isegi kui see on teie ekspertvaldkond, vĂ”ib vĂ€rske vaatenurk palju selgust tuua. Ärge kartke oma teadmiste puudumist. parem on esitada rumal kĂŒsimus, paista tola ja saada sellele vastus, kui mitte esitada kĂŒsimust, mitte saada vastust ja jÀÀda tola.
  8. „Ära keela abi alusetult“. See punkt on eelneva vastand. Kui teile esitatakse rumal kĂŒsimus, selgitage ja selgitage. Kui palutakse midagi, mis on teostatav, selgitage, miks see ei ole vĂ”imalik ja pakkuge alternatiive. Kui pole aega (reaalselt pole aega, mitte ei taha) – öelge, et teil on kiire kĂŒsimus vĂ”i suur töökoormus, kuid lahendate selle hiljem. Kui kolleegidel pole kiireid ĂŒlesandeid, pakkuda, et nad pöörduksid teie poole ja delegeerida kĂŒsimus.
  9. „Andke tagasisidet“. Kas keegi teie kolleegidest on hakanud kasutama uut meetodit vĂ”i skripti ning te saate negatiivseid tagajĂ€rgi selle otsuse tĂ”ttu? Andke sellest teada. Probleem vĂ”ib lahendada kolme rea koodi vĂ”i viie minuti meetodi tĂ€iustamisega. Kas leidsid tarkvaras vea? Teata veast. Kui see on korduv vĂ”i pole vajalik selle korratavuse kontrollimine, siis tĂ”enĂ€oliselt parandatakse see. Jagage oma soove, ettepanekuid ja konstruktiivset kriitikat, tugege kĂŒsimusi aruteluks, kui tundub, et need on aktuaalsed.
  10. „KĂŒsi tagasisidet“. Me kĂ”ik ei ole ideaalsed, nagu ei ole ka meie otsused, ja parim viis kontrollida oma otsuse Ă”igsust on tuua see aruteluks. Kui olete kliendi juures midagi optimeerinud, paluge neil jĂ€lgida tööd, vĂ”ib-olla on sĂŒsteemis pudelikael teises kohas, kui te otsisite. Kui olete kirjutanud vĂ€ikese abiskripti, nĂ€idake seda kolleegidele, vĂ”ib-olla leiavad nad viisi selle tĂ€iustamiseks.

Kui neid tavasid pidevalt rakendada, lakivad enamik probleemidest olemast probleemid: te mitte ainult ei vÀhenda oma kÔrvalekaldeid ja eksimusi miinimumini, vaid teil on ka vÔimalus vigu parandada (varukoopiate ja kolleegide, kes soovitavad teil varundada, abil). Edasi liigume vaid tehniliste detailide juurde, kus nagu teada, peitubki kurat.

Peamised tööriistad, millega peate töötama rohkem kui 50% ajast, on grep ja vim. Mis vĂ”iks olla lihtsam? Teksti otsimine ja redigeerimine. Siiski on nii grep kui ka vim vĂ”imsad multifunktsionaalsed tööriistad, mis vĂ”imaldavad teksti tĂ”husalt otsida ja redigeerida. Kui mĂ”ni Windowsi notepad vĂ”imaldab teil lihtsalt rida kirjutada/ kustutada, siis vim'is saate tekstiga peaaegu kĂ”ike teha. Ei usu? KĂ€ivitage terminalis kĂ€sk vimtutor ja hakake Ă”ppima. Mis puudutab grep'i, siis tema peamine jĂ”ud seisneb regulaarsetes vĂ€ljendites. Jah, see tööriist vĂ”imaldab ĂŒsna paindlikult mÀÀrata otsingutingimusi ja vĂ€ljundandmeid, kuid ilma RegExp'ita pole sellel erilist mĂ”tet. Ja regulaarseid vĂ€ljendeid on vaja teada! Isegi pĂ”hitasemel. Alustuseks soovitaksin teil vaadata seda video, see kĂ€sitleb regulaarsete vĂ€ljendite ja nende rakendamise aluseid koos grep'iga. Ah jah, nende ĂŒhendamisel vim'iga saate ULTIMATE POWER vĂ”imaluse teha tekstiga selliseid asju, et neid on vaja varustada 18+ ikoonidega.

JĂ€relejÀÀnud 50%-st tuleb 40% coreutils'i tööriistakomplektist. Coreutils'i nimekirja leiate vikipeedia, ja kogu nimekirja manuaal on veebis GNU. Mis ei kuulu selle komplekti, on utiliitides POSIX. Ei ole tingimata vajalik seda kĂ”ike peast teada, kuid oleks kasulik mĂ”ista, mida pĂ”hivahendid suudavad — siis ei pea ratast uuesti leiutama. Kunagi pidin asendama reavahed tĂŒhikutega mingi utiliidi vĂ€ljundis ja mu ekslikud mĂ”tted viisid sellise konstruktsioonini sed ':a;N;$!ba;s/n/ /g', kolleeg, kes lĂ€henes, peletas mind konsoolist vĂ€lja ja lahendas ĂŒlesande, kirjutades tr 'n' ' '.

Algajale sĂŒsteemiadministratsioon: kuidas kaosest korda luua

Soovitan meeles pidada, mida iga eraldi tööriist ja nende vĂ”tmed peamiselt teevad; selle kĂ”ikide jaoks on man. Ärge kartke kutsuda man, kui te milleski kahtlete. Ja kindlasti lugege man'i ka man'i kohta — seal on oluline teave selle kohta, mida te leiate.

Nende tööriistade tundmine vÔimaldab teil tÔhusalt lahendada olulise osa probleemidest, millega praktikas kokku puutute. JÀrgmistes loengutes kÀsitleme, millal neid tööriistu ja struktuure rakendada ning milliste pÔhiteenuste ja rakendustega need on seotud.

Teiega oli sĂŒsteemihaldur FirstVDS Kirill Tsvetkov.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster