Aonad 3 / 11

Bainistiú Bonneagair mar Chód: Intleacht Shaorga le Terraform agus IaC

Gnóthachain:

  • Cumas coincheap IaC agus timthriall oibre Terraform a thuiscint (tús, pleanáil, cur i bhfeidhm, luaigh, modúl) agus intleacht shaorga dréachtaí sábháilte HCL a tháirgeadh
  • Cumas gach athrú a sheiceáil le plean roimh iarratas a dhéanamh agus línte scriosta/athsholáthair gan choinne a ghabháil
  • Cumas na prionsabail a bhaineann le rúin a choinneáil amach as an gcód a chur i bhfeidhm, an stát a choinneáil slán, agus ceadanna IAM a íoslaghdú

San am atá caite, bhí socrú freastalaí ina ábhar cliceáil trí phainéal scamall: cruthaigh meaisín fíorúil, cuir an líonra ar bun, cuir an riail slándála leis. Bhí an modh seo mall, seans maith go earráidí, agus níorbh fhéidir athrá a dhéanamh - bhí sé beagnach dodhéanta an timpeallacht chéanna a bhunú an dara huair. Sa lá atá inniu ann, déantar an bonneagar a bhainistiú mar chód. Is cur chuige é IaC (Bonneagar mar Chód) chun cur síos a dhéanamh ar acmhainní néil mar fhreastalaithe, líonraí, agus bunachair shonraí i gcomhaid téacs seachas de láimh. Suíonn na comhaid seo i rialú leagan (Git); Is féidir leat a fheiceáil cé a d'athraigh cad, cathain, agus cad; Is féidir leat an bonneagar céanna a bhunú go minic, ar an mbealach céanna, le hordú amháin.

Is é an uirlis IaC is coitianta ná Terraform. Glacann Terraform na sainmhínithe a scríobhann tú i dteanga inléite ar a dtugtar HCL (Teanga Cumraíochta HashiCorp - teanga cumraíochta Terraform), aistríonn sé iad go API an tsoláthraí néal (AWS, Azure, GCP) agus cruthaíonn sé na hacmhainní. Tá a fhios ag an AI HCL go han-mhaith agus táirgeann sé bloic casta go tapa. Ach in IaC, tá costas botún ard: is féidir le sainmhíniú mícheart amháin bunachar sonraí táirgeachta iomlán a scriosadh. Sin an fáth gurb é an riail órga i Terraform gach athrú le 'plean' a fheiceáil sula gcuirtear i bhfeidhm é.

Am rite Terraform

Oibríonn Terraform le trí ordú bhunúsacha - is réamhriachtanas é seo chun aschur AI a rialú:

  • `terraform init`: Tosaíonn an tionscadal, íoslódálann sé na forlíontáin riachtanacha soláthraithe.
  • `plean terraform`: Déanann sé comparáid idir an staid reatha agus an staid inmhianaithe agus taispeánann sé cad atá le cur leis, cad atá le hathrú, cad atá le scriosadh. Ní chuireann sé rud ar bith i bhfeidhm. Is é an chéim slándála is tábhachtaí.
  • `terraform apply`: Cuireann an Plean i bhfeidhm i ndáiríre, ag cruthú/mionathrú acmhainní.

Ina theannta sin, tá dhá choincheap ríthábhachtach. Luaigh (tabhair an comhad): Seo é an comhad ina gcoimeádann Terraform staid reatha na n-acmhainní a bhainistíonn sé; De ghnáth déantar é a stóráil i stóras iargúlta agus faoi ghlas ionas nach féidir le beirt é a athrú nó a mhilleadh ag an am céanna. Modúl: Pacáiste cumraíochta ath-inúsáidte; Mar shampla, is féidir leat an modúl "líonra a chur ar bun" a úsáid i go leor tionscadal.

Leid: Is é an comhartha is contúirtí in aschur Terraform ná línte scriosta nó -/+ (ionadaigh) san aschur plean. Ciallaíonn siad seo go scriosfar an acmhainn. Má fheiceann tú scrios gan choinne i bplean, ná déan iarratas riamh, tuig ar dtús cén fáth ar dhealraigh sé.

Céim ar chéim: IaC a scríobh le AI

  1. An bonneagar atá ag teastáil a shoiléiriú. Bí nithiúil cosúil le "VPC amháin, dhá subnets, grúpa slándála amháin agus ceann t3.micro EC2 ar eu-central-1".
  2. Sonraigh an soláthraí agus an leagan. Cén scamall, cén leagan Terraform agus soláthraí? Mura sonraíonn tú leagan, féadfaidh AI comhréir atá as dáta/neamh-chomhoiriúnach a thabhairt ar ais.
  3. Bíodh an dréacht HCL curtha ar fáil. Iarr freisin athróga agus aschuir.
  4. Tóg Rún amach. Ba cheart go rachadh luachanna ar nós pasfhocail agus eochracha chuig an cruinneachán athróg agus rúnda, ní chuig an gcód.
  5. Rith `init` + `plean`. Léigh an plean aschuir de réir líne; Seiceáil le haghaidh scriosta gan choinne.
  6. Tosaigh beag, cuir i bhfeidhm de réir a chéile. Déan é a chur i bhfeidhm i gcuntas tástála iargúlta/timpeallacht ar dtús.

Slándáil: rioscaí a bhaineann go sonrach le IaC

Tá IaC chomh priacail agus atá sé cumhachtach. Trí phointe ríthábhachtacha:

  1. Tá rún sa chomhad stáit. Uaireanta coinníonn stát Terraform luachanna íogaire, mar fhocal faire bunachar sonraí, i ngnáththéacs. Ná cuir an Stát i stór poiblí riamh; Úsáid inneall cianda criptithe le rochtain shrianta.
  2. Ná leabú rúin i HCL. Scríobhtar línte cosúil le password="prod123" go buan chuig stair Git. Ina áit sin, bain úsáid as athróg agus tabhair an luach ag am rite ón athróg timpeallachta (TF_VAR_...) nó ón cruinneachán rúnda.
  3. Cead IAM an-leathan. Uaireanta táirgeann AI bloic cosúil le Gníomh: "*" (cheadaigh gach rud) "a dhéanamh air ag obair". Is leochaileacht é seo; an cead a chaolú go dtí an t-íosmhéid a theastaíonn.
Aird: Nuair a théann rún isteach i stair Git, fanann sé san am atá caite agus is féidir é a chur i gcontúirt, fiú má scriosann tú an comhad. Má dhéanann tú gealltanas de dhearmad, cuir an rún ar ceal láithreach agus rothlaigh; Ní leor ach scriosadh.

Tábla comharthaí plean contúirteacha

Pleanáil a phriontáil

Brí

cad atá le déanamh

+chruthaigh

Cuirfear acmhainn nua leis

Go ginearálta sábháilte, athbhreithniú cé

~ nuashonrú i bhfeidhm

Athrófar an fhoinse ar an suíomh

Fíoraigh tionchar (an mbeidh briseadh ann?)

-/+ ionadaigh

Scriosfar agus athchruthófar é

AIRE: d'fhéadfadh go gcaillfí sonraí

- scrios

Scriosfar an acmhainn

STOP: Ná déan iarratas riamh mura bhfuil tú ag súil leis

trí chás mion

Cás 1 - 2 lá oibre i 3 uair an chloig. Bhí foireann amháin ag dul a scríobh Terraform chun timpeallacht tástála nua a bhunú (VPC, subnets, bunachar sonraí RDS, braisle ECS) ach bhí siad díreach tar éis bogadh go HCL. Chuir siad síos ar an ailtireacht agus ar na leaganacha don AI agus chuir siad treoirphlean modúlach ar fáil. D'fhíoraigh siad gach modúl leis an bplean agus bhí sé ar bun agus ag feidhmiú i 3 huaire; Thógfadh sé dhá lá triail láimhe agus earráide orthu.

Cás 2 - scriosadh an plean. Reáchtáil innealtóir plean gan cód nuashonraithe a ghintear le AI a chur i bhfeidhm. An t-aschur a chuimsigh -/+ ionad don bhunachar sonraí táirgthe — rinne an AI iarracht réimse neamh-athsholáthair a athsholáthar, rud a chiallaigh an bunachar sonraí a scriosadh agus a athchruthú. Stop an t-innealtóir iarratas a dhéanamh agus d'athraigh sé an t-athrú ar an modh sábháilte. Chuir nós na pleanála cosc ​​ar thubaiste.

Cás 3 - sceitheadh ​​rúnda faoi thalamh. A sóisearach, d'eisigh YZ db_password = "S3cret!" Rinne sé an líne mar atá agus bhrúigh sé. Gafa i athbhreithniú cód; Cealaíodh an pasfhocal láithreach agus athraíodh é, aistríodh an luach chuig athróg agus cothaíodh é ón cruinneachán rúnda. Ceacht: Ní bhíonn rúin ghnáth-théacs in HCL riamh.

Ceithre theimpléad inchóipeála

1) Dréacht bonneagair a ghiniúint:

Scríobh an bonneagar seo a leanas ar [CLOUD: AWS] le Terraform (leagan ~> 1.7): [LIOSTA FOINSE]. Réigiún [X]. Rialacha:- Déan na luachanna íogaire go léir inathraithe, ná iad a leabú i HCL.- Leagan soláthraí a shocrú (required_providers).- Íoslaghdaigh ceadanna IAM, ná bain úsáid as "*".- Fill [X, Y] mar aschur. Tabhair cód go modúlach agus le mínithe.

2) Léiriú ar aschur an phlean:

Déan anailís ar an aschur 'plean terraform' thíos. Liostaigh mé:(1) cad iad na hacmhainní a cuireadh leis/athraíodh/scriosta,(2) sraitheanna i mbaol caillteanas sonraí nó cur isteach,(3) 3 cheist ba chóir dom a chur roimh iarratas.Plean: [ASCHUR]

3) Scrúdaigh HCL reatha le haghaidh slándála:

Seiceáil an cód Terraform seo a leanas le haghaidh slándála: rún leabaithe, cead IAM ró-leathan, riail líonra oscailte (0.0.0.0/0), stóráil neamhchriptithe? Scríobh gach toradh in ord tábhachta agus ceartúcháin. Cód: [HCL]

4) Tiontaigh an cód athchleachtach chuig an modúl:

Tiontaigh an cód Terraform athchleachtach seo a leanas isteach i modúl ath-inúsáidte: cad iad na luachanna ba cheart a bheith ina n-athróga, cad ba cheart comhéadan an mhodúil a bheith? Taispeáin úsáid shamplach freisin. Cód: [HCL]

Leid lag / Pras láidir

Lag: "Cruthaigh bunachar sonraí le Terraform."

Toradh: ní léir cén scamall, cén inneall, cén leagan, a criptíodh nó nach bhfuil; Le comhréir oidhreachta, is féidir le AI sampla atá ar fáil go poiblí a sholáthar a neadaíonn an focal faire sa chód.

Strong: "Cruthaigh sampla RDS PostgreSQL 15 ar AWS le Terraform ~> 1.7. Déan athróg an fhocail faire, ná leabaigh sa chód é. Tá an stóráil criptithe, inrochtana ach ó fholíon príobháideach, ní poiblí. Deisigh leagan an tsoláthraí. Fill críochphointe mar aschur."

Difríocht: tugann an dara leid an t-inneall, an leagan, an criptiú, an srianadh líonra agus an riail rúnda - tá an t-aschur slán agus gar do tháirgí.

Botúin choitianta

  • Chun `iarratas` a dhéanamh gan `plean` a dhéanamh. An botún is daoire i IaC; plean i gcónaí ar dtús.
  • Rún a Leabú i HCL. Cruthaíonn sé sceitheadh ​​buan i stair Git.
  • Stóráil an Stáit neamhdhaingean. Is tubaiste é stát poiblí neamhchriptithe, neamhghlasáilte.
  • Gan an leagan a shocrú. Má úsáidtear soláthraí gan leagan a shonrú beidh teipeanna tobann sa todhchaí.
  • *`Gníomh: Tá cead leathan mar ""`.** Sáraíonn sé prionsabal na pribhléide is lú.
  • Ag déanamh neamhairde ar `scriosadh` gan choinne. Na línte scriosta sa Phlean a chur i bhfeidhm gan cheistiú.

Go hachomair

Déanann IaC an bonneagar a thiontú ina chód in-athdhéanta, inleaganacha agus in-iniúchta; Is é an uirlis is coitianta ná Terraform. Táirgeann AI stubs HCL go tapa, ach ní mór duit an leagan, sonraí scamall-shonracha, agus rialacha slándála a sholáthar. An riail infallible in Terraform: gach athrú le plean a fheiceáil, ceisteanna a chur ar scriosadh gan choinne, rúin a choinneáil ar shiúl ón gcód agus an stát a choinneáil slán. Is iad na línte scriosta agus athsholáthair in aschur plean na háiteanna is mó is cóir a léamh.

Tasc feidhmchláir

Iarr ar an AI bonneagar beag a ghiniúint (m.sh. buicéad stórála agus beartas rochtana) ag baint úsáide as an teimpléad “Gin sceitse bonneagair” thuas. Ansin: (1) seiceáil an teimpléad “seiceáil” le haghaidh ceadanna rúnda nó * atá leabaithe sa chód; (2) más féidir, rith init + plean i gcuntas tástála agus léigh an t-aschur plean leis an teimpléad "léirmhíniú plean"; (3) nótáil ar aon scriosadh/athruithe gan choinne.

seicliosta

  • [ ] Chuir mé scamall, leagan Terraform/soláthraí, agus srianta criptithe/líonra le mo leid.
  • [ ] Níl aon rún gnáth-théacs sa chód; luachanna beachtas athraitheach.
  • [ ] Chaol mé síos IAM/ceadanna go dtí na ceadanna íosta, * níor úsáid mé é.
  • [ ] Rith mé an plean roimh iarratas a dhéanamh agus léigh mé an t-aschur líne le líne.
  • [ ] Dheimhnigh mé nach bhfuil aon scrios/athsholáthar gan choinne sa Phlean.
  • [ ] Táim cinnte go gcoimeádtar an stát in inneall criptithe, faoi ghlas agus srianta.