Ag tosú ón dara gealltanas, éiríonn aon chód oidhreacht, mar gheall ar Tosaíonn smaointe tosaigh a bheith éagsúil ón réaltacht chrua. Níl sé seo go maith ná go dona, tá sé deacair argóint a dhéanamh leis agus nach mór maireachtáil leis. Cuid den phróiseas seo is ea athmhacrú. Bonneagar a Athchur mar Chód. Cuir tús leis an scéal maidir le conas Freagra a thabhairt ar ais i gceann bliana agus gan dul ar mire.
Breith na hOidhreachta
Lá #1: Othar Zero
Uair amháin bhí tionscadal coinníollach ann. Bhí foireann forbartha Dev agus innealtóirí Ops ann. Bhí an fhadhb chéanna á réiteach acu: conas freastalaithe a imscaradh agus feidhmchlár a rith. An fhadhb a bhí ann ná gur réitigh gach foireann an fhadhb seo ina mbealach féin. Ag an tionscadal, socraíodh Ansible a úsáid chun eolas idir na foirne Dev agus Ops a shioncronú.
Lá #89: Breith na hOidhreachta
Gan é a thabhairt faoi deara iad féin, bhí siad ag iarraidh é a dhéanamh chomh maith agus ab fhéidir, ach d'éirigh sé amach mar oidhreacht. Conas a tharlaíonn sé seo?
Tá tasc práinneach againn anseo, déanaimis hack salach agus ansin é a shocrú.
Ní gá duit doiciméadú a scríobh agus tá gach rud soiléir cad atá ar siúl anseo.
Tá aithne agam ar Ansible/Python/Bash/Terraform! Féach conas is féidir liom Dodge!
Is Forbróir Overflow Stack Iomlán mé agus chóipeáil mé é seo ó stackoverflow, níl a fhios agam conas a oibríonn sé, ach tá cuma fionnuar air agus réitíonn sé an fhadhb.
Mar thoradh air sin, is féidir leat cineál cód dothuigthe a fháil nach bhfuil aon doiciméadú ann, níl sé soiléir cad a dhéanann sé, cibé an bhfuil sé ag teastáil, ach is é an fhadhb atá ann ná gur gá duit é a fhorbairt, é a mhodhnú, crutches agus tacaí a chur leis. , rud a fhágann go bhfuil an scéal níos measa fós.
Ní chomhlíonann an tsamhail IaC a ceapadh agus a cuireadh i bhfeidhm ar dtús riachtanais úsáideoirí / gnó / foirne eile a thuilleadh, agus níl an t-am chun athruithe a dhéanamh ar an mbonneagar inghlactha a thuilleadh. Ag an nóiméad seo, tagann an tuiscint go bhfuil sé in am beart a dhéanamh.
IaC athmhachnamh
Lá #139: An bhfuil athfhachtóiriú de dhíth ort i ndáiríre?
Sula ndéanann tú deifir chun athfhachtóir a dhéanamh, caithfidh tú roinnt ceisteanna tábhachtacha a fhreagairt:
Cén fáth a bhfuil seo go léir ag teastáil uait?
An bhfuil am agat?
An leor eolas?
Mura bhfuil a fhios agat conas na ceisteanna a fhreagairt, críochnóidh an t-athfhachtóiriú sula dtosóidh sé fiú, nó seans go n-éireoidh sé in olcas. Mar bhí taithí ( An méid a d'fhoghlaim mé as 200 Línte de Chód Bonneagair a Thástáil), ansin fuair an tionscadal iarratas ar chabhair chun na róil a shocrú agus iad a chlúdach le tástálacha.
Lá #149: An t-athfhachtóiriú á ullmhú
Is é an chéad rud a ullmhú. Déan cinneadh cad a dhéanfaimid. Chun seo a dhéanamh, déanaimid cumarsáid, faighimid réimsí faidhbe agus déanaimid amach bealaí chun iad a réiteach. Déanaimid taifead ar na coincheapa a eascraíonn as seo ar bhealach éigin, mar shampla, alt i gcomhluadar, ionas gur féidir nuair a thagann an cheist “cad é is fearr?” nó "a bhfuil ceart?" Níl ár mbealach caillte againn. Inár gcás, táimid ag cloí leis an smaoineamh roinn agus riail: roinnimid an bonneagar ina phíosaí beaga/brící. Ligeann an cur chuige seo duit píosa bonneagair iargúlta a ghlacadh, tuiscint a fháil ar cad a dhéanann sé, é a chlúdach le tástálacha agus é a athrú gan eagla a bheith ort gan rud ar bith a bhriseadh.
Tharlaíonn sé go raibh tástáil bonneagair ina bhunchloch agus anseo is fiú an phirimid um thástáil bonneagair a lua. An smaoineamh céanna go díreach atá á fhorbairt, ach don bhonneagar: táimid ag bogadh ó thástálacha meara saora a sheiceálann rudaí simplí, amhail eangú, go dtí tástálacha costasacha iomlána a imlonnaítear an bonneagar iomlán.
Iarrachtaí tástála inchurtha
Sula rachaimid chun cur síos a dhéanamh ar an gcaoi ar chlúdaigh muid trialacha Inmheánacha ar an tionscadal, déanfaidh mé cur síos ar na hiarrachtaí agus na cuir chuige a raibh deis agam a úsáid níos luaithe chun comhthéacs na gcinntí a rinneadh a thuiscint.
Lá Uimh. -997: Soláthar SDS
Ba é an chéad uair a ndearna mé tástáil ar Ansible ar thionscadal chun SDS (Stóráil Sainmhínithe Bogearraí) a fhorbairt. Tá alt ar leith ar an ábhar seo Conas rothair a bhriseadh thar magairlí agus do dháileadh á thástáil, ach i mbeagán focal, dar críoch muid suas le pirimid tástála inverted agus tástáil chaith muid 60-90 nóiméad ar ról amháin, a bhfuil ar feadh i bhfad. Ba é an bunús tástálacha e2e, i.e. d'imscaramar suiteáil lán-chuimsitheach agus ansin thástáileamar é. Rud a bhí níos measa fós ná aireagán a rothair féin. Ach caithfidh mé a admháil, d'oibrigh an réiteach seo agus cheadaigh sé scaoileadh cobhsaí.
Lá # -701: Cistin inchurtha agus tástála
Ba é forbairt an smaoineamh tástála Ansible ná úsáid a bhaint as uirlisí réamhdhéanta, eadhon cistin tástála / cistin-ci agus inspec. Socraíodh an rogha ag eolas ar Ruby (le haghaidh tuilleadh sonraí, féach an t-alt ar Habré: An mbrionglóidigh ríomhchláraitheoirí YML triail a bhaint as Ansible?) d’oibrigh sé níos tapúla, thart ar 40 nóiméad ar feadh 10 ról. Chruthaíomar paca de mheaisíní fíorúla agus rinneamar tástálacha taobh istigh.
Go ginearálta, d'oibrigh an réiteach, ach bhí roinnt dríodar mar gheall ar ilchineálacht. Nuair a mhéadaigh siad líon na tástála go 13 ról bunúsach agus 2 róil meta le chéile róil níos lú, ansin go tobann thosaigh na tástálacha a reáchtáil ar feadh 70 nóiméad, atá beagnach 2 huaire níos faide. Bhí sé deacair labhairt faoi chleachtais XP (ríomhchlárú) mar... níl aon duine ag iarraidh fanacht 70 nóiméad. Ba é seo an chúis leis an gcur chuige a athrú
Lá # -601: Neamhspleách agus móilín
Go coincheapúil, tá sé seo cosúil le testkitchen, ach bhog muid ról-thástáil chuig docker agus d'athraigh an chairn. Mar thoradh air sin, laghdaíodh an t-am go dtí 20-25 nóiméad cobhsaí le haghaidh 7 ról.
Trí líon na róil tástálaithe a mhéadú go 17 agus 45 ról a líonadh, ritheamar é seo i 28 nóiméad ar 2 sclábhaí jenkins.
Lá #167: Trialacha Inmhínithe a chur leis an tionscadal
Is dócha, ní bheidh sé indéanta an tasc athmhonaraithe a dhéanamh go práinneach. Ní mór an tasc a bheith intomhaiste ionas gur féidir leat é a bhriseadh ina phíosaí beaga agus an eilifint a ithe píosa ina phíosa le teaspoon. Ní mór go mbeadh tuiscint ann an bhfuil tú ag bogadh sa treo ceart, cé chomh fada le dul.
Go ginearálta, is cuma conas a dhéanfar é, is féidir leat scríobh ar phíosa páipéir, is féidir leat greamáin a chur ar an closet, is féidir leat tascanna a chruthú i Jira, nó is féidir leat Google Docs a oscailt agus an stádas reatha a scríobh síos ann. Fásann na cosa as an bhfíric nach bhfuil an próiseas láithreach, beidh sé fada agus tedious. Ní dócha go mbeidh duine ar bith ag iarraidh ort éirí as smaointe, éirí tuirseach, agus a bheith faoi léigear le linn athmhonarú.
Tá an t-athfhachtóiriú simplí:
Ith.
Codladh.
Cód.
Tástáil IaC.
Déan
agus déanaimid é seo arís go dtí go sroicheann muid an sprioc atá beartaithe.
B’fhéidir nach mbeifí in ann gach rud a thástáil ar an bpointe boise, agus mar sin ba é an chéad tasc a bhí againn ná tosú le líneáil agus seiceáil an chomhréir.
Lá #181: Máistir Tógála Glas
Is céim bheag den chéad uair é linting i dtreo Green Build Master. Ní bhrisfidh sé seo beagnach rud ar bith, ach ligfidh sé duit próisis dífhabhtaithe agus foirgnimh ghlasa a dhéanamh i Jenkins. Is é an smaoineamh nósanna a fhorbairt i measc na foirne:
Tá tástálacha dearga dona.
Tháinig mé chun rud éigin a shocrú agus ag an am céanna an cód a dhéanamh beagán níos fearr ná mar a bhí sé roimh tú.
Lá #193: Ó linéadáil go tástálacha aonaid
Tar éis duit an próiseas a bhaineann leis an gcód a fháil isteach sa mháistir, is féidir leat tús a chur leis an bpróiseas feabhsúcháin céim ar chéim - trí róil seolta a chur in ionad an líneáil, is féidir leat é a dhéanamh fiú gan iempotency. Ní mór duit a thuiscint conas róil a chur i bhfeidhm agus conas a oibríonn siad.
Lá #211: Ó aonad go trialacha comhtháthaithe
Nuair a bhíonn an chuid is mó de na róil clúdaithe le trialacha aonaid agus nuair a bhíonn gach rud linted, is féidir leat dul ar aghaidh go dtí tástálacha comhtháthaithe a chur leis. Iad siúd. tástáil ní bríce amháin sa bhonneagar, ach meascán díobh, mar shampla, cumraíocht ásc iomlán.
Trí úsáid a bhaint as jenkins, ghineamar go leor céimeanna a cheangail róil/leabhair súgartha go comhthreomhar, ansin tástálacha aonaid i gcoimeádáin, agus ar deireadh tástálacha comhtháthaithe.
Jenkins + Docker + Freagrach = Trialacha
Seiceáil repo agus gin céimeanna tógála.
Rith céimeanna leabhar súgartha lint ag an am céanna.
Rith céimeanna róil lint go comhthreomhar.
Rith céimeanna an róil seiceála comhréire ag an am céanna.
Rith céimeanna an róil tástála ag an am céanna.
Ról lint.
Seiceáil spleáchas ar róil eile.
Seiceáil an chomhréir.
Cruthaigh sampla docker
Rith móilín/réamhshocraithe/leabhar súgartha.yml.
Seiceáil iempotency.
Rith tástálacha comhtháthú
Críochnaigh
Lá #271: Fachtóir Bus
Ar dtús, rinne grúpa beag de bheirt nó triúr daoine athfhachtóiriú. Rinne siad athbhreithniú ar an gcód sa mháistir. Le himeacht ama, d'fhorbair an fhoireann eolas ar conas cód a scríobh agus chuir athbhreithniú cód le scaipeadh eolais faoin mbonneagar agus conas a oibríonn sé. Ba é an buaicphointe anseo ná gur roghnaíodh na hathbhreithneoirí ceann ar cheann, de réir sceidil, i.e. le roinnt dóchúlachta go dtógfaidh tú isteach i bpíosa nua bonneagair.
Agus ba chóir go mbeadh sé compordach anseo. Tá sé áisiúil athbhreithniú a dhéanamh, féachaint laistigh de chreat an tasc a rinneadh é, agus stair an phlé. Tá jenkins + bitbucket + jira comhtháite againn.
Ach mar sin de, ní uile-íoc é athbhreithniú; ar bhealach éigin, chuamar isteach sa mháistirchód, rud a rinne tástálacha flop dúinn:
Le himeacht ama, bhí níos mó tástálacha ann, bhí tógáil ar siúl níos moille, suas le uair an chloig sa chás is measa. Ar cheann de na retros bhí frása mar “tá sé go maith go bhfuil tástálacha ann, ach tá siad mall.” Mar thoradh air sin, thréigeamar tástálacha comhtháthaithe ar mheaisíní fíorúla agus chuireamar in oiriúint iad do Docker chun é a dhéanamh níos tapúla. Chuireamar fíoraitheoir inchurtha in ionad testinfra freisin chun líon na n-uirlisí a úsáidtear a laghdú.
Go docht, bhí sraith beart ann:
Athraigh go docker.
Bain tástáil róil, a dhéantar a mhacasamhlú de bharr spleáchais.
Méadú ar líon na sclábhaithe.
Ordú rith tástála.
Cumas chun lint GACH go háitiúil le hordú amháin.
Mar thoradh air sin, bhí Píblíne ar jenkins aontaithe freisin
Gin céimeanna tógála.
Lint go léir i gcomhthráth.
Rith céimeanna an róil tástála ag an am céanna.
Críochnaigh.
Ceachtanna a foghlaimíodh
Seachain athróga domhanda
Úsáideann Ansible athróga domhanda, tá réiteach páirteach san fhoirm príobháideach_ról_vars, ach ní uile-íoc é seo.
Lig dom sampla a thabhairt duit. Lig dúinn role_a и role_b
Is é an rud greannmhar go mbeidh toradh leabhair súgartha ag brath ar rudaí nach bhfuil soiléir i gcónaí, mar an t-ord ina liostaítear róil. Ar an drochuair, is é seo nádúr Ansible agus is é an rud is fearr is féidir a dhéanamh ná comhaontú de chineál éigin a úsáid, mar shampla, laistigh de ról, gan ach an athróg a thuairiscítear sa ról seo a úsáid.
MAITH: I róil le haghaidh athróg, bain úsáid as athróga a bhfuil an t-ainm róil curtha roimh ré acu; má fhéachann tú ar an bhfardal, beidh sé níos éasca a thuiscint cad atá ag tarlú.
Bad: Úsáid athróg chaighdeánach i lúba item, má chuirtear an tasc/leabhar súgartha seo san áireamh áit éigin, d’fhéadfadh iompar gan choinne a bheith mar thoradh air
D’aontaíomar réimíreanna athraitheacha a úsáid; ní bheadh sé iomarcach a sheiceáil go bhfuil siad sainmhínithe mar a bhíomar ag súil leis agus, mar shampla, nach raibh siad sáraithe ag luach folamh
MAITH: Seiceáil athróga.
- name: "Verify that required string variables are defined"
assert:
that: ahs_var is defined and ahs_var | length > 0 and ahs_var != None
fail_msg: "{{ ahs_var }} needs to be set for the role to work "
success_msg: "Required variables {{ ahs_var }} is defined"
loop_control:
loop_var: ahs_var
with_items:
- ahs_item1
- ahs_item2
- ahs_item3
Seachain foclóirí hashes, bain úsáid as struchtúr cothrom
Má tá ról ag súil le hais / foclóir i gceann dá pharaiméadair, ansin má theastaíonn uainn ceann de na paraiméadair leanbh a athrú, beidh orainn an hash/foclóir iomlán a shárú, rud a mhéadóidh castacht na cumraíochta.
Bad: Úsáid hash/foclóir.
---
user:
name: admin
group: admin
MAITH: Bain úsáid as struchtúr cothrom athraitheach.
Ní mór róil agus leabhair imeartha a bheith dothuigthe, mar laghdaíonn sé sruth cumraíochta agus eagla roimh bhriseadh rud éigin. Ach má úsáideann tú móilín, ansin is é seo an t-iompar réamhshocraithe.
Seachain modúil bhlaosc ordaithe a úsáid
Nuair a úsáidtear modúl blaosc déantar paraidím cur síos ordaitheach, in ionad an chinn dhearbhaithe, atá mar chroílár Ansible.
Déan do róil a thástáil trí mhóilín
Is rud an-solúbtha é móilín, déanaimis féachaint ar roinnt cásanna.
Móilín Cásanna iolracha
В molecule.yml i roinn platforms is féidir leat cur síos a dhéanamh ar go leor óstach ar féidir leat a imscaradh.
I móilín is féidir ansible a úsáid chun a sheiceáil go bhfuil an ásc cumraithe i gceart, ina theannta sin, is é seo an réamhshocrú ó scaoileadh 3 amach. Níl sé chomh solúbtha le testinfra/inspec, ach is féidir linn a sheiceáil go bhfuil ábhar an chomhaid ag teacht lenár n-ionchais:
Nó imscaradh an tseirbhís, fan go mbeidh sí ar fáil agus déan tástáil deataigh:
---
- name: Verify
hosts: solr
tasks:
- command: /blah/solr/bin/solr start -s /solr_home -p 8983 -force
- uri:
url: http://127.0.0.1:8983/solr
method: GET
status_code: 200
register: uri_result
until: uri_result is not failed
retries: 12
delay: 10
- name: Post documents to solr
command: /blah/solr/bin/post -c master /exampledocs/books.csv
Cuir loighic chasta i modúil & breiseán
Molann Ansible cur chuige dearbhaithe, mar sin nuair a dhéanann tú brainse cód, claochlú sonraí, modúil bhlaosc, bíonn sé deacair an cód a léamh. Chun é seo a chomhrac agus é a choinneáil simplí le tuiscint, ní bheadh sé iomarcach dul i ngleic leis an gcastacht seo trí do mhodúil féin a chruthú.
Déan achoimre ar Leideanna & Seifteanna
Seachain athróga domhanda.
Réimír athróga róil.
Úsáid athróg rialaithe lúb.
Seiceáil athróga ionchuir.
Seachain foclóirí hashes, bain úsáid as struchtúr cothrom.
UPD1 2020.05.01 20:30 — Is féidir leat úsáid a bhaint as chun próifíliú príomhúil a dhéanamh ar leabhair súgartha callback_whitelist = profile_tasks a thuiscint cad a oibríonn go díreach ar feadh i bhfad. Ansin téann muid tríd Clasaiceach luasghéaraithe inchurtha. Is féidir leat triail freisin miotóg UPD2 2020.05.03 16:34 - leagan Béarla