Riba:
- Ƙarfin fahimtar ƙarfin Bash, Python da PowerShell kuma yana da hankali na wucin gadi yana samar da amintaccen rubutun rubutun.
- Ƙarfin ƙara hanyoyin tsaro zuwa rubutun kamar saiti-euo pipefail, duban canji mara komai, yanayin bushewa da shiga.
- Ikon karanta umarni masu lalata da gwada su a cikin keɓantaccen yanayi kuma tare da bushewa da farko, da kuma amfani da horo na rashin saka sirrin a cikin rubutun.
An taƙaita ruhun DevOps a cikin jumla ɗaya: "Ka sarrafa aikin da kake yi sau biyu." Duk wani aiki mai maimaitawa wanda aka yi da hannu - tsaftace log, karɓar madadin, duba lafiyar uwar garken, sarrafa fayil ɗin tsari - yana ɗaukar lokaci kuma a ƙarshe kuskuren ɗan adam ya lalace. Rubutun suna ɗaukar waɗannan ayyuka: ƙananan shirye-shirye waɗanda ke aiwatar da jerin umarni a cikin jeri, abin dogaro kuma mai maimaitawa. Kwararren DevOps akai-akai yana amfani da harsuna uku: Bash (na Linux/rubutun harsashi na Unix), Python (don dabaru masu rikitarwa, kiran API, sarrafa bayanai), da PowerShell (na Windows da sarrafa girgije).
AI yana iya zama inda yake ba da mafi kyawun ƙima a cikin tsara rubutun: samar da daftarin aiki daga bayanin jumla ɗaya, warware bugu mai ban mamaki, fassara rubutun zuwa wani harshe. Amma rubutun yana da haɗari idan an kunna shi a makance - kuskuren rm, Cire-Abu -Recurse zai share fayiloli ba tare da juyowa ba. Shi ya sa taken wannan rukunin shi ne: Bari AI ta rubuta rubutun, ku karanta, gwada shi cikin yanayin aminci tukuna, sannan ku gudanar da shi.
Wane harshe za a zaɓa kuma yaushe? Mummunar ƙa'idar babban yatsan hannu: idan aikin ya ƙunshi gudanar da umarni da yawa a jere (kwafi fayil, sabis na sake farawa, dawo da tarihin) Bash shine mafi kyawun zaɓi na halitta saboda Linux yana ko'ina akan sabobin. Idan aikin ya ƙunshi tunani na yanke shawara, looping, canjin bayanai, neman API, ko sarrafa JSON-wato, dabarar da ta wuce layin 20-Python ya fice don karantawa da ɗakunan karatu masu wadata; Rubutun Bash mai rikitarwa da sauri ya zama mara fahimta, yayin da Python ya kasance mai sauƙin kulawa. Idan aikin ya ƙunshi sarrafa sabar Windows, Active Directory, ko Azure, PowerShell shine yanayin yanayi saboda yanayin da ya dace da abun yana haɗawa sosai tare da waɗannan dandamali. Ƙayyadaddun yaren da kuka zaɓa da kuma dalilin da yasa lokacin neman rubutun ga AI yana tabbatar da cewa fitarwa ta dace kuma mai mahimmanci ga yanayin ku.
Mataki-mataki: amintaccen tsara rubutun
- Bayyana aiki da muhalli. Menene zai yi, wane OS / harsashi, menene ƙuntatawa?
- Nemi layin tsaro. A cikin bash, saita -euo pipefail (tsaya akan kuskure, tsayawa akan canjin da ba a bayyana ba), faɗakarwar tabbatarwa don ayyuka masu haɗari, fara farawa maimakon sharewa.
- Nemi yanayin bushewa. Bari rubutun ya rubuta abin da za a yi da --bushe-gudu, amma kar a yi shi.
- Karanta kuma ku fahimta. Tabbatar da abin da kowane jere yake yi, musamman share/motsawa/ayyukan hanyar sadarwa.
- Gwada shi a cikin keɓe muhalli. A cikin babban fayil ɗin gwaji, gudanar da shi tare da bayanan samfurin.
- Ƙara zuwa shiga. Bari rubutun ya rubuta abin da yake yi don a iya duba shi daga baya.
Muhimman abubuwan amintaccen rubutun rubutu
Rubutun samarwa yakamata ya ƙunshi waɗannan hanyoyin tsaro:
- Tsayawa idan akwai kuskure. Bash: saita -euo pipefail. PowerShell: $ErrorActionPreference = 'Dakata'. Idan mataki daya ya kasa, na gaba kada suyi aiki.
- Idempotency (maimaituwa). Idan rubutun yana gudana sau biyu, bai kamata ya magance lalacewa sau biyu ba; "Idan kun riga kuna da shi, ku tsallake shi" dabaru.
- Amincewa da bushe-bushe. Don ayyukan lalata "ka tabbata?" ko tutar --bushe-gudu.
- Tabbatar da shigarwa. Shin sigogi kamar yadda ake tsammani? Maɓallin fanko na iya juya rm -rf "$ DIR"/ zuwa rm -rf / bala'i.
- Shiga Rikodin abin da aka yi da lokacin.
Tukwici: Kuskuren da ya fi hatsari a cikin Bash shine sharewa tare da madaidaicin fanko. rm -rf "$ DIR" yana ƙoƙarin share tushen adireshin idan $DIR ba ta da komai. saita -u (tsaya akan mabambantan da ba a bayyana ba) da duba [-n "$ DIR"] kafin sharewa shine ceton rai. Nemi waɗannan kariyar a sarari lokacin neman rubutun daga AI.
Tsaro: sirri da umarni masu lalata
Haɗari manya guda biyu:
- Shigar da Sirrin cikin rubutun. Ba dole ba ne kalmar sirri ta zama bayyananne a cikin rubutun alama; Dole ne a karanta daga canjin yanayi ko vault. Rubutun shiga Git; sirrin da aka binne shi ne zubewa ta dindindin.
- Umarni masu lalata. rm -rf, Cire-Abu -Recurse -Force, DROP TABLE, terraform halakar - idan kun ga waɗannan a cikin rubutun, tsaya da tunani sau biyu. Kada a taɓa gwada umarnin lalata da AI ta haifar a cikin samfur da farko.
Tsanaki: Lokacin da ka gaya wa AI don "rubuta rubutun da ke tsabtace waɗannan fayiloli", karanta a hankali iyakar abin da aka samo ... - share ko rm umarnin da yake samarwa. Katin (*) ko hanyar da ba daidai ba za ta share fiye da yadda kuke son sharewa. Koyaushe gudanar da rubutun farko tare da yanayin "jerin sharewa" maimakon sharewa.
Kwatanta harsuna uku
ma'auni
bash
Python
PowerShell
Inda ya fi kyau
Linux harsashi, umarni sarkar
Complex dabaru, API, bayanai
Gudanar da girgije na Windows
Hanyar koyo
Matsakaici (an makale)
mai sauki
matsakaici
Kuskuren kulawa
kafa - euo pipefail
gwada/sai dai
gwada/kama, -ErrorAction
iya ɗauka
Unix/Linux/mac
ko'ina
Cross-platform (PS 7+)
yaushe
Short, tsarin yana aiki
Hankali ya fi tsayi fiye da layi 20
Windows/AD/Azure
uku mini lokuta
Case 1-2 hours na sana'a cikin minti 5. Wani injiniya yana ciyar da sa'o'i 2 yana tattarawa da adana bayanai daga sabobin 40 kowane mako. Ya sa AI ya kwatanta aikin kuma ya saita -euo pipefail + kariyar bushewa da samar da rubutun Bash. Da farko ya inganta rubutun tare da bushe-gudu, sannan ya haɗa shi zuwa aikin da aka tsara (cron). Ana rage aikin mako-mako zuwa mintuna 5 kuma an kawar da kuskuren ɗan adam.
Case na 2 - Bala'i mai canzawa mara amfani. Akwai rm -rf "$ TARGET"/* a cikin rubutun tsaftar da AI ta samar, amma idan ba a sanya TARGET a wani wuri ba, ya kasance fanko. Ya fahimci haka ne a lokacin da yake karatu a matsayin injiniya; saita -u da [-n "$TARGET"] || ƙara fitarwa 1 iko. Yayin gwajin canjin ya kasance mara amfani kuma rubutun ya tsaya lafiya maimakon bala'i.
Case 3 - An kama alamar da aka saka. Don dacewa, AI ya ƙara layin TOKEN = "ghp_realtoken" zuwa rubutun Python wanda ke buƙatar API (a matsayin misali). Injiniyan ya cire wannan kuma ya canza shi zuwa karantawa daga canjin yanayi tare da os.environ["TOKEN"] kuma ya soke kuma ya sabunta alamar. Idan rubutun ya tafi Git, alamar zata zama jama'a.
Samfura huɗu masu kwafi
1) Amintaccen rubutun Bash:
Rubuta rubutun Bash: [TASK]. Dokokin tilas: - `set -euo pipefail` a farkon. - Duba cewa canjin ba ya da komai a duk inda ake sharewa / motsi. - tutar ` - bushe-run`: rubuta abin da za a yi a cikin wannan yanayin amma kar a yi shi. - Kada a saka sirrin; Karanta daga canjin yanayi. - Buga log ɗin bayanai a kowane mataki. Yi sharhi rubutun kuma yi alama mafi haɗari layi.
2) Bayanin rubutun / sarrafawa:
Yi bayanin layin rubutun mai zuwa ta layi kuma bincika tsaro: sirrin da aka saka, umarni mai lalacewa (rm/Cire-Abu/DROP), shigarwar da ba ta inganta ba, rashin sarrafa kuskure? Rubuta kowane haɗari a cikin tsari na mahimmanci da gyara. Rubutun: [CODE]
3) Fassarar Harshe:
Fassara wancan rubutun [ HARSHEN SOURCE ] zuwa [HARSHEN MANUFAR]. Ajiye halayen a zahiri, yi amfani da sarrafa kuskuren idiomatic na harshen manufa, matsar da duk wani sirrin da ke tattare da shi zuwa canjin yanayi. Abubuwan lura da zasu iya yin tasiri daban-daban. Rubutun: [CODE]
4) Ayyukan da aka tsara (cron/aikin da aka tsara):
Yi amfani da wannan rubutun [FREQUENCY: misali. Rubuta ma'anar jadawalin ([cron / systemd timer / Windows Task Scheduler]) wanda zai gudana [a 02:00 kowane dare]. Ƙara yadda za a yi mani gargaɗi game da gazawar (lambar shiga / fita / sanarwa) da yadda ake hana zoba.
Rauni mai ƙarfi / Ƙarfi mai ƙarfi
Rauni: "Rubuta rubutun da ke share tsoffin fayiloli."
Sakamako: mara iyaka, mara kariya, rubutun rm mara bushewa; Idan yana aiki a cikin babban fayil ɗin da ba daidai ba, zai goge ba tare da juyowa ba.
Mai ƙarfi: "Rubuta rubutun bash don share fayilolin .log sama da kwanaki 30 a ƙarƙashin / var/log/app. Yi amfani da saita -euo pipefail, dakatar idan littafin da aka yi niyya ba shi da komai, jera abin da za a share tare da --bushe-gudu da farko, shiga kowane ma'amala, kar a saka sirrin. Alama layin mafi haɗari."
Bambanci: iƙirarin na biyu yana ba da cikakkiyar iyaka, matakan tsaro da busassun fata; Ana iya gudanar da fitarwa cikin aminci.
Kuskuren gama gari
- Gudun rubutun ba tare da karanta shi ba. Share/matsar da layuka musamman suna haifar da bala'i.
- Ba a bincika masu canji mara komai ba. Bala'i na yau da kullun na goge tushen adireshin tare da rm -rf "$ X"/.
- tsallake `set -euo pipefail` / `-ErrorAction Stop`. Wani mataki yayi wuta, rubutun yana ci gaba da makanta.
- Shigar da Sirrin cikin rubutun. Tsayawa mai jujjuyawa zuwa Git.
- Tsarin lalacewa ba tare da bushe-gudu ba. Da farko "nuna min abin da zan yi", sannan yi.
- Yin gwajin farko a cikin prod. Gudu ba tare da keɓantaccen yanayin gwaji ba.
a takaice
DevOps shine fasahar sarrafa kansa; Ana ba da aikin maimaitawa zuwa rubutun Bash, Python da PowerShell. AI yana da amfani sosai wajen tsara rubutun, gyara kurakurai, da fassarar harsuna - amma ingantaccen rubutun yakamata ya haɗa da masu gadin kuskure kamar saita -euo pipefail, bincika maras kyau, yanayin bushewa, shigar sirri, da shiga. Yana da alhakin karantawa da gwada kowane rubutun, musamman ma waɗanda ke ɗauke da umarni masu lalata, a cikin keɓantaccen wuri kuma a bushe da farko.
Aikin aikace-aikace
Zaɓi ɗawainiya mai maimaitawa (ajiya, ajiya, tsaftacewa). (1) Shin AI ta samar da ingantaccen rubutun tare da samfurin "Secure Bash script". (2) A duba rubutun iri ɗaya don tsaro kamar samfurin "bayanin rubutun / dubawa" kuma sami layin mafi haɗari wanda AI ya yi alama. (3) Tabbatar da halayensa ta hanyar gudanar da rubutun tare da fayilolin samfurin a cikin babban fayil na gwaji, da farko tare da --dry-run.
jerin abubuwan dubawa
- [ ] Na rubuta aikin da bana so, OS/harsashi da hanyoyin tsaro.
- [ ] Rubutun yana da kuskuren tsayawa kamar saita -euo pipefail / -ErrorAction Stop.
- [ ] Na ƙara m m da shigar da duba kafin shafewa/motsi.
- [ ] Akwai --bushe-gudu/tabbatacciyar hanyar aiki mai lalacewa.
- [ ] Babu wani sirri da ke cikin rubutun; dabi'u sun fito ne daga yanayin yanayi mai canzawa/harka.
- [ ] Na yi gwajin farko a cikin keɓantaccen wurin gwaji tare da bushe-bushe.