Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

Jag Àr systemadministratör pÄ FirstVDS, och detta Àr texten för den första introduktionsförelÀsningen i min korta kurs för att hjÀlpa nya kollegor. Specialister som nyligen har börjat syssla med systemadministration stöter pÄ en rad gemensamma problem. För att erbjuda lösningar har jag tagit mig an att skriva denna serie förelÀsningar. Vissa saker i den Àr specifika för teknisk support för webbhotell, men generellt kan de vara till nytta, om inte för alla, sÄ för mÄnga. DÀrför har jag anpassat texten för förelÀsningen för att dela den hÀr.

Det spelar ingen roll vad din titel Ă€r — det viktiga Ă€r att du faktiskt sysslar med administration. SĂ„ lĂ„t oss börja med vad en systemadministratör ska göra. Den huvudsakliga uppgiften Ă€r att stĂ€da upp, upprĂ€tthĂ„lla ordning och förbereda för framtida ökning av ordning. Utan en systemadministratör blir det kaos pĂ„ servern. Loggar skrivs inte, eller de innehĂ„ller inte vad de ska, resurserna fördelas pĂ„ ett ineffektivt sĂ€tt, disken fylls med all möjlig skrĂ€p och systemet börjar sakta att lida av all denna oordning. Lugn! Systemadministratörer i ditt ansikte tar sig an att lösa problem och stĂ€da upp kaoset!

SÀulen för systemadministration

Men innan vi börjar lösa problem, Àr det vÀrt att bekanta sig med de fyra grundpilarna för administration:

  1. Dokumentation
  2. Mallhantering
  3. Optimering
  4. Automatisering

Detta Àr grunderna. Om du inte bygger din arbetsprocess pÄ dessa principer kommer den att vara ineffektiv, oproduktiv och i allmÀnhet knappt likna verklig administration. LÄt oss gÄ igenom varje punkt noggrant.

Dokumentation

Dokumentation innebÀr inte bara att lÀsa dokumentation (Àven om det Àr nödvÀndigt), utan ocksÄ att föra anteckningar.

SÄ hÀr för du dokumentation:

  • Har du stött pĂ„ ett nytt problem som du aldrig har sett förut? Skriv ner de grundlĂ€ggande symtomen, metoderna för diagnos och principerna för lösning.
  • Har du kommit pĂ„ en ny elegant lösning pĂ„ ett typiskt problem? Skriv ner den sĂ„ att du inte behöver uppfinna den pĂ„ nytt om en mĂ„nad.
  • Har nĂ„gon hjĂ€lpt dig att lösa en frĂ„ga som du inte förstod nĂ„got av? Skriv ner de grundlĂ€ggande punkterna och koncepten, rita en skiss för dig sjĂ€lv.

Huvudidén: du bör inte helt lita pÄ ditt eget minne nÀr du lÀr dig och tillÀmpar nya saker.

I vilket format du gör detta beror endast pÄ dig: det kan vara ett noteringssystem, en personlig blogg, en textfil eller en fysisk anteckningsbok. Det viktigaste Àr att dina anteckningar uppfyller följande krav:

  1. Inte vara alltför lĂ„nga. Lyfta fram de viktigaste idĂ©erna, metoderna och verktygen. Om förstĂ„elsen av problemet krĂ€ver att man dyker ner i den lĂ„gnivĂ„mekanik som rör minneshanteringen i Linux, ska du inte skriva om artikeln frĂ„n vilken du lĂ€rde dig det — ge bara en lĂ€nk till den.
  2. Anteckningarna mÄste vara förstÄeliga för dig. Om raden race cond.lockup inte gör att du genast förstÄr vad du beskrivit med den raden - förklara. Bra dokumentation krÀver inte att man grÀver i en halvtimme för att förstÄ.
  3. Sökning Àr en mycket bra funktion. Om du skriver i en blogg, lÀgg till taggar; om i en fysisk anteckningsbok - klistra smÄ post-it-lappar med beskrivningar. Det finns inte mycket mening med dokumentation om du spenderar lika mycket tid pÄ att söka efter svar dÀr som du skulle göra pÄ att lösa frÄgan frÄn början.

Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

SÄ hÀr kan dokumentationen se ut: frÄn primitiva anteckningar i en anteckningsbok (bilden ovan), till en fullfjÀdrad flervalskunskapsbas med taggar, sökning och alla tÀnkbara bekvÀmligheter (nederst).

Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

Du kommer inte bara att behöva söka efter samma svar tvÄ gÄnger: dokumentation kommer att vara en fantastisk hjÀlp nÀr du lÀr dig nya Àmnen (anteckningar, eller hur!), förbÀttra din intuition (förmÄgan att diagnostisera ett komplext problem vid en hastig blick), och tillföra struktur i dina handlingar. Om dokumentationen Àr tillgÀnglig för dina kolleger, kommer den Àven att hjÀlpa dem att förstÄ vad och hur du har gjort nÀr du inte Àr pÄ plats.

Mallförfarande

Mallförfarande Àr skapandet och anvÀndningen av mallar. För att lösa de flesta standardfrÄgor Àr det vÀrt att skapa en specifik handlingsmall. För att diagnostisera de flesta problem bör en standardiserad handlingssekvens anvÀndas. NÀr du har ÄtgÀrdat/installera/optimerat nÄgot, Àr det viktigt att kontrollera funktionaliteten genom standardiserade checklistor.

Mallisering Àr det bÀsta sÀttet att organisera arbetsprocessen. Genom att anvÀnda standardiserade procedurer för att lösa de mest vanligt förekommande problemen fÄr du massor av fördelar. Till exempel, att anvÀnda checklistor gör att du kan diagnostisera alla viktiga funktioner för arbetet och utesluta mindre viktiga funktioner. Standardiserade procedurer minimerar onödiga osÀkerheter och minskar risken för fel.

Det första viktiga att tÀnka pÄ Àr att procedurer och checklistor ocksÄ behöver dokumenteras. Om man bara litar pÄ minnet kan man missa en verkligen viktig kontroll eller operation, vilket kan leda till problem. Den andra viktiga punkten Àr att alla mallar och rutiner kan och bör modifieras om situationen krÀver det. Det finns inga perfekta och helt universella mallar. Om det finns ett problem och den mallade kontrollen inte identifierade det betyder det inte att problemet inte finns. Men innan du börjar kontrollera osannolika hypotetiska problem bör du alltid först genomföra en snabb mall- kontroll.

Optimering

Optimering talar för sig sjÀlv. Arbetsprocessen mÄste optimeras sÄ mycket som möjligt nÀr det gÀller tids- och arbetsinsats. Det finns otaliga alternativ: lÀr dig tangentbordsgenvÀgar, förkortningar, reguljÀra uttryck och tillgÀngliga verktyg. Sök efter mer praktiska anvÀndningar av dessa verktyg. Om du anvÀnder ett kommando 100 gÄnger om dagen, hÀng upp det pÄ en tangentbordsgenvÀg. Om du regelbundet behöver ansluta till samma servrar, skriv ett alias i ett ord som kopplar dig dit:

Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

Utforska olika alternativ av tillgĂ€ngliga verktyg — kanske finns det en mer praktisk terminalklient, DE, urklippshanterare, webblĂ€sare, e-postklient eller operativsystem. Ta reda pĂ„ vilka verktyg dina kollegor och bekanta anvĂ€nder — kanske vĂ€ljer de dem av en anledning. Efter att ha valt verktyg, lĂ€r dig att anvĂ€nda dem: memorera knappar, förkortningar, tips och tricks.

Optimalt anvĂ€nda standardverktyg — coreutils, vim, reguljĂ€ra uttryck, bash. För de tre senaste finns det mĂ€ngder av fantastiska manualer och dokumentation. Med deras hjĂ€lp kan man ganska snabbt gĂ„ frĂ„n att "kĂ€nna sig som en apa som slĂ„r nötter med en laptop" till "jag Ă€r en apa som anvĂ€nder en laptop för att bestĂ€lla en nötknĂ€ckare".

Automatisering

Automatisering överför tunga operationer frÄn vÄra trötta hÀnder till de oupphörliga hÀnderna av automation. Om nÄgon standardprocedur utförs med fem identiska kommandon, varför inte slÄ ihop alla dessa kommandon i en fil och kalla pÄ ett enda kommando som laddar ner och utför filen?

Egentligen bestĂ„r automation till 80% av att skriva och optimera sina egna verktyg (och 20% av att fĂ„ dem att fungera som de ska). Det kan vara en avancerad enradare eller ett enormt allsmĂ€ktigt verktyg med webgrĂ€nssnitt och API. Huvudkriteriet hĂ€r Ă€r att skapandet av verktyget inte fĂ„r ta mer tid och anstrĂ€ngning Ă€n den tid och anstrĂ€ngning som verktyget sparar. Om du spenderar fem timmar pĂ„ att skriva ett skript som du aldrig kommer att anvĂ€nda igen för en uppgift som skulle ta en eller tvĂ„ timmar utan skript — det Ă€r en mycket dĂ„lig optimering av arbetsflödet. Man kan spendera fem timmar pĂ„ att skapa ett verktyg, bara om mĂ€ngden, typen av uppgifter och tiden tillĂ„ter det, vilket sĂ€llan Ă€r fallet.

Automation innebÀr inte nödvÀndigtvis att skriva fullstÀndiga skript. Till exempel, för att skapa en mÀngd liknande objekt frÄn en lista behöver man bara en smart enradare som automatiskt gör det du skulle göra för hand, skiftande mellan fönster med massor av copy-paste.

Egentligen, om man bygger administrationsprocessen pĂ„ dessa fyra pelare, kan man ganska snabbt öka sin effektivitet, produktivitet och kompetens. Men denna lista behöver kompletteras med ytterligare en punkt, utan vilken arbete inom IT nĂ€stan Ă€r omöjligt — sjĂ€lvutbildning.

SjÀlvutbildning för systemadministratörer

För att vara nĂ„got kompetent inom detta omrĂ„de mĂ„ste man stĂ€ndigt lĂ€ra sig och upptĂ€cka nytt. Om du inte har minsta lust att konfrontera det okĂ€nda och förstĂ„ det, kommer du snabbt att «falla». Inom IT dyker det stĂ€ndigt upp nya lösningar, teknologier och metoder, och om du inte studerar dem Ă„tminstone ytligt — Ă€r du pĂ„ vĂ€g att förlora. MĂ„nga omrĂ„den inom informationsteknologi vilar pĂ„ en ganska komplex och omfattande grund. Till exempel nĂ€tverksarbete. NĂ€tverk och internet finns överallt, du stöter pĂ„ dem dagligen, men nĂ€r du börjar grĂ€va i teknologierna bakom dem, upptĂ€cker du en enorm och mycket komplex disciplin vars studium — absolut inte Ă€r en promenad i parken.

Jag tog inte med detta punkt i listan eftersom den Ă€r avgörande för IT i allmĂ€nhet, och inte bara för systemadministration. Naturligtvis kan du inte lĂ€ra dig allt pĂ„ en gĂ„ng — du har helt enkelt inte tillrĂ€ckligt med tid. DĂ€rför bör du vid sjĂ€lvutbildning komma ihĂ„g de nödvĂ€ndiga abstraktionsnivĂ„erna.

Du behöver inte direkt lÀra dig hur den interna minneshanteringen fungerar för varje enskild applikation, och hur den interagerar med minneshanteringen i Linux, men det Àr bra att veta vad RAM schema ser ut och varför det behövs. Du behöver inte veta hur TCP- och UDP-huvuden strukturellt skiljer sig Ät, men det vore bra att förstÄ grundlÀggande skillnader i protokollens funktion. Du behöver inte studera vad signaldÀmpningar i optik innebÀr, men det vore bra att veta varför verkliga förluster alltid Àr kopplade till noder. Det Àr inget fel med att veta hur vissa element fungerar pÄ en viss abstraktionsnivÄ, och det Àr inte nödvÀndigt att förstÄ alla nivÄer nÀr det inte finns nÄgon abstraktion alls (du kommer bara att bli galen).

Men inom sitt omrÄde Àr det inte sÄ bra att resonera pÄ en abstraktionsnivÄ som "ja, det Àr en grej som lÄter oss visa webbplatser". De kommande förelÀsningarna kommer att handla om en översikt över de grundlÀggande omrÄden som systemadministratörer mÄste konfrontera i arbetet pÄ lÀgre abstraktionsnivÄer. Jag kommer att försöka begrÀnsa mÀngden kunskap som tÀcks till den minimi abstraaktionsnivÄ.

10 budord för systemadministration

SÄ, vi har lÀrt oss fyra grundpelare och en grund. Kan vi börja lösa problemen? Inte Ànnu. Innan dess Àr det bra att bekanta sig med sÄ kallade "best practices" och regler för god ton. Utan dem finns det risk att du orsakar mer skada Àn nytta. SÄ, lÄt oss börja:

  1. NĂ„gra av mina kollegor anser att den allra första regeln Ă€r "gör ingen skada". Men jag lutar Ă„t att inte hĂ„lla med. NĂ€r man försöker att inte skada kan man inte heller Ă„stadkomma nĂ„got — för mĂ„nga handlingar Ă€r potentiellt destruktiva. Den viktigaste regeln anser jag Ă€r — "gör en backup". Även om du orsakar skada, kan du alltid Ă„tergĂ„, och allt blir inte sĂ„ dĂ„ligt.

    Man bör alltid göra en backup nĂ€r tid och plats tillĂ„ter det. Backup bör göras pĂ„ det som du kommer att Ă€ndra och det som du riskerar att förlora vid potentiellt destruktiva handlingar. Backup bör verifieras pĂ„ integritet och nĂ€rvaro av alla nödvĂ€ndiga data. Backup bör inte raderas direkt efter att du har kontrollerat allt, om det inte Ă€r nödvĂ€ndigt att frigöra diskutrymme. Om det krĂ€vs plats — gör en backup pĂ„ din personliga server och ta bort den efter en vecka.

  2. Den nĂ€st viktigaste regeln (som jag sjĂ€lv ofta bryter) Ă€r — "dölj inte". Om du har gjort en backup, skriv ner — vart, sĂ„ att dina kollegor inte behöver leta efter den. Om du har utfört nĂ„gra otydliga eller komplicerade Ă„tgĂ€rder, skriv ner dem: du gĂ„r hem, och problemet kan komma tillbaka eller uppstĂ„ för nĂ„gon annan, och din lösning kommer att hittas med nyckelord. Även om du gör nĂ„got som du kĂ€nner till vĂ€l, kan dina kollegor sakna den kunskapen.
  3. Den tredje regeln behöver ingen förklaring: "gör aldrig det vars konsekvenser du inte kĂ€nner till, inte förestĂ€ller dig eller inte förstĂ„r". Kopiera inte kommandon frĂ„n internet om du inte vet vad de gör, kalla pĂ„ man och analysera dem först. AnvĂ€nd inte fĂ€rdiga lösningar om du inte kan förstĂ„ vad de gör. Minimera anvĂ€ndningen av obfuskerad kod. Om du inte har tid att förstĂ„ — dĂ„ gör du nĂ„got fel och du bör bekanta dig med nĂ€sta punkt.
  4. "testa". Nya skript, verktyg, enradare och kommandon bör testas i en kontrollerad miljö, inte pĂ„ klientmaskinen, om det finns nĂ„gon som helst potentiell risk för destruktiva Ă„tgĂ€rder. Även om du har tagit backup (och det har du), Ă€r nedtid inte en rolig sak. Skaffa en separat server/virtuell maskin/chroot för detta Ă€ndamĂ„l och testa dĂ€r. Inget Ă€r trasigt? DĂ„ kan du köra i produktion.

    Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

  5. «Kontrollera». Minimera alla operationer som du inte har kontroll över. En felaktig beroende hos ett paket kan dra med sig halva systemet, och flaggan -y för yum remove ger dig möjlighet att trĂ€na pĂ„ att Ă„terstĂ€lla systemet frĂ„n grunden. Om Ă„tgĂ€rden inte har nĂ„gra okontrollerbara alternativ — gĂ„r vi vidare till nĂ€sta punkt med en fĂ€rdig backup.
  6. «Kontrollera». Kontrollera konsekvenserna av dina Ă„tgĂ€rder och om du behöver Ă„tergĂ„ till backupen. Kontrollera om problemet verkligen har lösts. Kontrollera om felet gĂ„r att reproducera och under vilka förhĂ„llanden. Kontrollera vad du kan bryta med dina Ă„tgĂ€rder. Att lita pĂ„ i vĂ„rt arbete — Ă€r överflödigt, men att kontrollera — Ă€r aldrig fel.
  7. «Kommunicera». Om du inte kan lösa problemet, frĂ„ga kollegor om de har stött pĂ„ nĂ„got liknande. Vill du tillĂ€mpa en tveksam lösning — ta reda pĂ„ vad kollegorna tycker. Kanske föreslĂ„r de en bĂ€ttre lösning. Har du ingen sĂ€kerhet i dina Ă„tgĂ€rder — diskutera dem med kollegor. Även om det Ă€r ditt expertomrĂ„de, kan en frĂ€sch synvinkel klargöra mycket. Tveka inte att erkĂ€nna vad du inte vet. BĂ€ttre att stĂ€lla en dum frĂ„ga, verka dum och fĂ„ ett svar, Ă€n att inte stĂ€lla frĂ„gan, inte fĂ„ nĂ„got svar och förbli dum.
  8. «Avböj inte att hjĂ€lpa utan anledning». Denna punkt Ă€r motsatsen till föregĂ„ende. Om du fĂ„r en dum frĂ„ga — klargör och förklara. Om nĂ„gon ber om nĂ„got omöjligt — förklara varför det Ă€r omöjligt och erbjud alternativ. Om du verkligen inte har tid (verkligen ingen tid, inte bara ovilja) — sĂ€g att du har en brĂ„dskande frĂ„ga och en stor arbetsbelastning, men att du kommer att ta itu med det senare. Om kollegorna inte har nĂ„gra brĂ„dskande uppgifter, föreslĂ„ att de kan kontakta dem och delegera frĂ„gan.
  9. «Ge feedback». Har en kollega börjat anvÀnda en ny metod eller ett nytt skript, och nu upplever du negativa konsekvenser av detta beslut? Rapportera detta. Kanske kan problemet lösas med tre rader kod eller fem minuters justeringar av metoden. Har du stött pÄ en bugg i mjukvaran? Rapportera buggen. Om den gÄr att reproducera eller inte behöver reproduceras, kommer den sannolikt att fixas. Framför önskemÄl, förslag och konstruktiv kritik, ta upp frÄgor till diskussion om de verkar relevanta.
  10. «Be om feedback». Vi Ă€r alla ofullkomliga, precis som vĂ„ra beslut, och det bĂ€sta sĂ€ttet att verifiera riktigheten av ens beslut Ă€r att ta upp det till diskussion. Har du optimerat nĂ„got för en kund—be dem att övervaka arbetet, kanske finns det ett ‘flaskhals’ i systemet dĂ€r du inte letade. Har du skrivit ett hjĂ€lpskript—visa det för kollegorna, kanske de hittar sĂ€tt att förbĂ€ttra det.

Om du stÀndigt tillÀmpar dessa metoder i arbetet, slutar majoriteten av problemen att vara problem: du minskar inte bara antalet egna misstag och stora missöden, utan fÄr ocksÄ möjlighet att korrigera fel (genom backups och kollegor som rÄder dig att göra en backup). NÀsta steg Àr endast tekniska detaljer, dÀr som bekant djÀvulen ligger.

De viktigaste verktygen som du kommer att arbeta med mer Ă€n 50% av tiden Ă€r grep och vim. Vad kan vara enklare? Sökning i text och redigering av text. Men bĂ„de grep och vim Ă€r kraftfulla multifunktionella verktyg som gör det möjligt att söka och redigera text effektivt. Om en Windows notepad bara lĂ„ter dig skriva/ta bort en rad, sĂ„ kan du i vim göra nĂ€stan vad som helst med texten. Tveka inte—anvĂ€nd kommandot vimtutor frĂ„n terminalen och börja lĂ€ra dig. NĂ€r det kommer till grep Ă€r dess styrka i reguljĂ€ra uttryck. Ja, verktyget gör det möjligt att stĂ€lla in sök- och utdata villkor ganska flexibelt, men utan RegExp har det inte sĂ„ mycket mening. Och du behöver Ă„tminstone kunna grundlĂ€ggande kunskaper om reguljĂ€ra uttryck. För att börja skulle jag rekommendera att du tittar pĂ„ det hĂ€r. video, i de förklaras grunderna i reguljĂ€ra uttryck och deras tillĂ€mpning tillsammans med grep. Åh ja, nĂ€r du kombinerar dem med vim, fĂ„r du ULTIMATE POWER att göra med texten sĂ„dana saker att de mĂ„ste mĂ€rkas med 18+ etiketter.

Av de kvarvarande 50 % utgör 40 % verktygspaketet coreutils. För coreutils kan du se listan i Wikipedia, och manualen för hela listan finns pĂ„ webbplatsen (Gnu’s Not Unix), som syftar till att utveckla systemkomponenter för att skapa ett fritt alternativ till Unix, vilket gör det möjligt att helt undvika proprietĂ€r programvara. Under GNU:s skydd har det skapats en gemenskap av fria projekt, som rör sig mot ett gemensamt mĂ„l och utvecklas i enlighet med en enad ideologi och filosofi. Initialt var de centrala delarna av projektet. Vad som inte tĂ€cks av detta kit finns i verktygen POSIX. Det Ă€r inte nödvĂ€ndigt att memorera detta med alla nycklar, men det Ă€r bra att Ă„tminstone ungefĂ€r veta vad de viktigaste verktygen kan — det Ă€r anvĂ€ndbart. Du behöver inte uppfinna hjulet Ă„ter med krumelurer. Jag behövde en gĂ„ng ersĂ€tta radbrytningar med blanksteg i utdata frĂ„n nĂ„got verktyg, och min trötta hjĂ€rna kom pĂ„ en konstruktion som sed ':a;N;$!ba;s/n/ /g', en kollega som kom förbi drev mig bort frĂ„n konsolen med en kvast, och sedan löste han problemet genom att skriva tr 'n' ' '.

Till nybörjarsystemadministratören: hur man skapar ordning ur kaos

Jag skulle rekommendera att minnas vad varje enskilt verktyg gör och nycklarna för de mest anvĂ€nda kommandona, för allt annat finns det man. Tveka inte att kalla pĂ„ man om du Ă€r osĂ€ker pĂ„ nĂ„got. Och se till att lĂ€sa man pĂ„ sjĂ€lva man — det innehĂ„ller viktig information om vad du kommer att hitta.

Genom att kÀnna till dessa verktyg kan du effektivt lösa en stor del av de uppgifter du kommer att möta i praktiken. I kommande förelÀsningar kommer vi att gÄ igenom nÀr man ska anvÀnda dessa verktyg och strukturerna för de grundlÀggande tjÀnster och applikationer de gÀller.

Med dig var systemadministratören FirstVDS Kirill Tsvetkov.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster