Bun-bheachdan iomchaidh, às aonais sin bidh na leabhraichean cluiche agad na cnap de pasta steigeach

Bidh mi a’ dèanamh tòrr lèirmheasan air còd Ansible dhaoine eile agus a’ sgrìobhadh tòrr mi-fhìn. Ann a bhith a 'dèanamh anailis air mearachdan (an dà chuid daoine eile agus mi fhìn), a bharrachd air grunn agallamhan, thuig mi am prìomh mhearachd a tha luchd-cleachdaidh Ansible a' dèanamh - bidh iad a 'faighinn a-steach do rudan iom-fhillte gun a bhith a' faighinn eòlas air an fheadhainn bunaiteach.

Gus an ana-ceartas uile-choitcheann seo a cheartachadh, chuir mi romham ro-ràdh a sgrìobhadh gu Ansible dhaibhsan a tha eòlach air mar-thà. Tha mi a’ toirt rabhadh dhut, chan e ath-aithris dhaoine a tha seo, is e leughadh fada a tha seo le tòrr litrichean agus gun dhealbhan.

Is e an ìre ris a bheil dùil aig an leughadair gu bheil grunn mhìltean loidhnichean de yamla air an sgrìobhadh mu thràth, gu bheil rudeigin ann an riochdachadh mu thràth, ach “ann an dòigh air choreigin tha a h-uile dad cam.”

Ainmean

Is e am prìomh mhearachd a nì neach-cleachdaidh Ansible nach eil fios dè a chanar ri rudeigin. Mura h-eil thu eòlach air na h-ainmean, chan eil thu a 'tuigsinn dè tha na sgrìobhainnean ag ràdh. Eisimpleir beò: ann an agallamh, cha b 'urrainn do neach a bha coltach gu robh e ag ràdh gun do sgrìobh e mòran ann an Ansible a' cheist a fhreagairt "dè na h-eileamaidean a tha ann an leabhar-cluiche?" Agus nuair a mhol mi “gur e am freagairt a bhathas an dùil gur e cluich a tha san leabhar-cluiche,” lean am beachd damnachail “chan eil sinn a’ cleachdadh sin”. Bidh daoine a’ sgrìobhadh Ansible airson airgead agus cha bhith iad a’ cleachdadh cluich. Tha iad dha-rìribh ga chleachdadh, ach chan eil fios aca dè a th’ ann.

Mar sin tòisichidh sinn le rudeigin sìmplidh: dè a chanar ris. Is dòcha gu bheil fios agad air seo, no is dòcha nach eil, oir cha tug thu aire nuair a leugh thu na sgrìobhainnean.

bidh ansible-playbook a’ cur an leabhar-cluiche an gnìomh. Tha leabhar-cluiche na fhaidhle leis an leudachadh yml/yaml, anns a bheil rudeigin mar seo:

---
- hosts: group1
  roles:
    - role1

- hosts: group2,group3
  tasks:
    - debug:

Thuig sinn mu thràth gur e leabhar-cluiche a th’ anns an fhaidhle slàn seo. Is urrainn dhuinn sealltainn far a bheil na dreuchdan agus far a bheil na gnìomhan. Ach càite bheil cluich? Agus dè an diofar eadar cluich agus dreuchd no leabhar-cluiche?

Tha e uile anns na sgrìobhainnean. Agus tha iad ga ionndrainn. Luchd-tòiseachaidh - oir tha cus ann agus chan eil cuimhne agad air a h-uile dad aig an aon àm. Eòlasach - air sgàth “rudan beaga”. Ma tha eòlas agad, leugh na duilleagan seo a-rithist co-dhiù aon turas gach sia mìosan, agus bidh an còd agad air thoiseach sa chlas.

Mar sin, cuimhnich: tha Playbook na liosta anns a bheil cluich agus import_playbook.
Seo aon dealbh-chluich:

- hosts: group1
  roles:
    - role1

agus seo dealbh-chluich eile cuideachd:

- hosts: group2,group3
  tasks:
    - debug:

Dè th' ann an cluich? Carson a tha i?

Tha cluich na phrìomh eileamaid airson leabhar-cluiche, oir tha cluich agus cluich a-mhàin a’ ceangal liosta de dhleastanasan agus/no ghnìomhan le liosta de luchd-aoigheachd air am feumar an cur gu bàs. Ann an doimhneachd dhomhainn na sgrìobhainnean gheibhear iomradh air delegate_to, plugins lorg ionadail, suidheachaidhean lìonra-cli-sònraichte, luchd-aoigheachd leum, msaa. Leigidh iad leat beagan atharrachadh air an àite far a bheil gnìomhan air an coileanadh. Ach, dìochuimhnich mu dheidhinn. Tha cleachdaidhean sònraichte aig gach aon de na roghainnean glic sin, agus gu cinnteach chan eil iad uile-choitcheann. Agus tha sinn a 'bruidhinn mu dheidhinn rudan bunaiteach a bu chòir fios a bhith aig a h-uile duine agus a chleachdadh.

Ma tha thu airson “rudeigin” “an àiteigin” a dhèanamh, bidh thu a’ sgrìobhadh cluich. Chan e dreuchd. Chan e dreuchd le modalan agus riochdairean. Gabhaidh tu e agus sgrìobh thu cluich. Anns a bheil, anns an raon aoigheachd bidh thu a’ liostadh far an dèan thu gnìomh, agus ann an dreuchdan / gnìomhan - dè a nì thu.

Simple, ceart? Ciamar a dh’ fhaodadh e a bhith air dhòigh eile?

Is e aon de na h-amannan àbhaisteach nuair a tha miann aig daoine seo a dhèanamh chan ann tro chluich an “dreuchd a tha a’ suidheachadh a h-uile càil. ” Bu mhath leam dreuchd a bhith agam a bhios a’ rèiteachadh an dà chuid frithealaichean den chiad sheòrsa agus frithealaichean den dàrna seòrsa.

Is e eisimpleir archetypal sgrùdadh. Bu mhath leam dreuchd sgrùdaidh a bhith agam a rèiticheas sgrùdadh. Tha an dreuchd sgrùdaidh air a shònrachadh do luchd-aoigheachd sgrùdaidh (a rèir cluich). Ach tha e coltach gum feum sinn pasganan a lìbhrigeadh dha na h-aoighean air a bheil sinn a’ cumail sùil. Carson nach cleachd thu riochdaire? Feumaidh tu cuideachd iptables a rèiteachadh. riochdaire? Feumaidh tu cuideachd config a sgrìobhadh / a cheartachadh airson an DBMS gus sgrùdadh a dhèanamh comasach. riochdaire! Agus ma tha dìth cruthachalachd, faodaidh tu tiomnadh a dhèanamh include_role ann an lùb neadachaidh a 'cleachdadh criathrag duilich air liosta de bhuidhnean, agus a-staigh include_role faodaidh tu barrachd a dhèanamh delegate_to a-rithist. Agus air falbh tha sinn a 'dol ...

Miann math - aon dreuchd sgrùdaidh singilte a bhith againn, a bhios “a’ dèanamh a h-uile càil ”- gar stiùireadh gu ifrinn iomlan às nach eil ach aon dòigh a-mach mar as trice: a h-uile càil ath-sgrìobhadh bhon fhìor thoiseach.

Càite an do thachair am mearachd an seo? An àm a fhuair thu a-mach gum feumadh tu a dhol gu aoigheachd Y agus “y” a dhèanamh an sin airson gnìomh “x” a dhèanamh air an aoigh X, bha agad ri eacarsaich sìmplidh a dhèanamh: falbh agus sgrìobh cluich, a nì air an aoigh Y. Na cuir rudeigin ri "x", ach sgrìobh e bhon toiseach. Eadhon le caochladairean còd cruaidh.

Tha e coltach gu bheil a h-uile dad anns na paragrafan gu h-àrd air a ràdh ceart. Ach chan e seo do chùis! Leis gu bheil thu airson còd ath-chleachdadh a sgrìobhadh a tha DRY agus coltach ri leabharlann, agus feumaidh tu coimhead airson dòigh air mar a nì thu e.

Seo far a bheil mearachd mòr eile a’ tighinn am bàrr. Mearachd a thionndaidh mòran phròiseactan bho sgrìobhadh gu fulangach (dh’ fhaodadh e a bhith nas fheàrr, ach tha a h-uile dad ag obair agus tha e furasta a chrìochnachadh) gu bhith na uamhas iomlan nach urrainn eadhon an t-ùghdar obrachadh a-mach. Tha e ag obair, ach nar leigeadh Dia thu atharrachadh rud sam bith.

Is e a’ mhearachd: is e gnìomh leabharlainn a th’ ann an dreuchd. Tha an samhlachas seo air uimhir de thoiseach tòiseachaidh a mhilleadh gu bheil e duilich a bhith a’ coimhead. Chan e gnìomh leabharlainn a tha san dreuchd. Chan urrainn dhi àireamhachadh a dhèanamh agus chan urrainn dhi co-dhùnaidhean ìre cluiche a dhèanamh. Cuimhnich dhomh dè na co-dhùnaidhean a bhios cluich a’ dèanamh?

Mòran taing, tha thu ceart. Bidh cluich a’ tighinn gu co-dhùnadh (nas mionaidiche, tha fiosrachadh ann) mu na gnìomhan agus na dreuchdan a bu chòir a dhèanamh air dè na h-aoighean.

Ma bheir thu an co-dhùnadh seo gu dreuchd, agus eadhon le àireamhachadh, bidh thu a’ dèanamh cron ort fhèin (agus am fear a dh’ fheuchas ri do chòd a pharsadh) gu beatha thruagh. Chan eil an dreuchd a’ co-dhùnadh càite an tèid a choileanadh. Tha an co-dhùnadh seo air a dhèanamh le cluich. Bidh an dreuchd a’ dèanamh na chaidh innse dha, far an tèid innse dha.

Carson a tha e cunnartach prògramadh ann an Ansible agus carson a tha COBOL nas fheàrr na Ansible bruidhnidh sinn sa chaibideil mu chaochladairean agus jinja. Airson a-nis, canaidh sinn aon rud - bidh gach àireamhachadh a’ fàgail cùl do-sheachanta de dh’ atharrachaidhean ann an caochladairean cruinne, agus chan urrainn dhut dad a dhèanamh mu dheidhinn. Cho luath ‘s a chaidh an dà“ lorg ”eadar a chèile, dh’ fhalbh a h-uile càil.

Nota airson an squeamish: faodaidh an t-àite gu cinnteach buaidh a thoirt air an t-sruth smachd. Ith delegate_to agus tha feuman reusanta aige. Ith meta: end host/play. Ach! Cuimhnich gu bheil sinn a 'teagasg na bunaitean? Air dearmad delegate_to. Tha sinn a 'bruidhinn mun chòd Ansible as sìmplidh agus as brèagha. A tha furasta a leughadh, furasta a sgrìobhadh, furasta a dheasbad, furasta a dhearbhadh agus furasta a chrìochnachadh. Mar sin, a-rithist:

cluich is cluich a-mhàin a bhios a’ co-dhùnadh cò aig a bheil na thèid a chur gu bàs.

Anns an earrainn seo, dhèilig sinn ris a’ chonnspaid eadar cluich agus dreuchd. A-nis bruidhnidh sinn mu na gnìomhan vs dàimh dreuchd.

Dleastanasan agus Dleastanasan

Beachdaich air cluich:

- hosts: somegroup
  pre_tasks:
    - some_tasks1:
  roles:
     - role1
     - role2
  post_tasks:
     - some_task2:
     - some_task3:

Canaidh sinn gum feum thu foo a dhèanamh. Agus tha e coltach foo: name=foobar state=present. Càite am bu chòir dhomh seo a sgrìobhadh? ann an ro-? post? Cruthaich dreuchd?

...Agus càite an deach na gnìomhan?

Tha sinn a’ tòiseachadh leis na bunaitean a-rithist - an inneal cluiche. Ma chuireas tu air bhog air a’ chùis seo, chan urrainn dhut cluich a chleachdadh mar bhunait airson a h-uile càil eile, agus bidh an toradh agad “critheach”.

Inneal cluiche: a’ cumail stiùireadh, roghainnean airson a chluich fhèin agus ro-tasgannan, gnìomhan, dreuchdan, earrannan post_tasks. Chan eil na crìochan a tha air fhàgail airson cluich cudromach dhuinn a-nis.

Òrdugh nan earrannan aca le gnìomhan agus dreuchdan: pre_tasks, roles, tasks, post_tasks. Leis gu bheil an òrdugh cur gu bàs eadar semantach tasks и roles chan eil e soilleir, mar sin tha na cleachdaidhean as fheàrr ag ràdh gu bheil sinn a’ cur earrann ris tasks, a-mhàin mura h-eil roles... Ma tha roles, an uairsin tha na gnìomhan ceangailte uile air an cur ann an earrannan pre_tasks/post_tasks.

Chan eil air fhàgail ach gu bheil a h-uile dad soilleir gu semantach: an toiseach pre_tasksan uairsin rolesan uairsin post_tasks.

Ach chan eil sinn fhathast air a’ cheist a fhreagairt: càite a bheil gairm a’ mhodal? foo sgrìobhadh? Am feum sinn dreuchd slàn a sgrìobhadh airson gach modal? No a bheil e nas fheàrr àite tiugh a bhith agad airson a h-uile càil? Agus mura h-eil dreuchd ann, càite am bu chòir dhomh sgrìobhadh - ro-làimh no post?

Mura h-eil freagairt reusanta ann dha na ceistean sin, tha seo na chomharradh air dìth intuition, is e sin, na h-aon “bunaitichean crathaidh.” Feuch an dèan sinn a-mach e. An toiseach, ceist tèarainteachd: Ma tha cluich pre_tasks и post_tasks (agus chan eil gnìomhan no dreuchdan ann), faodaidh rudeigin briseadh ma nì mi a’ chiad obair post_tasks Gluaisidh mi e gu deireadh pre_tasks?

Gu dearbh, tha briathrachas na ceiste ag innse gum bris i. Ach dè dìreach?

... Làimhseachadh. Tha a bhith a’ leughadh na bunaitean a’ nochdadh fìrinn chudromach: tha gach làimhseachadh air a shruthladh gu fèin-ghluasadach às deidh gach earrann. An fheadhainn sin. a h-uile gnìomh bho pre_tasks, an uair sin a h-uile luchd-làimhseachaidh a fhuair fios. An uairsin tha a h-uile dreuchd agus a h-uile neach-làimhseachaidh a fhuair fios anns na dreuchdan air an cur gu bàs. Às deidh post_tasks agus an luchd-làimhseachaidh.

Mar sin, ma tharraing thu gnìomh bho post_tasks в pre_tasks, an uairsin is dòcha gun cuir thu an gnìomh e mus tèid an neach-làimhseachaidh a chuir gu bàs. mar eisimpleir, ma tha e ann pre_tasks tha am frithealaiche lìn air a stàladh agus air a rèiteachadh, agus post_tasks thèid rudeigin a chuir thuige, an uairsin gluais an obair seo chun roinn pre_tasks Bidh seo a’ ciallachadh nach bi am frithealaiche fhathast a’ ruith aig àm “cur” agus brisidh a h-uile càil.

A-nis smaoinich sinn a-rithist, carson a tha feum againn pre_tasks и post_tasks? Mar eisimpleir, gus a h-uile dad a tha riatanach a choileanadh (a 'gabhail a-steach luchd-làimhseachaidh) mus tèid an dreuchd a choileanadh. A post_tasks leigidh sinn leinn obrachadh le toraidhean dreuchdan cur an gnìomh (a’ gabhail a-steach luchd-làimhseachaidh).

Innsidh eòlaiche seòlta Ansible dhuinn dè a th’ ann. meta: flush_handlers, ach carson a tha feum againn air flush_handlers mas urrainn dhuinn a bhith an urra ri òrdugh cur gu bàs earrannan ann an cluich? A bharrachd air an sin, faodaidh cleachdadh meta: flush_handlers rudan ris nach robh dùil a thoirt dhuinn le làimhseachadh dùblaichte, a’ toirt rabhaidhean neònach dhuinn nuair a thèid an cleachdadh when у block etc. Mar as fheàrr a bhios fios agad air na tha iomchaidh, is ann as motha de nuances as urrainn dhut ainmeachadh airson fuasgladh “duilich”. Agus chan eil fuasgladh sìmplidh – a’ cleachdadh sgaradh nàdarra eadar ro-ròl/dreuchdan/post – ag adhbhrachadh nuances.

Agus, air ais gu ar 'foo'. Càite am bu chòir dhomh a chuir? Ann an ro-, dreuchd no dreuchdan? Gu follaiseach, tha seo an urra ri co-dhiù a tha feum againn air toraidhean an neach-làimhseachaidh airson foo. Mura h-eil iad ann, chan fheum foo a bhith air a chuir an dàrna cuid ro no post - tha brìgh sònraichte aig na h-earrannan sin - a’ coileanadh ghnìomhan ro agus às deidh a’ phrìomh bhuidheann de chòd.

A-nis tha am freagairt don cheist "dleastanas no gnìomh" a 'tighinn sìos gu na tha ann mar-thà - ma tha gnìomhan ann, feumaidh tu an cur ris na gnìomhan. Ma tha dreuchdan ann, feumaidh tu àite a chruthachadh (eadhon bho aon ghnìomh). Leig leam do chuimhneachadh nach eilear a’ cleachdadh gnìomhan agus dreuchdan aig an aon àm.

Tha tuigse air bunaitean Ansible a’ toirt seachad freagairtean reusanta do cheistean blas a tha coltach.

Gnìomhan agus dreuchdan (pàirt a dhà)

A-nis bruidhnidh sinn mun t-suidheachadh nuair a tha thu dìreach a’ tòiseachadh a’ sgrìobhadh leabhar-cluiche. Feumaidh tu foo, bar agus baz a dhèanamh. An e na trì gnìomhan seo, aon dreuchd no trì dreuchdan? Gus geàrr-chunntas a dhèanamh air a 'cheist: dè an ìre a bu chòir dhut tòiseachadh air dreuchdan a sgrìobhadh? Dè an adhbhar a th’ ann a bhith a’ sgrìobhadh ròl nuair as urrainn dhut gnìomhan a sgrìobhadh?... Dè a th’ ann an dreuchd?

Is e aon de na mearachdan as motha (bhruidhinn mi mu dheidhinn seo mu thràth) a bhith a’ smaoineachadh gu bheil dreuchd coltach ri gnìomh ann an leabharlann prògram. Cò ris a tha tuairisgeul gnìomh coitcheann coltach? Bidh e a’ gabhail ri argamaidean cuir a-steach, ag eadar-obrachadh le taobh adhbharan, a’ dèanamh frith-bhuaidhean, agus a’ tilleadh luach.

A-nis, aire. Dè ghabhas dèanamh bho seo san dreuchd? Tha fàilte oirbh an-còmhnaidh fo-bhuaidhean a ghairm, is e seo brìgh an iomlan Ansible - gus frith-bhuaidhean a chruthachadh. A bheil adhbharan taobh agad? Bun-sgoile. Ach le “cuir seachad luach agus thoir air ais e” - sin far nach obraich e. An toiseach, chan urrainn dhut luach a thoirt do dhreuchd. Faodaidh tu caochladair cruinne a shuidheachadh le meud beatha de chluich anns an roinn vars airson na dreuchd. Faodaidh tu caochladair cruinne a shuidheachadh le beatha ann an cluich taobh a-staigh na dreuchd. No eadhon le beatha leabhraichean-cluiche (set_fact/register). Ach chan urrainn dhut “caochladairean ionadail” a bhith agad. Chan urrainn dhut "luach a ghabhail" agus "a thilleadh".

Tha am prìomh rud a’ leantainn bho seo: chan urrainn dhut rudeigin a sgrìobhadh ann an Ansible gun a bhith ag adhbhrachadh frith-bhuaidhean. Tha atharrachadh caochladairean cruinne an-còmhnaidh na taobh-bhuaidh airson gnìomh. Ann an Rust, mar eisimpleir, tha atharrachadh caochlaideach cruinneil unsafe. Agus ann an Ansible is e an aon dòigh air buaidh a thoirt air luachan airson dreuchd. Thoir an aire do na faclan a thathar a’ cleachdadh: chan e “cuir luach don dreuchd”, ach “atharraich na luachan a bhios an dreuchd a’ cleachdadh”. Chan eil dealachadh eadar dreuchdan. Chan eil dealachadh eadar gnìomhan agus dreuchdan.

Iomlan: chan e gnìomh a th’ ann an dreuchd.

Dè tha math mun dreuchd? An toiseach, tha luachan bunaiteach aig an dreuchd (/default/main.yaml), san dàrna àite, tha clàran a bharrachd aig an dreuchd airson faidhlichean a stòradh.

Dè na buannachdan a tha aig luachan bunaiteach? Leis gu bheil ann am pioramaid Maslow, clàr caran diofraichte Ansible de phrìomhachasan caochlaideach, is e easbhaidhean dreuchd am prìomhachas as ìsle (às aonais crìochan loidhne-àithne Ansible). Tha seo a’ ciallachadh ma dh’fheumas tu luachan bunaiteach a thoirt seachad agus gun a bhith draghail mun deidhinn a’ dol thairis air na luachan bho chaochladairean clàr-seilbhe no buidhne, is e easbhaidhean dreuchd an aon àite cheart dhut. (Tha mi a 'laighe beagan - tha barrachd ann |d(your_default_here), ach ma bhios sinn a’ bruidhinn mu dheidhinn àiteachan pàipearachd, an uairsin dìreach easbhaidhean dreuchd).

Dè eile a tha math mu na dreuchdan? Leis gu bheil na catalogan aca fhèin. Tha iad sin nan clàran airson caochladairean, an dà chuid seasmhach (ie air an tomhas airson na dreuchd) agus fiùghantach (tha pàtran no pàtran an-aghaidh - include_vars còmhla ri {{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml.). Is iad seo na clàran airson files/, templates/. Cuideachd, leigidh e leat na modalan agus na plugins agad fhèin a bhith agad (library/). Ach, an coimeas ri gnìomhan ann an leabhar-cluiche (a dh'fhaodas seo a bhith aig a h-uile càil), is e an aon bhuannachd an seo nach eil na faidhlichean air an dumpadh ann an aon chrann, ach grunn chlachan fa leth.

Aon mion-fhiosrachadh eile: faodaidh tu feuchainn ri dreuchdan a chruthachadh a bhios rim faighinn airson ath-chleachdadh (tro galaxy). Le teachd cruinneachaidhean, faodar beachdachadh air cuairteachadh dreuchd cha mhòr air a dhìochuimhneachadh.

Mar sin, tha dà fheart cudromach aig dreuchdan: tha roghainnean bunaiteach aca (feart sònraichte) agus leigidh iad leat do chòd a structaradh.

A 'tilleadh chun a' cheist thùsail: cuin a nì thu gnìomhan agus cuin a nì thu dreuchdan? Bidh gnìomhan ann an leabhar-cluiche air an cleachdadh gu tric mar “glue” ro / às deidh dreuchdan, no mar eileamaid togail neo-eisimeileach (mar sin cha bu chòir dreuchdan sam bith a bhith sa chòd). Tha dòrlach de ghnìomhan àbhaisteach measgaichte le dreuchdan nan sloppiness gun teagamh. Bu chòir dhut cumail ri stoidhle sònraichte - an dàrna cuid gnìomh no dreuchd. Bidh dreuchdan a’ toirt seachad sgaradh eadar aonadan agus easbhaidhean, leigidh gnìomhan leat còd a leughadh nas luaithe. Mar as trice, bidh còd nas “stadach” (cudromach agus iom-fhillte) air a chuir ann an dreuchdan, agus tha sgriobtaichean taice air an sgrìobhadh ann an stoidhle gnìomh.

Tha e comasach import_role a dhèanamh mar ghnìomh, ach ma sgrìobhas tu seo, bi deiseil airson mìneachadh don mhothachadh agad fhèin air bòidhchead carson a tha thu airson seo a dhèanamh.

Faodaidh leughadair seòlta a ràdh gum faod dreuchdan dreuchdan a thoirt a-steach, faodaidh dreuchdan a bhith an eisimeil tro galaxy.yml, agus tha cùis uamhasach agus uamhasach ann cuideachd. include_role — Tha mi gad chuimhneachadh gu bheil sinn a’ leasachadh sgilean ann an Ansible bunaiteach, agus chan ann ann an lùth-chleasachd figear.

Luchd-làimhseachaidh agus gnìomhan

Bruidhnidh sinn air rud follaiseach eile: luchd-làimhseachaidh. Cha mhòr gur e ealain a th’ ann a bhith eòlach air mar a chleachdas tu iad gu ceart. Dè an diofar eadar inneal-làimhseachaidh agus tarraing?

Leis gu bheil sinn a 'cuimhneachadh air na bunaitean, seo eisimpleir:

- hosts: group1
  tasks:
    - foo:
      notify: handler1
  handlers:
     - name: handler1
       bar:

Tha luchd-làimhseachaidh na dreuchd suidhichte ann an rolename/handlers/main.yaml. Bidh luchd-làimhseachaidh a’ gluasad eadar a h-uile com-pàirtiche cluiche: faodaidh pre/post_tasks luchd-làimhseachaidh dreuchd a tharraing, agus faodaidh dreuchd luchd-làimhseachaidh a tharraing bhon dealbh-chluich. Ach, tha gairmean “tar-ròl” gu luchd-làimhseachaidh ag adhbhrachadh tòrr a bharrachd wtf na bhith ag ath-aithris inneal-làimhseachaidh beag. (Is e eileamaid eile de na cleachdaidhean as fheàrr feuchainn gun a bhith ag ath-aithris ainmean làimhseachaidh).

Is e am prìomh eadar-dhealachadh gu bheil an gnìomh an-còmhnaidh air a chuir gu bàs (gu neo-chomasach) (tagaichean plus / minus agus when), agus an neach-làimhseachaidh - le atharrachadh stàite (cuir fios gu teintean a-mhàin ma tha e air atharrachadh). Dè tha seo a' ciallachadh? Mar eisimpleir, nuair a thòisicheas tu a-rithist, mura h-eil atharrachadh ann, cha bhi inneal-làimhseachaidh ann. Carson a dh’ fhaodadh gum feum sinn inneal-làimhseachaidh a chuir an gnìomh nuair nach robh atharrachadh sam bith san obair gineadh? Mar eisimpleir, a chionn 's gu bheil rudeigin a' briseadh agus ag atharrachadh, ach cha do ràinig an gnìomh an neach-làimhseachaidh. Mar eisimpleir, leis gu robh an lìonra sìos airson ùine. Tha an rèiteachadh air atharrachadh, cha deach an t-seirbheis ath-thòiseachadh. An ath thuras a thòisicheas tu air, chan atharraich an config tuilleadh, agus bidh an t-seirbheis fhathast leis an t-seann dreach den config.

Chan urrainnear an suidheachadh leis an config fhuasgladh (nas mionaidiche, faodaidh tu protocol ath-thòiseachadh sònraichte a chruthachadh dhut fhèin le brataichean faidhle, msaa, ach chan eil seo tuilleadh ‘bunaiteach neo-chomasach’ ann an cruth sam bith). Ach tha sgeulachd cumanta eile ann: chuir sinn a-steach an tagradh, chlàraich sinn e .service-file, agus a-nis tha sinn ga iarraidh daemon_reload и state=started. Agus tha e coltach gur e an t-àite nàdarra airson seo an neach-làimhseachaidh. Ach ma nì thu nach e inneal-làimhseachaidh a th’ ann ach gnìomh aig deireadh liosta gnìomh no dreuchd, thèid a chuir gu bàs gu neo-chomasach a h-uile turas. Eadhon ged a bhris an leabhar-cluiche sa mheadhan. Cha bhith seo a’ fuasgladh na duilgheadas ath-thòiseachadh idir (chan urrainn dhut gnìomh a dhèanamh leis a’ fheart ath-thòiseachaidh, leis gu bheil neo-chomasachd air chall), ach gu cinnteach is fhiach e state = air tòiseachadh, tha seasmhachd iomlan leabhraichean-cluiche ag àrdachadh, oir tha an àireamh de cheanglaichean agus staid fiùghantach a’ dol sìos.

Is e feart adhartach eile den inneal-làimhseachaidh nach eil e a’ dùnadh an toraidh. Cha robh atharrachaidhean sam bith ann - cha deach sgiobadh a bharrachd no ceart gu leòr san toradh - na b’ fhasa a leughadh. Tha e cuideachd na sheilbh àicheil - ma lorgas tu typo ann an gnìomh sreathach air a chuir gu bàs sa chiad dol-a-mach, cha tèid an luchd-làimhseachaidh a chuir gu bàs ach nuair a thèid an atharrachadh, i.e. fo chuid de shuidheachaidhean - glè ainneamh. Mar eisimpleir, airson a 'chiad uair nam bheatha còig bliadhna an dèidh sin. Agus, gu dearbh, bidh typo san ainm agus brisidh a h-uile càil. Agus mura ruith thu iad an dàrna turas, chan eil atharrachadh ann.

Air leth, feumaidh sinn bruidhinn mu na tha ri fhaighinn de chaochladairean. Mar eisimpleir, ma chuireas tu fios gu gnìomh le lùb, dè a bhios anns na caochladairean? Faodaidh tu tomhas gu anailiseach, ach chan eil e an-còmhnaidh beag, gu sònraichte ma thig na caochladairean bho dhiofar àiteachan.

... Mar sin tha luchd-làimhseachaidh mòran nas lugha feumail agus mòran nas duilghe na tha iad coltach. Mas urrainn dhut rudeigin a sgrìobhadh gu brèagha (gun frills) gun luchd-làimhseachaidh, tha e nas fheàrr a dhèanamh às an aonais. Mura obraich e a-mach gu breagha, tha e nas fheàrr leotha.

Tha an leughadair creimneach gu ceart a’ comharrachadh nach do bhruidhinn sinn listengum faod neach-làimhseachaidh fios a chuir gu neach-làimhseachaidh eile, gum faod neach-làimhseachaidh import_tasks (a dh’ fhaodadh a bhith a ’toirt a-steach_role le with_items), gu bheil an siostam làimhseachaidh ann an Ansible Turing-complete, gum bi luchd-làimhseachaidh bho include_role a’ trasnadh ann an dòigh neònach le luchd-làimhseachaidh bho chluich, etc .d. - tha e soilleir nach e seo na “bunaitean”).

Ged a tha aon WTF sònraichte ann a tha dha-rìribh na fheart a dh’ fheumas tu a chumail nad inntinn. Ma thèid an obair agad a choileanadh le delegate_to agus tha e air fios a chuir, an uairsin thèid an inneal-làimhseachaidh co-fhreagarrach a chuir gu bàs às aonais delegate_to, i.e. air an aoigh far a bheil cluich air a shònrachadh. (Ged a dh’ fhaodadh a bhith aig an neach-làimhseachaidh, gu dearbh delegate_to An aon rud).

Air leth, tha mi airson beagan fhaclan a ràdh mu dhreuchdan ath-chleachdadh. Mus do nochd cruinneachaidhean, bha beachd ann gum faodadh tu dreuchdan uile-choitcheann a dhèanamh a dh'fhaodadh a bhith ansible-galaxy install agus chaidh. Ag obair air a h-uile OS de gach caochladh anns a h-uile suidheachadh. Mar sin, mo bheachd: chan eil e ag obair. Dreuchd sam bith le tomad include_vars, a’ toirt taic do 100500 cùis, air a mhaslachadh gu dubhagan nam biastagan cùise oisean. Faodaidh iad a bhith air an còmhdach le deuchainnean mòra, ach mar a tha le deuchainn sam bith, an dàrna cuid tha toradh Cartesianach de luachan cuir a-steach agus gnìomh iomlan, no tha “suidheachaidhean fa-leth còmhdaichte.” Is e mo bheachd gu bheil e tòrr nas fheàrr ma tha an dreuchd sreathach (iom-fhillteachd cyclomatic 1).

Mar as lugha de ifs (follaiseach no dearbhach - anns an fhoirm when no foirm include_vars le seata de chaochladairean), mar as fheàrr an dreuchd. Uaireannan feumaidh tu geugan a dhèanamh, ach, bidh mi ag ath-aithris, mar as lugha a tha ann, is ann as fheàrr. Mar sin tha e coltach gu bheil àite math ann le galaxy (bidh e ag obair!) Le dòrlach de when dh’ fhaodadh a bhith nas fheàrr na dreuchd “neach fhèin” bho chòig gnìomhan. Is e an àm nuair a tha an dreuchd le galaxy nas fheàrr nuair a thòisicheas tu a’ sgrìobhadh rudeigin. Is e an àm nuair a dh’ fhàsas e nas miosa nuair a bhriseas rudeigin agus gu bheil amharas agad gu bheil e air sgàth “dreuchd le galaxy”. Bidh thu ga fhosgladh, agus tha còig in-ghabhail ann, ochd duilleagan gnìomh agus stac when'Ov... Agus feumaidh sinn seo obrachadh a-mach. An àite 5 gnìomhan, liosta sreathach anns nach eil dad ri bhriseadh.

Anns na pàirtean a leanas

  • Beagan mu dheidhinn clàr-seilbhe, caochladairean buidhne, plugan host_group_vars, hostvars. Mar a cheanglas tu snaidhm Gordian le spaghetti. Caochladairean farsaingeachd agus prìomhachas, Modail cuimhne iomchaidh. “Mar sin càite an glèidh sinn ainm-cleachdaidh an stòr-dàta?”
  • jinja: {{ jinja }} - plastag bog sròn notype nosql. Tha e anns a h-uile àite, eadhon far nach eil dùil agad ris. Beagan mu dheidhinn !!unsafe agus iaml blasta.

Source: www.habr.com

Cuir beachd ann