Fara daga alƙawarin na biyu, kowane lambar ya zama gado, saboda Tunani na farko sun fara bambanta daga mummunan gaskiya. Wannan ba mai kyau ba ne ko mara kyau, abin da aka ba shi ne mai wahala a jayayya da shi kuma dole ne a rayu dashi. Wani ɓangare na wannan tsari yana sake fasalin. Refactoring Infrastructure matsayin Code. Bari labarin ya fara kan yadda za a sake fasalin Ansible a cikin shekara kuma kada kuyi hauka.
Haihuwar Gado
Rana #1: Sifili
Da zarar an yi wani aiki na sharadi. Yana da ƙungiyar haɓaka Dev da injiniyoyin Ops. Suna magance matsalar iri ɗaya: yadda ake tura sabar da gudanar da aikace-aikace. Matsalar ita ce kowace kungiya ta magance wannan matsalar ta hanyarta. A aikin, an yanke shawarar yin amfani da Mai yiwuwa don daidaita ilimi tsakanin ƙungiyoyin Dev da Ops.
Ranar #89: Haihuwar Gado
Ba tare da lura da shi da kansu ba, sun so su yi shi yadda ya kamata, amma ya zama gado. Ta yaya hakan ke faruwa?
Muna da aiki na gaggawa a nan, bari mu yi hack mai datti sannan mu gyara shi.
Ba dole ba ne ka rubuta takardu kuma komai ya bayyana a fili abin da ke faruwa a nan.
Na san Mai yiwuwa/Python/Bash/Teraform! Dubi yadda zan iya gujewa!
Ni Mai Cikakkiyar Mai Haɓaka Ruwa ne kuma na kwafi wannan daga stackoverflow, Ban san yadda yake aiki ba, amma yana da kyau kuma yana magance matsalar.
A sakamakon haka, zaku iya samun nau'in lambar da ba za a iya fahimta ba wanda babu takaddun shaida, ba a bayyana abin da yake yi ba, ko ana buƙata, amma matsalar ita ce kuna buƙatar haɓaka shi, gyara shi, ƙara crutches da tallafi. , wanda ya kara dagula lamarin.
Samfurin IaC da aka fara ɗauka da aiwatarwa ba ya cika buƙatun masu amfani / kasuwanci / sauran ƙungiyoyi, kuma lokacin yin canje-canje ga abubuwan more rayuwa ya daina zama karɓuwa. A wannan lokacin, fahimtar ya zo cewa lokaci ya yi da za a dauki mataki.
IaC refactoring
Ranar #139: Shin kuna buƙatar gyarawa da gaske?
Kafin ka yi gaggawar zuwa refactor, dole ne ka amsa wasu muhimman tambayoyi:
Me yasa kuke buƙatar duk wannan?
Kuna da lokaci?
Ilimi ya isa?
Idan ba ku san yadda ake amsa tambayoyin ba, to, refactoring zai ƙare kafin ma ya fara, ko kuma yana iya yin muni. Domin na da kwarewa( Abin da Na Koyi Daga Gwajin Layin Layi 200 na Code Infrastructure Code), sannan aikin ya sami buƙatar taimako don gyara ayyukan kuma ya rufe su da gwaje-gwaje.
Ranar # 149: Shirye-shiryen refactoring
Abu na farko shine shirya. Yanke shawarar abin da za mu yi. Don yin wannan, muna sadarwa, nemo wuraren matsala kuma mu gano hanyoyin magance su. Muna yin rikodin ra'ayoyin da aka haifar ko ta yaya, alal misali labarin a cikin haɗuwa, don haka lokacin da tambaya ta taso "menene mafi kyau?" ko "wanne ne daidai?" Ba mu rasa hanya ba. A cikin yanayinmu, mun tsaya ga ra'ayin raba da mulki: muna karya abubuwan more rayuwa cikin kananan guda / tubalan. Wannan tsarin yana ba ku damar ɗaukar wani yanki na kayan aikin keɓe, fahimtar abin da yake yi, rufe shi da gwaje-gwaje kuma canza shi ba tare da tsoron karya komai ba.
Ya bayyana cewa gwajin ababen more rayuwa ya zama ginshiƙi kuma a nan yana da daraja ambaton dala gwajin ababen more rayuwa. Daidai irin ra'ayin da ke cikin ci gaba, amma don abubuwan more rayuwa: muna motsawa daga gwaje-gwaje masu sauri masu arha waɗanda ke bincika abubuwa masu sauƙi, kamar indentation, zuwa gwaje-gwaje masu cikakken farashi masu tsada waɗanda ke tura dukkan abubuwan more rayuwa.
Ƙoƙarin gwaji mai yiwuwa
Kafin mu je mu bayyana yadda muka rufe Gwaje-gwaje masu yiwuwa akan aikin, zan bayyana yunƙuri da hanyoyin da na sami damar amfani da su a baya don fahimtar mahallin yanke shawara.
Rana No. -997: SDS tanadi
Lokaci na farko da na gwada Mai yiwuwa yana kan aikin haɓaka SDS (Ma'ajiyar Ƙa'idar Software). Akwai labarin daban akan wannan batu Yadda ake karya kekuna akan ƙugiya yayin gwada rarrabawar ku, amma a takaice, mun ƙare tare da jujjuya gwajin dala kuma gwaji mun shafe mintuna 60-90 akan rawar daya, wanda shine lokaci mai tsawo. Tushen shine gwajin e2e, i.e. mun tura cikakken shigarwa sannan muka gwada shi. Abin da ya kara dagulawa shi ne kirkiro keken nasa. Amma dole ne in yarda, wannan maganin ya yi aiki kuma ya ba da izinin sakin kwanciyar hankali.
Ranar # -701: Mai yiwuwa da gwajin dafa abinci
Haɓaka ra'ayin gwaji mai yiwuwa shine amfani da kayan aikin da aka shirya, wato gwajin dafa abinci / kicin-ci da inspec. An ƙaddara zaɓi ta hanyar sanin Ruby (don ƙarin cikakkun bayanai, duba labarin akan Habré: Shin masu shirye-shiryen YML suna mafarkin gwadawa mai yiwuwa?) yayi aiki da sauri, kimanin mintuna 40 don ayyuka 10. Mun ƙirƙiri fakitin injunan kama-da-wane kuma mun gudanar da gwaje-gwaje a ciki.
Gabaɗaya, maganin ya yi aiki, amma akwai wasu laka saboda rashin daidaituwa. Lokacin da aka ƙara adadin mutanen da aka gwada zuwa 13 na asali ayyuka da 2 meta matsayin hada kananan ayyuka, sa'an nan ba zato ba tsammani gwaje-gwajen ya fara gudu na minti 70, wanda ya kusan sau 2. Yana da wuya a yi magana game da ayyukan XP (tsarin shirye-shirye) saboda... babu wanda yake son jira mintuna 70. Wannan shi ne dalilin canza tsarin
Ranar # -601: Mai yiwuwa da kwayoyin halitta
A ra'ayi, wannan yayi kama da testkitchen, kawai mun matsar da gwajin rawar zuwa docker kuma muka canza tari. A sakamakon haka, an rage lokacin zuwa barga na minti 20-25 don ayyukan 7.
Ta hanyar haɓaka adadin ayyukan da aka gwada zuwa 17 da kuma ɗaukar matsayi 45, mun gudanar da wannan a cikin mintuna 28 akan bayin jenkins 2.
Ranar #167: Ƙara Gwaje-gwaje masu yiwuwa ga aikin
Mafi mahimmanci, ba zai yiwu a yi aikin gyarawa cikin gaggawa ba. Dole ne aikin ya kasance mai aunawa ta yadda za ku iya karya shi kanana kuma ku ci giwa guntu guntu tare da teaspoon. Dole ne a sami fahimtar ko kuna tafiya daidai, tsawon lokacin da za ku tafi.
Gabaɗaya, ba komai yadda za a yi ba, kuna iya rubutawa a takarda, kuna iya sanya lambobi akan kabad, kuna iya ƙirƙirar ayyuka a Jira, ko kuna iya buɗe Google Docs ku rubuta halin da ake ciki yanzu. can. Ƙafafun suna girma daga gaskiyar cewa tsarin ba ya nan da nan, zai kasance mai tsawo da m. Yana da wuya cewa wani yana son ku ƙonewa daga ra'ayoyin, gajiya, kuma ku zama masu damuwa yayin sake fasalin.
Refactoring yana da sauƙi:
Ku ci.
Barci.
Lambar.
gwajin IaC.
maimaita
kuma muna maimaita haka har sai mun kai ga burin da aka yi niyya.
Maiyuwa ba zai yiwu a fara gwada komai ba nan da nan, don haka aikinmu na farko shine fara da linting da duba ma'auni.
Ranar #181: Green Gina Jagora
Linting ƙaramin mataki ne na farko zuwa Green Gina Jagora. Wannan ba zai karya kusan komai ba, amma zai ba ku damar gyara matakai da yin gine-ginen kore a Jenkins. Manufar ita ce haɓaka halaye a tsakanin ƙungiyar:
Jarabawar ja ba su da kyau.
Na zo ne don gyara wani abu kuma a lokaci guda na sanya code ɗin ya ɗan yi kyau fiye da yadda yake a gaban ku.
Ranar #193: Daga linting zuwa gwajin naúrar
Bayan gina tsarin shigar da lambar a cikin maigidan, zaku iya fara aiwatar da haɓakawa mataki-mataki - maye gurbin linting tare da ƙaddamar da ayyuka, kuna iya yin hakan ba tare da ikon iyawa ba. Kuna buƙatar fahimtar yadda ake amfani da matsayin da yadda suke aiki.
Ranar #211: Daga naúrar zuwa gwaje-gwajen haɗin kai
Lokacin da aka rufe yawancin ayyuka tare da gwaje-gwaje na raka'a kuma komai yana cikin layi, zaku iya ci gaba zuwa ƙara gwaje-gwajen haɗin kai. Wadancan. gwada ba bulo guda ɗaya a cikin kayan aikin ba, amma haɗuwa da su, alal misali, cikakken tsari na misali.
Yin amfani da jenkins, mun ƙirƙiri matakai da yawa waɗanda suka haɗa ayyuka/littattafan wasan kwaikwayo a layi daya, sannan gwaje-gwajen naúrar a cikin kwantena, kuma a ƙarshe gwaje-gwajen haɗin kai.
Jenkins + Docker + Mai yiwuwa = Gwaji
Duba repo kuma samar da matakan ginawa.
Guda matakan littafin wasan kwaikwayo a layi daya.
Gudu matakan rawar lint a layi daya.
Guda matakan duba aikin haɗin gwiwa a layi daya.
Gudu matakan gwajin gwajin a layi daya.
Lint rawar.
Bincika dogaro akan wasu ayyuka.
Duba syntax.
Ƙirƙiri misali docker
Run molecule/default/playbook.yml.
Duba rashin ƙarfi.
Guda gwajin haɗin kai
Gama
Ranar #271: Factor Bus
Da farko, an gudanar da refactoring ta ƴan ƙaramin rukuni na mutane biyu ko uku. Sun sake duba lambar a cikin maigidan. Bayan lokaci, ƙungiyar ta haɓaka ilimin yadda ake rubuta lamba da sake duba lambobi sun ba da gudummawa ga yada ilimi game da abubuwan more rayuwa da yadda yake aiki. Babban abin da ya fi daukar hankali a nan shi ne, an zabo masu bitar ne daya bayan daya, bisa ga jadawalin, watau. tare da wani mataki na yuwuwar za ku hau zuwa wani sabon yanki na kayayyakin more rayuwa.
Kuma ya kamata ya zama dadi a nan. Yana da dacewa don yin bita, duba cikin tsarin aikin da aka yi, da tarihin tattaunawa. Mun haɗa jenkins + bitbucket + jira.
Amma kamar haka, bita ba panacea ba ne; ko ta yaya, mun shiga cikin babban lambar, wanda ya sanya mu gwada gwadawa:
A tsawon lokaci, an sami ƙarin gwaje-gwaje, ginin yana tafiya a hankali, har zuwa sa'a guda a cikin mafi munin yanayi. A daya daga cikin retros akwai jumla kamar "yana da kyau cewa akwai gwaje-gwaje, amma suna jinkiri." Sakamakon haka, mun watsar da gwaje-gwajen haɗin kai akan injunan kama-da-wane kuma mun daidaita su don Docker don yin sauri. Mun kuma maye gurbin testinfra tare da mai iya tabbatarwa don rage yawan kayan aikin da ake amfani da su.
A taƙaice, akwai matakan matakan:
Canja zuwa docker.
Cire gwajin rawar, wanda aka kwafi saboda dogaro.
Ƙara yawan bayi.
Gwajin odar gudu.
Ability don lint DUKA cikin gida tare da umarni ɗaya.
Sakamakon haka, Pipeline akan jenkins shima ya kasance hade
Ƙirƙirar matakan ginawa.
Lint duka a layi daya.
Gudu matakan gwajin gwajin a layi daya.
Gama.
Koyaswa koya
Guji masu canji na duniya
Mai yiwuwa yana amfani da sauye-sauye na duniya, akwai wani yanki na aiki a cikin tsari private_role_vars, amma wannan ba panacea ba ne.
Bari in ba ku misali. Bari mu samu role_a и role_b
Abin ban dariya shi ne cewa sakamakon littattafan wasan kwaikwayo zai dogara ne akan abubuwan da ba koyaushe suke bayyana ba, kamar tsarin da aka jera ayyukan. Abin takaici, wannan shine yanayin Mai yiwuwa kuma mafi kyawun abin da za a iya yi shi ne yin amfani da wani nau'i na yarjejeniya, alal misali, a cikin rawar, yi amfani da madaidaicin da aka bayyana a cikin wannan rawar.
KYAU: A cikin matsayi don masu canji, yi amfani da mabambantan da aka riga aka kayyade tare da sunan rawar, wannan, ta hanyar duba kaya, zai sa a sami sauƙin fahimtar abin da ke faruwa.
BADYi amfani da madaidaicin madaidaicin madaukai item, idan an haɗa wannan ɗawainiya/littafin wasa a wani wuri, wannan na iya haifar da halayen da ba zato ba tsammani
Mun yarda mu yi amfani da prefixes masu canzawa; ba zai zama abin mamaki ba don duba cewa an ayyana su kamar yadda muke tsammani kuma, alal misali, ƙima mara kyau ta shafe ta.
KYAU: Duba masu canji.
- 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
Guji ƙamus na hashes, yi amfani da tsarin lebur
Idan rawar tana tsammanin zanta/kamus a ɗaya daga cikin sigoginsa, to idan muna so mu canza ɗaya daga cikin sigogin yara, za mu buƙaci soke duk ƙamus ɗin hash/kamus, wanda zai haɓaka ƙamus ɗin daidaitawa.
Ƙirƙirar littattafan wasan kwaikwayo masu ƙarfi & rawar gani
Matsayi da littattafan wasa dole ne su kasance masu ƙarfi, saboda yana rage jujjuyawar tsari da tsoron karya wani abu. Amma idan kun yi amfani da kwayoyin halitta, to wannan shine halin da ake ciki.
Guji yin amfani da tsarin harsashi na umarni
Yin amfani da tsarin harsashi yana haifar da ma'anar siffa mai mahimmanci, maimakon shela, wanda shine ainihin ma'auni.
Gwada ayyukanku ta hanyar kwayoyin halitta
Molecule abu ne mai sassauƙa, bari mu kalli wasu ƴan yanayi.
Molecule Multiple misalai
В molecule.yml a sashe platforms za ku iya kwatanta runduna da yawa waɗanda za ku iya turawa.
A cikin kwayoyin halitta yana yiwuwa a yi amfani da mai yiwuwa don bincika cewa an saita misalin daidai, haka kuma, wannan shine tsoho tun lokacin da aka saki 3. Ba shi da sassauƙa kamar testinfra/inspec, amma muna iya bincika cewa abubuwan da ke cikin fayil ɗin sun dace da tsammaninmu:
Ko tura sabis ɗin, jira don samuwa kuma yi gwajin hayaki:
---
- 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
Sanya dabaru masu rikitarwa a cikin kayayyaki & plugins
Mai yiwuwa yana ba da shawarar hanyar bayyanawa, don haka lokacin da kuka yi reshen lambar, sauya bayanai, ƙirar harsashi, lambar ta zama da wahala a karanta. Don yaƙar wannan kuma kiyaye shi cikin sauƙin fahimta, ba zai zama abin ban mamaki ba don yaƙar wannan hadaddun ta hanyar ƙirƙirar samfuran ku.
Takaita Nasihu & Dabaru
Guji masu canji na duniya.
Prefix masu canjin matsayi.
Yi amfani da madaidaicin sarrafa madauki.
Duba masu canjin shigarwa.
Guji ƙamus na hashes, yi amfani da tsarin lebur.
Ƙirƙirar littattafan wasan kwaikwayo masu ƙarfi & rawar gani.
Guji yin amfani da tsarin harsashi na umarni.
Gwada ayyukanku ta hanyar kwayoyin halitta.
Sanya dabaru masu rikitarwa a cikin kayayyaki & plugins.
ƙarshe
Ba za ku iya kawai je ku sake gyara kayan aikin kan aikin ba, ko da kuna da IaC. Wannan tsari ne mai tsawo da ke buƙatar haƙuri, lokaci da ilimi.
UPD1 2020.05.01 20 30:XNUMX - Don bayanin martaba na farko na littattafan wasan kwaikwayo zaku iya amfani da su callback_whitelist = profile_tasks don fahimtar abin da daidai yake aiki na dogon lokaci. Sai mu wuce Matsalolin hanzari mai yiwuwa. Hakanan zaka iya gwadawa mitogen UPD2 2020.05.03 16 34:XNUMX - Turanci