Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Sem sistemski administrator FirstVDS in to je besedilo prvega uvodnega predavanja iz mojega kratkega tečaja o pomoči kolegom začetnikom. Strokovnjaki, ki so se pred kratkim začeli ukvarjati s sistemsko administracijo, se srečujejo s številnimi enakimi težavami. Da bi ponudil rešitve, sem se lotil pisanja te serije predavanj. Nekatere stvari v njem so specifične za gostovanje tehnične podpore, a na splošno so lahko uporabne, če ne za vse, pa za mnoge. Zato sem prilagodil besedilo predavanja, da ga delim tukaj.

Ni pomembno, kako se imenuje vaš položaj - pomembno je, da se dejansko ukvarjate z administracijo. Zato začnimo s tem, kaj mora storiti skrbnik sistema. Njegova glavna naloga je spraviti stvari v red, vzdrževati red in se pripraviti na prihodnja povečanja reda. Brez skrbnika sistema strežnik postane zmešnjava. Dnevniki se ne pišejo ali pa se vanje pišejo napačne stvari, viri niso razporejeni optimalno, disk je napolnjen z najrazličnejšimi smetmi in sistem začne počasi umirati od tolikšnega kaosa. mirno! Sistemski skrbniki v vaši osebi začnejo reševati težave in odpravljati nered!

Stebri sistemske administracije

Preden se lotite reševanja težav, pa se je vredno seznaniti s štirimi glavnimi stebri administracije:

  1. Dokumentacija
  2. Šabloniranje
  3. Optimizacija
  4. Avtomatizacija

To je osnova. Če svojega delovnega toka ne boste gradili na teh načelih, bo neučinkovit, neproduktiven in na splošno malo podoben resničnemu upravljanju. Oglejmo si vsakega posebej.

Dokumentacija

Dokumentacija ne pomeni branja dokumentacije (čeprav brez nje ne gre), temveč tudi vzdrževanje le-te.

Kako hraniti dokumentacijo:

  • Ste naleteli na novo težavo, ki je še niste videli? Zapišite glavne simptome, metode diagnoze in načela odprave.
  • Ste našli novo, elegantno rešitev za pogost problem? Zapišite si ga, da vam ga ne bo treba čez mesec znova izumljati.
  • Ali so vam pomagali ugotoviti vprašanje, ki ga niste razumeli? Zapišite glavne točke in pojme, narišite diagram zase.

Glavna ideja: pri obvladovanju in uporabi novih stvari ne smete popolnoma zaupati lastnemu spominu.

V kateri obliki boste to storili, je odvisno od vas: lahko je sistem z zapiski, osebni blog, besedilna datoteka, fizična beležka. Glavna stvar je, da vaši zapisi izpolnjujejo naslednje zahteve:

  1. Ne bodite predolgi. Označite glavne ideje, metode in orodja. Če razumevanje težave zahteva poglobitev v nizkonivojsko mehaniko dodeljevanja pomnilnika v Linuxu, ne prepišite članka, iz katerega ste se tega naučili – navedite povezavo do njega.
  2. Vnosi vam morajo biti jasni. Če črta race cond.lockup vam ne omogoča takojšnjega razumevanja tega, kar ste opisali s to vrstico - razložite. Razumevanje dobre dokumentacije ne traja pol ure.
  3. Iskanje je zelo dobra funkcija. Če pišete objave v spletnem dnevniku, dodajte oznake; če je v fizičnem zvezku, nalepite majhne samolepičke z opisi. Dokumentacija nima smisla, če za iskanje odgovora v njej porabite toliko časa, kot bi ga porabili za reševanje vprašanja od začetka.

Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Tako lahko izgleda dokumentacija: od primitivnih zapiskov v beležnici (slika zgoraj) do popolne večuporabniške baze znanja z oznakami, iskanjem in vsemi možnimi ugodnostmi (spodaj).

Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Ne samo, da vam ne bo treba dvakrat iskati istih odgovorov, ampak vam bo dokumentiranje v veliko pomoč pri učenju novih tem (opombe!), izboljšalo vaš čut za pajke (zmožnost diagnosticiranja kompleksnega problema z enim površnim pogledom), in bo vašim dejanjem dodal organizacijo. Če je dokumentacija na voljo vašim sodelavcem, bodo lahko ugotovili, kaj in kako ste tam nakopičili, ko vas ni.

Šabloniranje

Šabloniranje je izdelava in uporaba predlog. Za rešitev večine tipičnih težav je vredno ustvariti posebno akcijsko predlogo. Za diagnosticiranje večine težav je treba uporabiti standardizirano zaporedje korakov. Ko ste nekaj popravili/namestili/optimizirali, je treba delovanje tega nečesa preveriti s standardiziranimi kontrolnimi seznami.

Predloge so najboljši način za organizacijo vašega poteka dela. Z uporabo standardnih postopkov za reševanje najpogostejših težav dobite veliko kul stvari. Na primer, uporaba kontrolnih seznamov vam bo omogočila, da diagnosticirate vse funkcije, ki so pomembne za vaše delo, in zavržete diagnozo nepomembne funkcionalnosti. In standardizirani postopki bodo zmanjšali nepotrebno metanje in zmanjšali verjetnost napake.

Prva pomembna točka je, da je treba dokumentirati tudi postopke in kontrolne sezname. Če se zanašate le na spomin, lahko zamudite kakšen res pomemben pregled ali operacijo in vse pokvarite. Druga pomembna točka je, da je mogoče in je treba vse prakse predlog spremeniti, če to zahteva situacija. Idealnih in absolutno univerzalnih šablon ni. Če obstaja težava, vendar je pregled predloge ni razkril, to ne pomeni, da težave ni. Toda preden začnete preizkušati nekatere malo verjetne hipotetične težave, je vedno vredno najprej opraviti hiter preizkus predloge.

Optimizacija

Optimizacija govori zase. Delovni proces je treba čim bolj optimizirati z vidika časa in stroškov dela. Obstaja nešteto možnosti: naučite se bližnjic na tipkovnici, okrajšav, regularnih izrazov, razpoložljivih orodij. Poiščite bolj praktično uporabo teh orodij. Če ukaz pokličete 100-krat na dan, ga dodelite bližnjici na tipkovnici. Če se morate redno povezovati z istimi strežniki, z eno besedo napišite vzdevek, ki vas bo tam povezal:

Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Seznanite se z različnimi možnostmi, ki so na voljo za orodja - morda obstaja bolj priročen terminalski odjemalec, DE, upravitelj odložišča, brskalnik, e-poštni odjemalec, operacijski sistem. Ugotovite, katera orodja uporabljajo vaši sodelavci in prijatelji – morda jih izberejo z razlogom. Ko imate orodja, se jih naučite uporabljati: naučite se ključev, okrajšav, nasvetov in trikov.

Optimalno uporabite standardna orodja - coreutils, vim, regular izraze, bash. Za zadnje tri obstaja ogromno čudovitih priročnikov in dokumentacije. Z njihovo pomočjo lahko hitro preidete iz stanja "počutim se kot opica, ki stre orehe s prenosnikom" v "sem opica, ki uporablja prenosnik, da si naroči lomljenje orehov."

Avtomatizacija

Avtomatizacija bo težko delo iz naših utrujenih rok preneslo v neumorne roke avtomatizacije. Če se nek standardni postopek izvaja v petih ukazih istega tipa, zakaj potem ne bi zavili vseh teh ukazov v eno datoteko in poklicali en ukaz, ki prenese in izvede to datoteko?

Sama avtomatizacija je 80 % pisanje in optimiziranje lastnih orodij (in dodatnih 20 % poskušanje, da bodo delovala, kot je treba). Lahko je samo napredno enovrstično orodje ali ogromno vsemogočno orodje s spletnim vmesnikom in API-jem. Glavno merilo pri tem je, da ustvarjanje orodja ne sme vzeti več časa in truda od količine časa in truda, ki vam ga bo orodje prihranilo. Če porabite pet ur za pisanje skripta, ki ga ne boste nikoli več potrebovali, za nalogo, ki bi vam vzela uro ali dve, da bi jo rešili brez skripta, je to zelo slaba optimizacija poteka dela. Za ustvarjanje orodja lahko porabiš pet ur le, če ti število, vrsta nalog in čas to dopuščajo, kar se pogosto ne zgodi.

Avtomatizacija ne pomeni nujno pisanja polnopravnih skriptov. Na primer, če želite s seznama ustvariti kup predmetov iste vrste, potrebujete le pametno enovrstično datoteko, ki bo samodejno naredila tisto, kar bi storili ročno, preklapljala med okni, s kopico kopij in lepil.

Pravzaprav, če administrativni proces zgradite na teh štirih stebrih, lahko hitro povečate svojo učinkovitost, produktivnost in kvalifikacije. Vendar je treba ta seznam dopolniti še z eno točko, brez katere je delo v IT skoraj nemogoče - samoizobraževanje.

Samoizobraževanje sistemskega administratorja

Če želite biti vsaj malo kompetentni na tem področju, morate nenehno študirati in se učiti novih stvari. Če nimate niti najmanjše želje, da bi se soočili z neznanim in ga ugotovili, boste zelo hitro nasedli. V informatiki se nenehno pojavljajo najrazličnejše nove rešitve, tehnologije in metode, in če jih ne preučite vsaj površno, ste na poti v propad. Mnoga področja informacijske tehnologije stojijo na zelo kompleksni in obsežni podlagi. Na primer delovanje omrežja. Omrežja in internet so povsod, z njimi se srečujete vsak dan, a ko se enkrat poglobite v tehnologijo, ki stoji za njimi, boste odkrili ogromno in zelo kompleksno disciplino, katere preučevanje ni nikoli sprehod po parku.

Tega elementa nisem uvrstil na seznam, ker je ključen za IT nasploh, ne le za sistemsko administracijo. Seveda se čisto vsega ne boste mogli naučiti takoj - enostavno fizično nimate dovolj časa. Zato se morate pri izobraževanju spomniti potrebnih ravni abstrakcije.

Ni vam treba takoj izvedeti, kako deluje upravljanje notranjega pomnilnika vsakega posameznega pripomočka in kako deluje z upravljanjem pomnilnika Linux, vendar je dobro vedeti, kaj je RAM shematično in zakaj je potreben. Ni vam treba vedeti, kako se glave TCP in UDP strukturno razlikujejo, vendar bi bilo dobro razumeti osnovne razlike v delovanju protokolov. Ni vam treba izvedeti, kaj je slabljenje signala v optiki, vendar bi bilo lepo vedeti, zakaj se prave izgube vedno podedujejo med vozlišči. Nič ni narobe, če veste, kako določeni elementi delujejo na določeni ravni abstrakcije in ne razumete nujno vseh ravni, ko abstrakcije sploh ni (se vam bo preprosto zmešalo).

Vendar na vašem področju razmišljanje na ravni abstrakcije "no, to je stvar, ki vam omogoča prikazovanje spletnih mest" ni zelo dobro. Naslednja predavanja bodo namenjena pregledu glavnih področij, s katerimi se mora sistemski administrator ukvarjati pri delu na nižjih ravneh abstrakcije. Poskušal bom omejiti količino pregledanega znanja na minimalno raven abstrakcije.

10 zapovedi sistemske administracije

Tako smo se naučili štiri glavne stebre in temelje. Lahko začnemo reševati probleme? Ne še. Preden to storite, je priporočljivo, da se seznanite s tako imenovanimi »najboljšimi praksami« in pravili dobrega vedenja. Brez njih boste verjetno naredili več škode kot koristi. Torej, začnimo:

  1. Nekateri moji kolegi verjamejo, da je prvo pravilo »ne škodi«. Vendar se nagibam k temu, da se ne strinjam. Ko poskušate ne škodovati, ne morete storiti ničesar - preveč dejanj je potencialno uničujočih. Mislim, da je najpomembnejše pravilo - "naredi varnostno kopijo". Tudi če naredite nekaj škode, se lahko vedno vrnete nazaj in vse ne bo tako slabo.

    Vedno naredite varnostno kopijo, ko čas in kraj to dopuščata. Varnostno kopirati morate tisto, kar boste spremenili in kaj tvegate, da boste izgubili zaradi potencialno uničujočega dejanja. Priporočljivo je preveriti celovitost varnostne kopije in prisotnost vseh potrebnih podatkov. Varnostne kopije ne smete izbrisati takoj, ko ste vse preverili, razen če morate sprostiti prostor na disku. Če lokacija to zahteva, jo varnostno kopirajte na svoj osebni strežnik in jo po enem tednu izbrišite.

  2. Drugo najpomembnejše pravilo (ki ga sam pogosto kršim) je "ne skrivaj". Če si naredil varnostno kopijo, napiši kje, da je tvojim kolegom ne bo treba iskati. Če ste naredili nekaj neočitnih ali zapletenih dejanj, to zapišite: šli boste domov in težava se lahko ponovi ali se pojavi pri kom drugem, vaša rešitev pa bo najdena s ključnimi besedami. Tudi če delaš nekaj, kar dobro znaš, tvoji sodelavci morda ne.
  3. Tretjega pravila ni treba pojasnjevati: "Nikoli ne naredi nečesa, česar posledice ne poznaš, si ne predstavljaš ali razumeš". Ne kopirajte ukazov iz interneta, če ne veste, kaj počnejo, pokličite človeka in jih najprej razčlenite. Ne uporabljajte že pripravljenih rešitev, če ne morete razumeti njihovega delovanja. Izvajanje zakrite kode zmanjšajte na absolutni minimum. Če nimate časa, da bi ugotovili, potem delate nekaj narobe in bi morali prebrati naslednjo točko.
  4. "test". Nove skripte, orodja, enovrstične ukaze in ukaze je treba testirati v nadzorovanem okolju, ne na odjemalskem računalniku, če obstaja vsaj minimalna možnost za destruktivna dejanja. Tudi če ste varnostno kopirali vse (in ste ga), izpadi niso najbolj kul stvar. Za to ustvarite ločen strežnik/virtualni/chroot in tam preizkusite. Je kaj pokvarjeno? Nato ga lahko zaženete na "boj".

    Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

  5. "Nadzor". Zmanjšajte vse operacije, ki jih ne nadzorujete. Ena krivulja odvisnosti od paketa lahko povleče navzdol polovico sistema, zastavica -y, nastavljena za yum remove, pa vam daje priložnost, da vadite svoje sposobnosti obnovitve sistema od začetka. Če dejanje nima nenadzorovanih alternativ, je naslednja točka že pripravljena varnostna kopija.
  6. "ček". Preverite posledice svojih dejanj in ali se morate vrniti na varnostno kopijo. Preverite, ali je težava res odpravljena. Preverite, ali se napaka ponavlja in pod kakšnimi pogoji. Preverite, kaj lahko s svojimi dejanji zlomite. Nepotrebno je zaupati v naše delo, nikoli pa ne preverjati.
  7. "Komunicirajte". Če težave ne morete rešiti, vprašajte svoje kolege, ali so se s tem že srečali. Če želite uporabiti sporno odločitev, ugotovite mnenje svojih kolegov. Morda bodo ponudili boljšo rešitev. Če niste prepričani v svoja dejanja, se o njih pogovorite s sodelavci. Tudi če je to vaše strokovno področje, lahko nov pogled na situacijo razjasni marsikaj. Ne sramuj se lastne nevednosti. Bolje je postaviti neumno vprašanje, izgledati kot norec in dobiti odgovor, kot pa ne postaviti vprašanja, ne dobiti odgovora in na koncu izpasti norec.
  8. "Ne zavračajte pomoči nerazumno". Ta točka je obratna od prejšnje. Če vam postavijo neumno vprašanje, pojasnite in pojasnite. Zahtevajo nemogoče – pojasnite, da je nemogoče in zakaj, ponudite alternative. Če nimate časa (res nimate časa, ne želje) - recite, da imate nujno vprašanje, veliko dela, vendar boste to uredili pozneje. Če sodelavci nimajo nujnih nalog, jim ponudite stik in prepustite vprašanje.
  9. "Daj povratne informacije". Je kdo od vaših kolegov začel uporabljati novo tehniko ali nov scenarij in ali se srečujete z negativnimi posledicami te odločitve? Prijavi to. Morda je težavo mogoče rešiti v treh vrsticah kode ali petih minutah izpopolnjevanja tehnike. Ste naleteli na napako v programski opremi? Prijavite napako. Če je ponovljiv ali ga ni treba reproducirati, bo najverjetneje popravljen. Izrazite svoje želje, predloge in konstruktivne kritike ter postavite vprašanja za razpravo, če se zdijo pomembna.
  10. "Vprašaj za povratne informacije". Vsi smo nepopolni, tako kot naše odločitve, in najboljši način, da preverite pravilnost svoje odločitve, je, da o njej razpravljate. Če ste za stranko nekaj optimizirali, jo prosite, naj spremlja delo, morda ozko grlo v sistemu ni tam, kjer ste iskali. Napisali ste skript za pomoč – pokažite ga svojim sodelavcem, morda bodo našli način, da ga izboljšajo.

Če boste te prakse nenehno uporabljali pri svojem delu, bo večina težav prenehala biti težava: ne boste le zmanjšali števila lastnih napak in napak na minimum, temveč boste imeli tudi možnost popraviti napake (v obliki varnostnih kopij in sodelavci, ki vam bodo svetovali varnostno kopiranje). Nadalje - samo tehnične podrobnosti, v katerih se, kot vemo, skriva hudič.

Glavni orodji, s katerimi boste morali delati več kot 50 % časa, sta grep in vim. Kaj bi lahko bilo bolj preprosto? Iskanje besedila in urejanje besedila. Vendar sta tako grep kot vim zmogljiva večnamenska orodja, ki omogočata učinkovito iskanje in urejanje besedila. Če vam neka beležnica Windows omogoča preprosto pisanje/brisanje vrstice, potem lahko v vimu naredite skoraj vse z besedilom. Če mi ne verjamete, pokličite ukaz vimtutor s terminala in se začnite učiti. Kar zadeva grep, je njegova glavna moč v regularnih izrazih. Da, samo orodje vam omogoča, da nastavite pogoje iskanja in izhodne podatke precej prilagodljivo, vendar brez RegExp to nima velikega smisla. In poznati morate regularne izraze! Vsaj na osnovni ravni. Za začetek bi vam svetoval, da si ogledate to Video, zajema osnove regularnih izrazov in njihovo uporabo v povezavi z grep. O ja, ko jih združite z vimom, dobite NAJVEČJO MOČ, da naredite stvari z besedilom, ki jih morate označiti z ikonami 18+.

Od preostalih 50 % 40 % izvira iz orodja coreutils. Za coreutilse si lahko ogledate seznam na Wikipedia, priročnik za celoten seznam pa je na spletni strani GNU. Kar ni zajeto v tem sklopu, je v pripomočkih POSIX. Ni se vam treba naučiti vseh tipk na pamet, vendar je koristno, če vsaj približno veste, kaj zmorejo osnovna orodja. Ni vam treba znova izumljati kolesa z berglami. Nekako sem moral zamenjati prelome vrstic s presledki v izpisu nekega pripomočka in moji bolni možgani so rodili konstrukcijo, kot je sed ':a;N;$!ba;s/n/ /g', je prišel kolega in me z metlo odgnal od konzole, potem pa rešil problem s pisanjem tr 'n' ' '.

Za sistemskega skrbnika začetnika: kako iz kaosa ustvariti red

Svetujem vam, da si zapomnite, kaj počne posamezno orodje in ključe do najpogosteje uporabljenih ukazov, za vse ostalo je tu človek. Če ste v dvomih, lahko pokličete človeka. In ne pozabite prebrati samega človeka - vsebuje pomembne informacije o tem, kaj boste našli.

S poznavanjem teh orodij boste lahko učinkovito rešili velik del težav, s katerimi se boste srečali v praksi. V naslednjih predavanjih si bomo ogledali, kdaj uporabiti ta orodja in okvire za osnovne storitve in aplikacije, na katere se nanašajo.

Z vami je bil prvi skrbnik sistema VDS Kirill Tsvetkov.

Vir: www.habr.com

Dodaj komentar