Eining 2 / 11

Sjálfvirkniforskriftir: Búa til Bash, PowerShell og Python á öruggan hátt

Hagnaður:

  • Geta til að framleiða Bash, PowerShell og Python sjálfvirkni forskriftir með skýrum takmörkunum og öryggisgrind með gervigreind
  • Hæfni til að bæta við meginreglum eins og óstyrkleika, þurrkunarferli, villumeðferð og afturköllun við hvert handrit og beita „mynda, herða, sannreyna“ hringrásina
  • Hæfni til að skilja að framkvæmd handritsins sem framleitt er þýðir ekki að það sé öruggt og að öðlast þann vana að axla ábyrgð með því að lesa og prófa eyðileggjandi línur.

Sjálfvirkniforskriftir: Búa til Bash, PowerShell og Python á öruggan hátt með gervigreind

Versti óvinur kerfisstjórans er endurtekin handavinna: að tengjast hverri vél og þrífa annála, opna sama notanda á tuttugu netþjónum, keyra sömu heilsufarsskoðun á hverjum morgni. Þessi endurtekning er opin fyrir bæði tíma og mannleg mistök. Sjálfvirknihandrit er lítið forrit sem framselur þessar endurtekningar til tölvunnar - oftast skrifaðar í Bash (skelskipunartungumáli) í Linux heiminum, PowerShell (sjálfvirkniskel Microsoft) í Windows heiminum og Python fyrir vettvangsóháða vinnu. Gervigreind er ótrúlega fljót að framleiða, útskýra og bæta fyrstu uppkast þessara handrita. En handritið er ekki texti, það er kraftur sem vinnur í kerfinu þínu; Ólíkt Excel formúlu, ef hún er röng eyðir hún skránni, stöðvar þjónustuna og dregur úr aðgangi. Þess vegna er loforðið um þessa einingu: AI skrifar handritið, þú lest það, prófar það og keyrir það með ábyrgð.

Í þessari einingu muntu læra hvernig á að framleiða örugg, læsileg og endurheimtanleg forskriftir með gervigreind; Lífsbjargandi meginreglur eins og getuleysi (að keyra sama handritið tvisvar veldur ekki skaða) og þurrkunar; og þú munt læra eftirlitið sem handrit verður að fara í gegnum áður en það er sett í framleiðslu.

Af hverju er forskrift með gervigreind svo öflug?

Jafnvel reyndur stjórnandi veit kannski ekki nákvæma setningafræði Bash lykkju, færibreytur PowerShell cmdlet (skipunar) eða Python try/nema blokk utanað. Gervigreind fyllir þetta skarð samstundis: þú útskýrir ásetninginn á látlausri tyrknesku og það framleiðir vinnuyfirlit. Þar að auki geturðu gefið gervigreindinni handrit sem fyrir er og sagt „útskýrðu þetta“, „bættu við villumeðferð“, „gerðu það læsilegra“. Þetta styttir námsferilinn og færir yngri liðsmenn hraða.

En með valdi fylgir ábyrgð. Oftast skrifar gervigreind-myndað handrit "hamingjulega leiðina" rétt (ef allt er í lagi); en það getur misst kantmál (skrá vantar, diskur fullur, net niðri) eða gert hættulegar forsendur. Svo hugsaðu um handritsgerð með gervigreind í þremur stigum: búa til, herða, sannreyna.

Skref fyrir skref: örugg forskriftagerð

  1. Skrifaðu ásetning og þvingun skýrt. Hvaða stýrikerfi, hvaða skel útgáfa, hvaða skráarslóðir, hvaða réttindi? Eins og "Ubuntu 22.04, Bash 5, sudo ekki rót, keyra aðeins undir /opt/app/logs". Óljós eftirspurn skapar hættulegar forsendur.
  2. Biðjið um öryggishandrið. Krefjast þess að handritið „stöðvi við bilun“ (stilltu -euo pipefail í Bash), biðja um staðfestingu á eyðileggjandi aðgerðum, öryggisafrit fyrir aðgerð og þurrkunarham. Þessar varnargrind fanga brún ríki sem gervigreindin fer framhjá.
  3. Skrifaðu geðveikt. Handritið ætti ekki að valda villum eða skemmdum þegar það er keyrt í annað sinn. Komdu á rökfræði um "sleppa ef notandinn er þegar til", "búa til möppuna ef hún er ekki til, ekki snerta hana ef hún er til". Þetta gerir sjálfvirkninni kleift að keyra örugglega aftur og aftur.
  4. Lestu og skildu. Lestu hverja línu sem framleidd er. Biddu gervigreindina um að merkja eyðileggjandi skipanir (rm, Remove-Item, DROP) sérstaklega.
  5. Prófaðu með þurrhlaupi. Fyrst skaltu keyra það í "segja hvað á að gera" ham í stað raunverulegra aðgerða. Ef framleiðslan er það sem þú býst við skaltu skipta yfir í raunverulegan ham - og á prófunarvélinni fyrst.
  6. Undirbúðu endurkomu þína. Tekur handritið afrit? Veistu hvernig á að endurheimta öryggisafritið? Er það skráning, geturðu séð hvað það er að gera seinna?
Ábending: Láttu hvert eyðingarforskrift innihalda DRY_RUN=true breytu og --apply fána. Sjálfgefin hegðun er að skrifa hvað mun gerast án þess að eyða neinu; Látið raunverulega eyðingu aðeins virka ef --apply er gefið skýrt. Þessi eina venja kemur í veg fyrir hamfarir sem hafa verið langvarandi.

þrjú smámál

Tilfelli 1 - Geðleysi vistað 3 klst. Stjórnandi skrifaði handrit sem setti upp sama eftirlitsaðila á 25 netþjónum. Fyrsta útgáfan var ekki auðmjúk: hún braut uppsetninguna í annarri keyrslu ef umboðsmaðurinn var þegar uppsettur. Verkfræðingur lét gervigreindina bæta við „athugaðu hvort það sé uppsett, slepptu því ef það er“ rökfræði. Í næsta viðhaldsglugga ræsti handritið óvart tvisvar en það skaði ekki. Idempotency gerði endurheimt 25 netþjóna óþarfa.

Tilfelli 2 - Þurrrun vistaði rótarskrá. Eitt lið fékk Bash handrit sem hreinsaði gömul öryggisafrit. Ef breytan var tóm varð slóðin / í stað /afrita/ — klassísk hætta. Verkfræðingurinn keyrði það fyrst í DRY_RUN ham, fraus þegar hann sá línu svipaða rm -rf / í úttakinu og bætti við breytuávísun (: "${BACKUP_DIR:?getur ekki verið tóm}"). Þurrhlaup greip villu sem myndi þurrka allan diskinn áður en hann fór í framleiðslu.

Tilfelli 3 - Villustjórnun kom í veg fyrir að það vaknaði eina nótt. PowerShell forskrift var að safna annálum þegar diskurinn var fullur. Fyrsta útgáfan myndi mistakast hljóðlaust ef nethlutdeildin væri óaðgengileg og halda áfram að fylla upp diskinn. „Staðfestu árangur í hverju skrefi, ef það tekst ekki, tilkynntu tölvupóst og hættu“ var bætt við gervigreind. Eftir viku var pósturinn brotinn; Handritið stoppaði og varaði við, diskurinn var ekki fullur, enginn vaknaði kl.

Fjögur afritanleg sniðmát

1) Örugg Bash handritsgerð:

Hlutverk þitt: eldri Linux sjálfvirkniverkfræðingur. Skrifaðu handrit fyrir Ubuntu 22.04 / Bash 5. Tilgangur: [tilgangur]. Reglur:- Byrjaðu á "setja -euo pipefail".- Staðfestu nauðsynlegar breytur með ": ${VAR:?}".- Framkvæmdu eyðileggjandi aðgerðir með sjálfgefnu DRY_RUN=true; Leyfðu raunverulegu forritinu að keyra aðeins með --apply fánanum. - Skráðu hvert skref í stdout, hættu með þýðingarmikil skilaboð um villu. - Gerðu það veikburða (svo að það valdi ekki skemmdum í annarri keyrslu). Síðan: Merktu mögulega eyðileggjandi línur sérstaklega og skrifaðu 3 tilvik sem ég þarf að prófa fyrir framleiðslu.

2) Herða núverandi handrit:

Gerðu eftirfarandi handrit tilbúið fyrir framleiðslu: (1) bættu við villumeðferð og skráningu, (2) gerðu það sjálfvirkt, (3) settu eyðileggjandi skipanir á bak við þurrkeyrslu, (4) dragðu út harðkóðaðar slóðir og leyndarmál að breytunni. Lýstu í stuttu máli hverri línu sem þú breyttir og hvers vegna. Handrit: [handrit]

3) PowerShell örugg sjálfvirkni:

Þitt hlutverk: Windows sjálfvirkni sérfræðingur. Skrifaðu PowerShell 5.1 samhæft handrit. Tilgangur: [tilgangur]. Reglur:- Byrjaðu á "$ErrorActionPreference = 'Stöðva'".- Bættu -WhatIf stuðningi við destructor cmdlets (sjálfgefið WhatIf).- Pakkið hverri aðgerð með try/catch, log error.- Credential hardcoding; Notaðu færibreytu eða öruggt inntak. Merktu eyðileggjandi línur og skrifaðu afturkalla skref.

4) Cron/áætlun tjáningarafkóðun og sannprófun:

Útskýrðu eftirfarandi cron setningu á tyrknesku og skrifaðu næstu 3 keyrslutíma: [tjáning]Einnig, ef markmið mitt er "[tilgangur]", er þessi fullyrðing rétt eða er einhver leiðrétting sem þú mælir með? Taktu einnig eftir tímabilsáhrifunum.

Veik kvaðning / Sterk kvaðning

Veik kvaðning:

Skrifaðu mér handrit sem hreinsar skrána.

Þessi kvaðning er hættuleg: það er ekki ljóst hvaða stýrikerfi, hvaða skrá, hvaða aldurstakmark, hvaða öryggisgrind. AI getur skilað einlínu, eyðileggjandi og ósannanlega rm.

Öflug tilvitnun:

Hlutverk þitt: eldri Linux sjálfvirkniverkfræðingur. Skrifaðu skrárhreinsunarforskrift fyrir Ubuntu 22.04 / Bash. Eyddu aðeins .log skrám undir /opt/app/logs sem eru eldri en 30 dagar. Reglur: setja -euo pipefail; Staðfestu BACKUP_DIR og LOG_DIR breytur (stöðva ef þær eru tómar); skráarskrárlisti áður en þú eyðir; Láttu DRY_RUN=true vera sjálfgefið, raunveruleg eyðing aðeins með --apply; Látum það vera geðveikt. Merktu eyðileggjandi línurnar og skrifaðu 3 aðstæður sem ég ætti að prófa.

eiginleiki

Veikt/fljótt handrit

hert handrit

Villumeðferð

Nei, þögul bilun

setja -euo pipefail, reyna/grípa

eyðileggjandi aðgerð

Virkar beint

Þurrhlaup + opinn ávísunarfáni

Endurræstu

getur valdið skaða

Idempowerent, öruggt

leynileg stjórnun

harðkóðun

Breytilegt/falið inntak

afturkalla

Engin

Öryggisafritun + endurheimta skref

Algeng mistök

  • Keyra eyðileggjandi handrit án þurrkunar. Að sjá ekki handritið sem inniheldur rm, Remove-Item, DROP fyrst í þurrham kostar disk.
  • Slepptu athugun á núllbreytu. Tóm slóðbreyta gerir / í stað /afrita/; : Vertu viss um að staðfesta með "${VAR:?}".
  • Að gleyma Idempotency. Handritið brotnar þegar það er keyrt tvisvar, sem gerir sjálfvirknina óáreiðanlega.
  • Harðkóðun leyndarmál. Að skrifa lykilorðið og lykilinn í handritið er leki þegar þú deilir því handriti.
  • Prófanir í framleiðslu. Að gera fyrstu keyrslu í framleiðslu þýðir að æfa á sviðinu; prófaðu vélina fyrst.
Athugið: Ekki samþykkja handrit gefið af gervigreindinni bara vegna þess að „það virkaði, það þýðir að það er rétt“. Þó það virki þýðir það ekki að það sé ekki eyðileggjandi. Forskrift getur keyrt á hamingjuslóðinni og eytt gögnum í brún ástandi; Raunverulega prófið er jaðartilvikin.

Í stuttu máli

Sjálfvirkni forskriftir koma í veg fyrir endurtekningar og draga úr mannlegum mistökum; Gervigreind er ótrúlega fljót að búa til, útskýra og herða þessi handrit. En handritið er vinnuafl: ef það er rangt eyðir það, stoppar, truflar. Komdu svo á „framleiða, herða, sannreyna“ hringrásina. Láttu villumeðhöndlun, getuleysi, þurrkeyrslu og bakslag fylgja með í hverju eyðileggjandi handriti. Dragðu út leyndarmálin að breytunni, gerðu fyrstu keyrsluna á prófunarvélinni. AI handrit skrifar; Það er þitt hlutverk að lesa það, prófa það og taka ábyrgð á því að keyra það.

Umsóknarverkefni

Veldu verkefni sem þú endurtekur handvirkt í starfi þínu (t.d. hreinsun annála, opnun notanda, heilsufarsskoðun). Biðjið um yfirlit frá gervigreind með „Secure Bash script“ eða „PowerShell örugg sjálfvirkni“ sniðmátinu hér að ofan. Lestu útbúna handritið línu fyrir línu og merktu eyðileggjandi línurnar. Keyrðu það í þurrhlaupsham fyrst á prófunarvél, berðu saman framleiðsluna við væntingar þínar. Gefðu síðan handritið aftur til gervigreindar og fínstilltu það með „herða“ sniðmátinu og athugaðu 5 muninn á útgáfunum tveimur.

gátlisti

  • [ ] Hef ég sett takmarkanir eins og stýrikerfi, skel útgáfa, slóðir og réttindi með í leiðbeiningunum?
  • [ ] Er forskriftin villuþolin með settinu -euo pipefail / $ErrorActionPreference='Stöðva'?
  • [ ] Eru eyðileggjandi aðgerðir að baki þurrhlaups/-Hvað ef og krefjast skýrs ávísunarfána?
  • [ ] Er handritið óþolandi (öruggt í annarri keyrslu)?
  • [ ] Hef ég dregið leyndarmálin út í breytilegt/leynilegt inntak í stað þess að harðkóða þau?
  • [ ] Hef ég gert fyrstu keyrsluna á prófunarvélinni og útbúið skilaáætlun?