Abubuwan da za a iya yiwuwa, idan ba tare da wanda littattafan wasanku za su zama dunƙulen taliya mai ɗaki ba

Ina yin bita da yawa na lambar da za a iya yiwuwa na wasu kuma na rubuta da yawa da kaina. A cikin nazarin kurakurai (na sauran mutane da na kaina), da kuma wasu tambayoyi da yawa, na gane babban kuskuren da masu amfani da Asible suka yi - suna shiga cikin abubuwa masu rikitarwa ba tare da sanin ainihin ainihin ba.

Don gyara wannan zalunci na duniya, na yanke shawarar rubuta gabatarwa ga Mai yiwuwa ga waɗanda suka rigaya sun san shi. Ina gargaɗe ku, wannan ba rebacin mutum ba ne, wannan dogon karantawa ne mai yawan haruffa ba hotuna.

Matsayin da ake tsammanin mai karatu shi ne cewa an riga an rubuta layukan yamla dubu da yawa, an riga an samar da wani abu, amma "ko ta yaya komai ya karkace."

Sunaye

Babban kuskuren da mai amfani zai iya yi shine rashin sanin abin da ake kira wani abu. Idan ba ku san sunayen ba, ba za ku iya fahimtar abin da takaddun ya ce ba. Misali mai rai: yayin hira, mutumin da ya yi kama da cewa ya rubuta da yawa a cikin Ansible ba zai iya amsa tambayar "waɗanne abubuwa ne littafin wasan kwaikwayo ya kunsa?" Kuma lokacin da na ba da shawarar cewa "ana sa ran amsar cewa littafin wasan kwaikwayo ya ƙunshi wasa," sharhi mai ban tsoro "ba mu amfani da wannan" ya biyo baya. Mutane suna rubuta Mai yiwuwa don kuɗi kuma ba sa amfani da wasa. A zahiri suna amfani da shi, amma ba su san menene ba.

Don haka bari mu fara da wani abu mai sauƙi: menene ake kira? Wataƙila kun san wannan, ko wataƙila ba ku sani ba, saboda ba ku kula ba lokacin da kuka karanta takaddun.

littafin wasa mai iya aiki yana aiwatar da littafin wasan. Littafin wasa fayil ne mai tsawo na yml/yaml, wanda a cikinsa akwai wani abu kamar haka:

---
- hosts: group1
  roles:
    - role1

- hosts: group2,group3
  tasks:
    - debug:

Mun riga mun gane cewa duk wannan fayil ɗin littafin wasa ne. Za mu iya nuna inda ayyuka suke da kuma inda ayyuka suke. Amma ina wasa? Kuma menene bambanci tsakanin wasan kwaikwayo da wasan kwaikwayo ko littafin wasan kwaikwayo?

Duk yana cikin takaddun. Kuma sun rasa shi. Masu farawa - saboda akwai da yawa kuma ba za ku tuna da komai a lokaci ɗaya ba. Kwarewa - saboda "abubuwa marasa mahimmanci". Idan kun ƙware, sake karanta waɗannan shafukan aƙalla sau ɗaya a kowane wata shida, kuma lambar ku za ta zama jagora.

Don haka, ku tuna: Littafin wasan kwaikwayo jerin ne wanda ya ƙunshi wasa da import_playbook.
Wannan wasa daya ne:

- hosts: group1
  roles:
    - role1

wannan kuma wani wasa ne:

- hosts: group2,group3
  tasks:
    - debug:

Menene wasa? Me yasa ita?

Wasa shine maɓalli mai mahimmanci don littafin wasan kwaikwayo, saboda wasa da wasa kawai yana haɗa jerin ayyuka da/ko ayyuka tare da jerin runduna waɗanda dole ne a kashe su. A cikin zurfin zurfin takardun za ku iya samun ambaton delegate_to, plugins neman gida, takamaiman saitunan cibiyar sadarwa-cli, rundunonin tsalle, da sauransu. Suna ba ka damar ɗan canza wurin da ake yin ayyuka. Amma, manta game da shi. Kowane ɗayan waɗannan zaɓuɓɓukan wayo suna da takamaiman amfani, kuma ba shakka ba na duniya bane. Kuma muna magana ne game da abubuwa na asali waɗanda kowa ya kamata ya sani kuma ya yi amfani da su.

Idan kana son yin “wani abu” “wani wuri”, ka rubuta wasa. Ba rawa ba. Ba rawar da kayayyaki da wakilai ba. Kuna ɗauka kuma ku rubuta wasa. A cikin abin da, a cikin filin runduna za ku jera inda za ku aiwatar, da kuma a cikin ayyuka/aiyuka - abin da za ku aiwatar.

Sauƙi, dama? Ta yaya zai kasance in ba haka ba?

Ɗaya daga cikin halayen halayen lokacin da mutane ke da sha'awar yin wannan ba ta hanyar wasa ba shine "rawar da ke tsara komai." Ina so in sami rawar da za ta daidaita duka sabobin nau'in farko da sabar nau'in na biyu.

Babban misali shine saka idanu. Ina so in sami aikin sa ido wanda zai daidaita sa ido. An sanya aikin sa ido ga masu sa ido (bisa ga wasa). Amma ya zama cewa don saka idanu muna buƙatar isar da fakitin ga rundunonin da muke sa ido. Me zai hana a yi amfani da wakilai? Hakanan kuna buƙatar saita iptables. wakilai? Hakanan kuna buƙatar rubuta/gyara saiti don DBMS don kunna saka idanu. wakilai! Kuma idan kerawa ya rasa, to, za ku iya yin wakilai include_role a cikin madauki na gida ta amfani da matattara mai wayo akan jerin ƙungiyoyi, da ciki include_role za ku iya yin ƙari delegate_to sake. Kuma mu tafi...

Kyakkyawan fata - don samun rawar saka idanu guda ɗaya, wanda "yana yin komai" - yana kai mu zuwa cikakkiyar jahannama wanda mafi yawan lokuta akwai hanya ɗaya kawai: sake rubuta komai daga karce.

A ina kuskure ya faru a nan? Lokacin da ka gano cewa don yin aiki "x" akan mai masaukin X dole ne ka je wurin Y kuma ka yi "y" a can, dole ne ka yi motsa jiki mai sauƙi: je ka rubuta wasa, wanda a kan mai masaukin Y ya yi y. Kada ka ƙara wani abu zuwa "x", amma rubuta shi daga karce. Ko da tare da madaidaicin madaidaicin.

Da alama duk abin da ke cikin sakin layi na sama an faɗi daidai. Amma wannan ba batun ku bane! Domin kana son rubuta lambar da za a sake amfani da ita wato DRY da kuma kamar laburare, kuma kana bukatar neman hanyar da za a yi.

Anan ne wani babban kuskure ya boye. Kuskuren da ya juya ayyuka da yawa daga rubuce-rubucen haƙuri (zai iya zama mafi kyau, amma duk abin da ke aiki kuma yana da sauƙin gamawa) zuwa cikakkiyar tsoro wanda ko marubucin ba zai iya gane shi ba. Yana aiki, amma Allah ya sa ku canza komai.

Kuskuren shine: rawar aikin laburare ne. Wannan kwatankwacin ya ɓata kyakkyawan farawa da yawa wanda abin baƙin ciki ne kawai a kalla. Matsayin ba aikin laburare bane. Ba za ta iya yin lissafi ba kuma ba za ta iya yanke shawarar matakin wasa ba. Tunatar da ni wane hukunci wasa ya yanke?

Na gode, kun yi gaskiya. Wasa yana yanke shawara (mafi daidai, yana ƙunshe da bayanai) game da waɗanne ayyuka da matsayin da za a yi akan waɗanne runduna.

Idan ka wakilta wannan shawarar zuwa ga rawar, kuma ko da tare da lissafi, ka halakar da kanka (da wanda zai yi ƙoƙari ya yi watsi da lambar ku) zuwa rayuwa mai wahala. Matsayin ba ya yanke shawarar inda aka yi shi. An yanke wannan shawarar ta hanyar wasa. Rawar tana yin abin da aka faɗa, inda aka faɗa.

Me ya sa yake da haɗari don tsara shirye-shirye a cikin Mai yiwuwa kuma me yasa COBOL ya fi Mai yiwuwa za mu yi magana a cikin babi game da masu canji da jinja. A yanzu, bari mu ce abu ɗaya - kowane lissafin ku ya bar bayan bayanan sauye-sauye na canje-canje a duniya, kuma ba za ku iya yin komai game da shi ba. Da zaran "biyu" biyu sun haɗu, komai ya ɓace.

Bayanan kula don squeamish: rawar zai iya rinjayar tasirin sarrafawa. Ku ci delegate_to kuma yana da amfani mai ma'ana. Ku ci meta: end host/play. Amma! Ka tuna muna koyar da asali? An manta da shi delegate_to. Muna magana ne game da mafi sauƙi kuma mafi kyawun lambar mai yiwuwa. Wanne yana da sauƙin karantawa, mai sauƙin rubutu, mai sauƙin gyarawa, sauƙin gwadawa da sauƙin kammalawa. Don haka, sake:

wasa kuma wasa kawai ke yanke shawarar ko wane runduna abin da aka kashe.

A wannan sashe, mun yi magana game da adawa tsakanin wasa da rawa. Yanzu bari muyi magana game da ayyuka da alaƙar rawar.

Ayyuka da Matsayi

Yi la'akari da wasa:

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

Bari mu ce kuna buƙatar yin foo. Kuma yana kama foo: name=foobar state=present. A ina zan rubuta wannan? in pre? post? Ƙirƙiri rawar?

...Kuma ina ayyukan suka tafi?

Muna sake farawa da kayan yau da kullun - na'urar wasan kwaikwayo. Idan kun yi iyo a kan wannan batu, ba za ku iya amfani da wasa a matsayin tushen komai ba, kuma sakamakonku zai zama "mai girgiza".

Na'urar kunnawa: jagorar runduna, saitunan wasan kanta da pre_tasks, ayyuka, matsayi, sassan post_tasks. Sauran sigogin wasa ba su da mahimmanci a gare mu a yanzu.

Tsarin sassansu tare da ayyuka da matsayi: pre_tasks, roles, tasks, post_tasks. Tun da ma'ana tsari na kisa yana tsakanin tasks и roles bai bayyana ba, to, mafi kyawun ayyuka sun ce muna ƙara sashe tasks, kawai in ba haka ba roles... Idan akwai roles, sannan duk ayyukan da aka haɗe ana sanya su a cikin sassan pre_tasks/post_tasks.

Abin da ya rage shi ne cewa komai a bayyane yake a fili: na farko pre_tasks, Sannan roles, Sannan post_tasks.

Amma har yanzu ba mu amsa tambayar ba: ina kiran module? foo rubuta? Shin muna buƙatar rubuta gabaɗayan rawar ga kowane tsari? Ko kuwa yana da kyau a sami rawar gani mai kauri ga komai? Idan kuma ba rawar ba, to a ina zan rubuta - a gaba ko post?

Idan ba a sami amsa mai ma'ana ga waɗannan tambayoyin ba, to wannan alama ce ta rashin hankali, wato, waɗannan “tushe masu girgiza”. Bari mu gane shi. Na farko, tambayar tsaro: Idan wasa yana da pre_tasks и post_tasks (kuma babu ayyuka ko matsayi), to wani abu zai iya karya idan na yi aikin farko daga post_tasks Zan motsa shi zuwa ƙarshe pre_tasks?

Tabbas, lafazin tambayar yana nuni da cewa zai karye. Amma menene ainihin?

... Masu kulawa. Karatun abubuwan yau da kullun yana bayyana wata muhimmiyar hujja: duk masu gudanar da aikin ana goge su ta atomatik bayan kowane sashe. Wadancan. duk ayyuka daga pre_tasks, sannan duk masu kula da aka sanar da su. Sa'an nan kuma an aiwatar da duk ayyukan da duk masu gudanar da aikin da aka sanar da su a cikin ayyukan. Bayan post_tasks da masu gudanar da su.

Don haka, idan ka ja aiki daga post_tasks в pre_tasks, to mai yiwuwa za ku aiwatar da shi kafin a kashe mai sarrafa. misali, idan in pre_tasks an shigar kuma an saita sabar gidan yanar gizon, kuma post_tasks an aika wani abu zuwa gare shi, sannan a tura wannan aikin zuwa sashin pre_tasks zai haifar da gaskiyar cewa a lokacin "aika" uwar garken ba zai ci gaba da gudana ba kuma duk abin da zai karya.

Yanzu bari mu sake tunani, me yasa muke bukata pre_tasks и post_tasks? Misali, don kammala duk abin da ya dace (ciki har da masu sarrafa) kafin cika aikin. A post_tasks zai ba mu damar yin aiki tare da sakamakon aiwatar da ayyuka (ciki har da masu kulawa).

Masanin ƙwararrun ƙwararrun ƙwararru zai gaya mana menene. meta: flush_handlers, amma me yasa muke buƙatar flush_handlers idan za mu iya dogara da oda na aiwatar da sassan cikin wasa? Haka kuma, amfani da meta: flush_handlers na iya ba mu abubuwan da ba zato ba tsammani tare da masu sarrafa kwafi, suna ba mu gargaɗin ban mamaki lokacin amfani da su. when у block da dai sauransu. Mafi kyawun sanin abin da za a iya, yawancin nuances da za ku iya ba da suna don mafita "mai hankali". Kuma mafita mai sauƙi - ta yin amfani da rarrabuwar yanayi tsakanin pre/rawarori / post - baya haifar da nuances.

Kuma, koma ga 'foo' na mu. A ina zan saka shi? A pre, post ko matsayin? Babu shakka, wannan ya dogara da ko muna buƙatar sakamakon mai sarrafa don foo. Idan ba su nan, to, foo baya buƙatar sanya shi a cikin ko dai pre ko post - waɗannan sassan suna da ma'ana ta musamman - aiwatar da ayyuka kafin da bayan babban tsarin lambar.

Yanzu amsar tambayar "rawar ko aiki" ta zo zuwa ga abin da ke cikin wasa - idan akwai ayyuka a can, to kuna buƙatar ƙara su zuwa ayyuka. Idan akwai ayyuka, kuna buƙatar ƙirƙirar rawar (har ma daga ɗawainiya ɗaya). Bari in tunatar da ku cewa ba a amfani da ayyuka da ayyuka a lokaci guda.

Fahimtar tushen abubuwan da ake iya ba da amsoshi masu ma'ana ga ga alama tambayoyin dandano.

Aiyuka da matsayin (Kashi na biyu)

Yanzu bari mu tattauna halin da ake ciki lokacin da kake fara rubuta littafin wasan kwaikwayo. Kuna buƙatar yin foo, bar da baz. Shin wadannan ayyuka guda uku ne, rawa daya ko guda uku? Don taƙaita tambayar: a wane lokaci ya kamata ku fara rubuta ayyuka? Menene ma'anar rubuta matsayi yayin da za ku iya rubuta ayyuka?... Menene rawar?

Ɗaya daga cikin manyan kurakurai (na riga na yi magana game da wannan) shine tunanin cewa rawar kamar aiki ne a cikin ɗakin karatu na shirin. Menene kwatancen aikin gama gari yayi kama? Yana karɓar gardamar shigarwa, hulɗa tare da dalilai na gefe, yana yin illa, kuma yana dawo da ƙima.

Yanzu, hankali. Menene za a iya yi daga wannan a cikin rawar? Koyaushe ana maraba da ku don kiran sakamako masu illa, wannan shine jigon duka Mai yiwuwa - don ƙirƙirar sakamako masu illa. Kuna da dalilai na gefe? Elementary. Amma tare da "wuce darajar kuma mayar da shi" - a nan ne ba ya aiki. Na farko, ba za ku iya ƙaddamar da ƙima zuwa matsayi ba. Kuna iya saita ma'auni na duniya tare da girman rayuwa a cikin sashin vars don rawar. Kuna iya saita sauyi na duniya tare da rayuwar rayuwa a cikin rawar. Ko ma tare da rayuwar littattafan wasan kwaikwayo (set_fact/register). Amma ba za ku iya samun "masu canjin gida ba". Ba za ku iya "ɗaukar ƙima" da "dawo da ita ba".

Babban abu ya biyo baya daga wannan: ba za ku iya rubuta wani abu a cikin Ansible ba tare da haifar da illa ba. Canza masu canjin duniya koyaushe sakamako ne na gefe don aiki. A cikin Rust, alal misali, canza canjin duniya shine unsafe. Kuma a cikin Mai yiwuwa ita ce kawai hanyar da za ta tasiri dabi'u don rawar. Ka lura da kalmomin da aka yi amfani da su: ba "ba da ƙima ga rawar ba", amma "canza dabi'un da rawar ke amfani da ita". Babu keɓewa tsakanin ayyuka. Babu ware tsakanin ayyuka da matsayi.

Jimlar: rawar ba aiki ba ne.

Menene kyau game da rawar? Na farko, rawar tana da ƙima mara kyau (/default/main.yaml), na biyu, aikin yana da ƙarin kundayen adireshi don adana fayiloli.

Menene fa'idodin dabi'u na asali? Domin a cikin dala na Maslow, Teburin karkatattun abubuwan da suka fi dacewa da Ansible's, gazawar rawar aiki sune mafi ƙarancin fifiko (a debe sigogin layin umarni). Wannan yana nufin cewa idan kuna buƙatar samar da ƙimar da ba ta dace ba kuma kada ku damu da su kawar da ƙima daga ƙididdigewa ko masu canji na rukuni, to gazawar rawar ita ce kawai wurin da ya dace a gare ku. (Ina kwance kadan - akwai ƙari |d(your_default_here), amma idan muka yi magana game da wuraren tsaitsaye, to kawai gazawar rawa).

Menene kuma mai girma game da matsayin? Domin suna da kasidarsu. Waɗannan kundayen adireshi ne don masu canji, duka akai-akai (watau ƙididdigewa don rawar) da ƙarfi (akwai ko dai wani tsari ko wani tsari - include_vars tare da {{ ansible_distribution }}-{{ ansible_distribution_major_version }}.yml.). Waɗannan su ne kundayen adireshi don files/, templates/. Hakanan, yana ba ku damar samun naku kayayyaki da plugins (library/). Amma, idan aka kwatanta da ayyuka a cikin littafin wasan kwaikwayo (wanda kuma zai iya samun wannan duka), fa'idar kawai a nan ita ce, ba a zubar da fayilolin a cikin tari ɗaya ba, amma tari daban-daban.

Ɗayan ƙarin daki-daki: zaku iya ƙoƙarin ƙirƙirar ayyukan da za su kasance don sake amfani da su (ta hanyar galaxy). Tare da zuwan tarin, ana iya la'akari da rarraba rawar da aka kusan manta.

Don haka, ayyuka suna da mahimman fasali guda biyu: suna da abubuwan da ba a iya amfani da su ba (wani fasali na musamman) kuma suna ba ku damar tsara lambar ku.

Komawa ga ainihin tambayar: yaushe za a yi ayyuka da kuma lokacin da za a yi ayyuka? Yawancin ayyuka a cikin littafin wasan kwaikwayo ana amfani da su ko dai a matsayin "manne" kafin/bayan matsayi, ko a matsayin ginin gini mai zaman kansa (to kada a sami wani matsayi a cikin lambar). Tarin ayyuka na yau da kullun gauraye da matsayi shine rashin tabbas. Ya kamata ku bi wani takamaiman salo - ko dai ɗawainiya ko rawa. Matsayin yana ba da rarrabuwar mahalli da rashin daidaituwa, ayyuka suna ba ku damar karanta lambar da sauri. Yawancin lokaci, ana shigar da ƙarin lambar "tsaye" (mahimmanci da hadaddun) a cikin matsayi, kuma an rubuta rubutun taimako cikin salon ɗawainiya.

Yana yiwuwa a yi import_role a matsayin ɗawainiya, amma idan kun rubuta wannan, to ku kasance cikin shiri don bayyana ma'anar kyawun ku dalilin da yasa kuke son yin wannan.

Mai karatu mai basira na iya cewa ayyuka na iya shigo da ayyuka, ayyuka na iya samun dogaro ta hanyar galaxy.yml, kuma akwai kuma muni mai muni. include_role - Ina tunatar da ku cewa muna haɓaka ƙwarewa a cikin asali mai yiwuwa, kuma ba a cikin gymnastics na adadi ba.

Masu kulawa da ayyuka

Bari mu tattauna wani abu bayyananne: masu aiki. Sanin yadda ake amfani da su daidai shine kusan fasaha. Menene bambanci tsakanin mai sarrafawa da ja?

Tunda muna tunawa da abubuwan yau da kullun, ga misali:

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

Masu gudanar da aikin suna cikin suna/masu kulawa/main.yaml. Masu gudanar da wasan suna yin jita-jita tsakanin duk mahalarta wasan: pre/post_tasks na iya jawo masu gudanar da aikin, kuma rawar na iya jawo masu gudanar da wasan daga wasan. Koyaya, kiran "crole-role" ga masu gudanarwa yana haifar da wtf fiye da maimaita mai kula da maras muhimmanci. (Wani nau'in mafi kyawun ayyuka shine ƙoƙarin kada a maimaita sunayen mai sarrafa).

Babban bambanci shine cewa ana aiwatar da aikin koyaushe (idempotently) (da / ragi tags da when), da kuma mai kulawa - ta hanyar canjin jiha (sanar da gobara kawai idan an canza shi). Menene ma'anar wannan? Misali, gaskiyar cewa lokacin da kuka sake farawa, idan ba a canza ba, to ba za a sami mai kulawa ba. Me yasa zai iya zama cewa muna buƙatar aiwatar da mai sarrafa lokacin da babu canji a cikin aikin samarwa? Misali, saboda wani abu ya karye ya canza, amma kisa bai kai ga mai sarrafa ba. Misali, saboda hanyar sadarwar ta kasance ta ɗan lokaci kaɗan. Saitin ya canza, ba a sake kunna sabis ɗin ba. Lokaci na gaba da kuka fara shi, saitin ya daina canzawa, kuma sabis ɗin ya kasance tare da tsohuwar sigar tsarin.

Ba za a iya warware halin da ake ciki tare da saitin (mafi daidai ba, zaku iya ƙirƙira ƙa'idar sake farawa ta musamman don kanku tare da tutocin fayil, da sauransu, amma wannan ba shine 'mahimmanci mai yiwuwa' ta kowace hanya ba). Amma akwai wani labari gama gari: mun shigar da aikace-aikacen, mun rubuta shi .service- fayil, kuma yanzu muna son shi daemon_reload и state=started. Kuma wuri na halitta don wannan alama shine mai kulawa. Amma idan kun sanya shi ba mai kulawa ba amma aiki a ƙarshen jerin ɗawainiya ko matsayi, to za a kashe shi da ƙarfi kowane lokaci. Koda littafin wasan ya watse a tsakiya. Wannan ba zai magance matsalar da aka sake farawa ba kwata-kwata (ba za ku iya yin aiki tare da sifa da aka sake farawa ba, saboda rashin ƙarfi ya ɓace), amma tabbas yana da kyau a yi jihar = an fara, cikakken kwanciyar hankali na littattafan wasan kwaikwayo yana ƙaruwa, saboda adadin haɗin gwiwa da yanayin tsauri yana raguwa.

Wani tabbataccen dukiya na mai sarrafa shi shine baya toshe kayan fitarwa. Babu canje-canje - babu ƙarin tsallake ko ok a cikin fitarwa - mai sauƙin karantawa. Har ila yau, dukiya ce mara kyau - idan ka sami typo a cikin aikin da aka aiwatar a layi a farkon gudu, to za a kashe masu sarrafa kawai idan an canza, watau. a karkashin wasu yanayi - sosai da wuya. Misali, a karon farko a rayuwata bayan shekaru biyar. Kuma, ba shakka, za a yi typo a cikin sunan kuma komai zai lalace. Kuma idan ba ku gudu su a karo na biyu ba, babu wani canji.

Na dabam, muna buƙatar magana game da samuwa na masu canji. Misali, idan kun sanar da aiki tare da madauki, menene zai kasance a cikin masu canji? Kuna iya yin la'akari da nazari, amma ba koyaushe ba ne mai mahimmanci, musamman idan masu canji sun fito daga wurare daban-daban.

... Don haka masu sarrafa ba su da amfani sosai kuma suna da matsala fiye da yadda suke gani. Idan zaka iya rubuta wani abu da kyau (ba tare da frills) ba tare da masu kulawa ba, zai fi kyau a yi shi ba tare da su ba. Idan bai yi aiki da kyau ba, yana da kyau tare da su.

Mai karatu mai lalata ya yi nuni da cewa ba mu tattauna ba listencewa mai kulawa zai iya kiran sanarwar don wani mai kulawa, cewa mai kulawa na iya haɗawa da import_tasks (wanda zai iya haɗawa da_role tare da_items), cewa tsarin mai kulawa a cikin Ansible shine Turing-complete, cewa masu gudanarwa daga sun hada da_role suna shiga tsaka-tsakin hanya mai ban sha'awa tare da masu kulawa daga wasa, da sauransu.d. - duk wannan a fili ba shine "tushen" ba).

Ko da yake akwai takamaiman WTF guda ɗaya wanda shine ainihin fasalin da kuke buƙatar kiyayewa. Idan an aiwatar da aikin ku da delegate_to kuma ta sanar, sannan ana aiwatar da mai sarrafa daidai ba tare da delegate_to, i.e. akan masaukin da aka sanya wasa. (Ko da yake mai kulawa, ba shakka, na iya samun delegate_to Same).

Na dabam, ina so in faɗi ƴan kalmomi game da ayyukan sake amfani da su. Kafin tarin bayyana, akwai ra'ayin cewa za ku iya yin ayyukan duniya waɗanda za su iya zama ansible-galaxy install ya tafi. Yana aiki akan duk OS na kowane bambance-bambance a cikin kowane yanayi. Don haka, ra'ayina: ba ya aiki. Duk wani rawar da taro include_vars, goyon bayan shari'o'i 100500, tabbas zai shiga rami na kwari na kusurwa. Ana iya rufe su da babban gwaji, amma kamar kowane gwaji, ko dai kuna da samfuran Cartesian na ƙimar shigar da jimillar aiki, ko kuma kuna da "alallolin ɗaiɗaikun da aka rufe." Ra'ayi na shi ne cewa ya fi kyau idan rawar ta kasance mai layi (cyclomatic complexity 1).

Ƙananan ifs (bayyane ko sanarwa - a cikin tsari when ko form include_vars ta hanyar saitin masu canji), mafi kyawun rawar. Wani lokaci dole ne ku yi rassan, amma, na maimaita, ƙananan akwai, mafi kyau. Don haka yana da alama mai kyau rawa tare da galaxy (yana aiki!) Tare da gungu na when na iya zama ƙasa da fifiko fiye da matsayin "na kansa" daga ayyuka biyar. Lokacin da rawar tare da galaxy ya fi kyau shine lokacin da kuka fara rubuta wani abu. Lokacin da ya fi muni shine lokacin da wani abu ya karye kuma kuna da tsammanin cewa saboda "rawar da galaxy". Kuna buɗe shi, kuma akwai haɗakarwa guda biyar, takaddun ɗawainiya takwas da tari when'ov... Kuma muna bukatar mu gane wannan. Maimakon ayyuka 5, jerin layi na layi wanda babu abin da zai karya.

A cikin wadannan sassa

  • Kadan game da kaya, masu canji na rukuni, host_group_vars plugin, hostvars. Yadda za a ɗaure kullin Gordian tare da spaghetti. Matsakaicin iyaka da fifiko, Samfurin ƙwaƙwalwar ajiya mai yiwuwa. "To a ina muke adana sunan mai amfani don ma'ajiyar bayanai?"
  • jinja: {{ jinja }} - nosql notype hanci mai laushi filastik. Yana ko'ina, ko da inda ba ka zato. Kadan game da !!unsafe da dadi yaml.

source: www.habr.com

Add a comment