Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Lona umbhalo ukusebenza on I-DevOps-40 2020-03-18:

Kusukela ekuzinikeleni kwesibili, noma iyiphi ikhodi iba yifa, ngoba imibono yokuqala iqala ukuhlukana neqiniso elinzima. Lokhu akukuhle futhi akukubi, kunikezwe okunzima ukuphikisana nakho futhi kufanele kuhlalwe nakho. Ingxenye yale nqubo ihlelwa kabusha. Ukwenza kabusha Ingqalasizinda Njengekhodi. Indaba ayiqale yokuthi ungayenza kanjani kabusha i-Ansible ngonyaka futhi ungahlanyi.

Ukuzalwa Kwefa

Usuku #1: I-Zero Yesiguli

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Kwake kwaba khona iphrojekthi enemibandela. Yayineqembu lokuthuthukisa i-Dev kanye nonjiniyela be-Ops. Babexazulula inkinga efanayo: indlela yokukhipha amaseva nokusebenzisa uhlelo lokusebenza. Inkinga bekuwukuthi iqembu ngalinye liyixazulule le nkinga ngendlela yalo. Kuphrojekthi, kunqunywe ukuthi kusetshenziswe i-Ansible ukuvumelanisa ulwazi phakathi kweqembu le-Dev ne-Ops.

Usuku #89: Ukuzalwa Kwefa

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngaphandle kokuqaphela ngokwabo, babefuna ukukwenza konke okusemandleni, kodwa kwaba yifa. Kwenzeka kanjani lokhu?

  • Sinomsebenzi ophuthumayo lapha, asenze ukugebenga okungcolile bese sikulungisa.
  • Awudingi ukubhala amadokhumenti futhi konke kucacile ukuthi kwenzekani lapha.
  • Ngiyazi i-Ansible/Python/Bash/Terraform! Bheka ukuthi ngingavika kanjani!
  • Ngingunjiniyela Ogcwele Ukuchichima Kwesitaki futhi ngikopishe lokhu kokuthi stackoverflow, angazi ukuthi kusebenza kanjani, kodwa kubukeka kupholile futhi kuxazulula inkinga.

Ngenxa yalokho, ungathola uhlobo olungaqondakali lwekhodi okungekho imibhalo yalo, akucaci ukuthi lenzani, noma iyadingeka, kodwa inkinga ukuthi udinga ukuyithuthukisa, ukuyishintsha, ukwengeza izinduku nezisekelo. , okwenza isimo sibe sibi nakakhulu.

- hosts: localhost
  tasks:
    - shell: echo -n Z >> a.txt && cat a.txt
      register: output
      delay: 1
      retries: 5
      until: not output.stdout.find("ZZZ")

Usuku #109: Ukuqwashisa ngenkinga

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Imodeli ye-IaC eyaqalwa yaphinde yasetshenziswa ayisahlangabezani nezimfuneko zabasebenzisi/zebhizinisi/amanye amaqembu, futhi isikhathi sokwenza izinguquko kungqalasizinda siyayeka ukwamukelwa. Ngalesi sikhathi, ukuqonda kuyafika ukuthi sekuyisikhathi sokuthatha isinyathelo.

I-IaC yenza kabusha

Usuku #139: Ingabe udinga ngempela ukwenziwa kabusha?

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngaphambi kokuba ugijimele ukwenza kabusha, kufanele uphendule imibuzo embalwa ebalulekile:

  1. Kungani udinga konke lokhu?
  2. Ingabe unaso isikhathi?
  3. Ingabe ulwazi lwanele?

Uma ungazi ukuthi ungayiphendula kanjani imibuzo, ukwenza kabusha kuzophela ngaphambi kokuthi kuqale, noma kungase kube kubi nakakhulu. Ngoba nginolwazi ( Engikufundile ekuhloleni imigqa engu-200 yekhodi yengqalasizinda), khona-ke iphrojekthi yathola isicelo sosizo lokulungisa izindima futhi ihlanganise nezivivinyo.

Usuku #149: Ilungiselela ukwenza kabusha

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Into yokuqala ukulungiselela. Nquma ukuthi sizokwenzani. Ukuze senze lokhu, siyaxhumana, sithole izindawo ezinenkinga futhi sithole izindlela zokuzixazulula. Sirekhoda imiqondo ewumphumela ngandlela thile, ngokwesibonelo i-athikili ehlangene, ukuze kuthi lapho kuphakama umbuzo othi "yini engcono kakhulu?" noma "yikuphi okulungile?" Asilahlekanga indlela yethu. Esimweni sethu, sanamathela embonweni hlukanisa futhi ubuse: sihlakaza ingqalasizinda ibe yizicucu/izitini ezincane. Le ndlela ikuvumela ukuthi uthathe ingqalasizinda ehlukile, uqonde ukuthi yenzani, uyimboze ngokuhlolwa futhi uyiguqule ngaphandle kokwesaba ukuphula noma yini.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Kuvele ukuthi ukuhlolwa kwengqalasizinda kuba yisisekelo futhi lapha kufanele ukubalula ipiramidi yokuhlola ingqalasizinda. Umbono ofanayo ncamashí osathuthukiswayo, kodwa wengqalasizinda: sisuka ekuhlolweni okusheshayo okushibhile okuhlola izinto ezilula, njengokuhlehlisa, siye ekuhloleni okubizayo okuphelele okusebenzisa yonke ingqalasizinda.

Imizamo yokuhlola enengqondo

Ngaphambi kokuthi sichaze ukuthi sihlanganise kanjani ukuhlolwa kwe-Ansible kuphrojekthi, ngizochaza imizamo nezindlela engibe nethuba lokuzisebenzisa ekuqaleni ukuze ngiqonde umongo wezinqumo ezenziwe.

Usuku No. -997: Ukunikezwa kwe-SDS

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Isikhathi sokuqala lapho ngivivinya i-Ansible kwakuphrojekthi yokuthuthukisa i-SDS (Isitoreji Esichazwe Ngesofthiwe). Kunesihloko esihlukile ngalesi sihloko
Ungawaphula kanjani amabhayisikili phezu kwezinduku lapho uhlola ukusatshalaliswa kwakho, kodwa ngamafuphi, sagcina sinephiramidi yokuhlola ehlanekezelwe futhi sihlola sachitha imizuzu engama-60-90 endimeni eyodwa, okuyisikhathi eside. Isisekelo kwakuwukuhlolwa kwe-e2e, i.e. safaka ukufakwa okuphelele futhi sabe sesikuhlola. Okwakubi nakakhulu kwakuwukusungulwa kwebhayisikili lakhe. Kodwa kufanele ngivume, lesi sixazululo sisebenze futhi savumela ukukhululwa okuzinzile.

Usuku # -701: Ikhishi elisebenzayo nelivivinyayo

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ukuthuthukiswa kombono wokuhlola Okufanelekile kwaba ukusetshenziswa kwamathuluzi esenziwe ngomumo, okuyikhishi lokuhlola / ikhishi-ci kanye ne-inspec. Ukukhetha kwanqunywa ulwazi lukaRuby (ukuthola imininingwane eyengeziwe, bheka isihloko esithi Habré: Ingabe abahleli bezinhlelo ze-YML baphupha ngokuhlola i-Ansible?) isebenze ngokushesha, cishe imizuzu engama-40 ngezindima eziyi-10. Sakhe iphakethe lemishini ebonakalayo futhi saqhuba izivivinyo ngaphakathi.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokuvamile, isixazululo sasebenza, kodwa kwakukhona i-sediment ngenxa ye-heterogeneity. Lapho inani labantu abahloliwe lenyuswa laba yizindima eziyisisekelo eziyi-13 kanye nezindima ezi-2 zemeta ezihlanganisa izindima ezincane, kungazelelwe ukuhlolwa kwaqala ukusebenza imizuzu engama-70, okucishe kube izikhathi ezi-2 ubude. Kwakunzima ukukhuluma ngezinqubo ze-XP (uhlelo oludlulele) ngoba... akekho ofuna ukulinda imizuzu engu-70. Lesi kwakuyisizathu sokushintsha indlela yokwenza

Usuku # -601: Ansible kanye ne-molecule

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokucatshangwayo, lokhu kufana ne-testkitchen, kuphela sihambise ukuhlolwa kwendima ku-docker futhi sashintsha isitaki. Ngenxa yalokho, isikhathi sancishiswa saba imizuzu engu-20-25 ezinzile ngezindima ezingu-7.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokwandisa isibalo sezindima ezihloliwe siye ku-17 futhi sihlanganise izindima ezingama-45, sisebenzise lokhu ngemizuzu engama-28 ezigqileni ezi-2 ze-jenkins.

Usuku #167: Ukwengeza izivivinyo ezifanelekile kuphrojekthi

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokunokwenzeka, ngeke kwenzeke ukwenza umsebenzi wokuvuselela ngokushesha. Umsebenzi kufanele ulinganiseke ukuze ukwazi ukuwuhlephula ube yizicucu ezincane futhi udle indlovu isiqeshana ngesipuni. Kumele kube nokuqonda ukuthi ngabe uhamba ngendlela efanele yini, ukuthi uzohamba isikhathi esingakanani.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokuvamile, akunandaba ukuthi kuzokwenziwa kanjani, ungabhala ephepheni, ungabeka izitika ekhabetheni, ungakha imisebenzi ku-Jira, noma ungavula i-Google Amadokhumenti bese ubhala isimo samanje. Lapho. Imilenze ikhula eqinisweni lokuthi le nqubo ayisheshi, izoba yinde futhi ikhathele. Akunakwenzeka ukuthi noma ubani afune ukuthi ushise imibono, ukhathele, futhi ukhungatheke ngesikhathi sokwenza kabusha.

I-refactoring ilula:

  • Yidla.
  • Ukulala.
  • Ikhodi.
  • Ukuhlolwa kwe-IaC.
  • Phinda

futhi siyakuphinda lokhu size sifinyelele umgomo esihlosiwe.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Kungase kungenzeki ukuqala ukuhlola yonke into ngaso leso sikhathi, ngakho-ke umsebenzi wethu wokuqala bekuwukuqala ngokuhlanganisa nokubheka i-syntax.

Usuku #181: I-Green Build Master

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

I-Linting yisinyathelo sokuqala esibheke ku-Green Build Master. Lokhu ngeke kuphule cishe noma yini, kodwa kuzokuvumela ukuthi ulungise izinqubo futhi wenze ukwakha okuluhlaza ku-Jenkins. Umqondo uwukuthuthukisa imikhuba phakathi kweqembu:

  • Ukuhlolwa okubomvu kubi.
  • Ngize ukuzolungisa okuthile futhi ngesikhathi esifanayo ngenza ikhodi ibe ngcono kancane kunangaphambi kwakho.

Usuku #193: Ukusuka ekuhlanganisweni kuya ekuhlolweni kweyunithi

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngemva kokwakha inqubo yokuthola ikhodi ku-master, ungaqala inqubo yokuthuthukiswa kwesinyathelo ngesinyathelo - ukufaka esikhundleni se-lining ngezindima zokuqalisa, ungakwenza ngisho ngaphandle kokungazi lutho. Udinga ukuqonda ukuthi zisebenza kanjani izindima nokuthi zisebenza kanjani.

Usuku #211: Kusukela kuyunithi kuya ekuhlolweni kokuhlanganisa

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Uma izindima eziningi zihlanganiswa nokuhlolwa kweyunithi futhi yonke into ifakwe kumugqa, ungaqhubekela ekungezeni ukuhlolwa kokuhlanganisa. Labo. ukuhlola hhayi isitini esisodwa kwingqalasizinda, kodwa inhlanganisela yazo, isibonelo, ukucushwa kwesibonelo esigcwele.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Sisebenzisa ama-jenkins, sikhiqize izigaba eziningi ezihlanganisa izindima/izincwadi zokudlala ngokuhambisana, kwase kuba ukuhlolwa kweyunithi ezitsheni, futhi ekugcineni ukuhlolwa kokuhlanganisa.

Jenkins + Docker + Ansible = Izivivinyo

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

  1. Hlola i-repo futhi ukhiqize izigaba zokwakha.
  2. Qalisa izigaba ze-lint playbook ngokuhambisana.
  3. Qalisa izigaba zendima ye-lint ngokuhambisana.
  4. Qalisa izigaba zendima yokuhlola i-syntax ngokuhambisana.
  5. Qalisa izigaba zendima yokuhlola ngokuhambisana.
    1. Indima ye-Lint.
    2. Hlola ukuncika kwezinye izindima.
    3. Hlola i-syntax.
    4. Dala isibonelo se-docker
    5. Qalisa i-molecule/default/playbook.yml.
    6. Hlola ukungabi namandla.
  6. Yenza izivivinyo zokuhlanganisa
  7. Qeda

Usuku #271: Isici Sebhasi

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ekuqaleni, ukulungiswa kabusha kwenziwa yiqembu elincane labantu ababili noma abathathu. Babuyekeze ikhodi ku-master. Ngokuhamba kwesikhathi, ithimba lathuthukisa ulwazi lwendlela yokubhala ikhodi nokubuyekezwa kwekhodi kwaba nesandla ekusabalaliseni ulwazi mayelana nengqalasizinda kanye nendlela esebenza ngayo. Okugqamile lapha kwaba ukuthi ababuyekezi bakhethwa ngamunye ngamunye, ngokohlelo, i.e. ngokwezinga elithile lamathuba uzogibela engxenyeni entsha yengqalasizinda.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Futhi kufanele kube ntofontofo lapha. Kulula ukwenza isibuyekezo, ubone ngaphakathi kohlaka lwamuphi umsebenzi owenziwe, kanye nomlando wezingxoxo. Sihlanganise i-jenkins + bitbucket + jira.

Kepha ngenxa yalokho, ukubuyekezwa akuyona i-panacea; ngandlela thile, singene kukhodi enkulu, esenze izivivinyo ze-flop:

- get_url:
    url: "{{ actk_certs }}/{{ item.1 }}"
    dest: "{{ actk_src_tmp }}/"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ item.1 }}"
    dest: "{{ actk_dst_tmp }}"
  with_subelements:
    - "{{ actk_cert_list }}"
    - "{{ actk_certs }}"

Base beyilungisa, kodwa inzika yasala.

get_url:
    url: "{{ actk_certs }}/{{ actk_item }}"
    dest: "{{ actk_src_tmp }}/{{ actk_item }}"
    username: "{{ actk_mvn_user }}"
    password: "{{ actk_mvn_pass }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"
  delegate_to: localhost

- copy:
    src: "{{ actk_src_tmp }}/{{ actk_item }}"
    dest: "{{ actk_dst_tmp }}"
  loop_control:
    loop_var: actk_item
  with_items: "{{ actk_cert_list }}"

Usuku #311: Ukusheshisa ukuhlolwa

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngokuhamba kwesikhathi, kwaba nokuhlolwa okwengeziwe, ukwakhiwa kwahamba kancane, kwaze kwafika ehoreni esimweni esibi kakhulu. Kwenye yemidlalo ye-retro bekukhona umusho othi “kuhle ukuthi kube nezivivinyo, kepha ziyacotha.” Ngenxa yalokho, sikuyekile ukuhlola kokuhlanganisa emishinini ebonakalayo futhi sazivumelanisa ne-Docker ukuze isheshe. Siphinde sashintsha i-testinfra safaka isiqinisekisi esisebenzayo ukuze sinciphise inani lamathuluzi asetshenzisiwe.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ukukhuluma ngokuqinile, kwakukhona isethi yezinyathelo:

  1. Shintshela ku-docker.
  2. Susa ukuhlola indima, okuyimpinda ngenxa yokuncika.
  3. Khulisa isibalo sezigqila.
  4. Hlola uhlelo lokusebenza.
  5. Ukukwazi ukuhlanganisa KONKE endaweni ngomyalo owodwa.

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Ngenxa yalokho, i-Pipeline on jenkins nayo yahlanganiswa

  1. Khiqiza izigaba zokwakha.
  2. Hlanganisa konke ngokuhambisana.
  3. Qalisa izigaba zendima yokuhlola ngokuhambisana.
  4. Qedela.

Izifundo ezifundiwe

Gwema ukuguquguquka komhlaba wonke

I-Ansible isebenzisa okuguquguqukayo komhlaba wonke, kukhona ingxenye yokusebenza efomini i-private_role_vars, kodwa lena akuyona i-panacea.

Ake ngenze isibonelo. Ake senze role_a и role_b

# cat role_a/defaults/main.yml
---
msg: a

# cat role_a/tasks/main.yml
---
- debug:
    msg: role_a={{ msg }}

# cat role_b/defaults/main.yml
---
msg: b

# cat role_b/tasks/main.yml
---
- set_fact:
    msg: b
- debug:
    msg: role_b={{ msg }}

- hosts: localhost
  vars:
    msg: hello
  roles:
    - role: role_a
    - role: role_b
  tasks:
    - debug:
        msg: play={{msg}}

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Okuhlekisayo ukuthi umphumela wezincwadi zokudlala uzoncika ezintweni ezingabonakali ngaso sonke isikhathi, njengokulandelana kwezindima ezibhalwe ngazo. Ngeshwa, lolu uhlobo lwe-Ansible futhi into engcono kakhulu engenziwa ukusebenzisa uhlobo oluthile lwesivumelwano, isibonelo, ngaphakathi kwendima, sebenzisa kuphela okuguquguqukayo okuchazwe kule ndima.

ABABI: sebenzisa i-global variable.

# cat roles/some_role/tasks/main.yml
---
debug:
  var: java_home

EZINHLE: V defaults chaza okuguquguqukayo okudingekayo futhi kamuva ukusebenzise kuphela.

# cat roles/some_role/defaults/main.yml
---
r__java_home:
 "{{ java_home | default('/path') }}"

# cat roles/some_role/tasks/main.yml
---
debug:
  var: r__java_home

Okuguquguqukayo kwendima yesiqalo

ABABI: sebenzisa i-global variable.

# cat roles/some_role/defaults/main.yml
---
db_port: 5432

EZINHLE: Ezindimeni zezinto eziguquguqukayo, sebenzisa okuguquguqukayo okunesiqalo esinegama lendima, lokhu, ngokubheka i-inventory, kuzokwenza kube lula ukuqonda ukuthi kwenzekani.

# cat roles/some_role/defaults/main.yml
---
some_role__db_port: 5432

Sebenzisa i-loop control variable

ABABI: Sebenzisa ukuguquguquka okujwayelekile kumaluphu item, uma lo msebenzi/ibhuku lokudlala lifakiwe ndawana thize, lokhu kungase kuholele ekuziphatheni okungalindelekile

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item }}"
      loop:
        - item1
        - item2

EZINHLE: Chaza kabusha okuguquguqukayo ku-loop usebenzisa loop_var.

---
- hosts: localhost
  tasks:
    - debug:
        msg: "{{ item_name }}"
      loop:
        - item1
        - item2
      loop_control:
        loop_var: item_name

Hlola okokufaka okuguquguqukayo

Sivumile ukusebenzisa iziqalo eziguquguqukayo; ngeke kube ukulingana ukuhlola ukuthi zichazwe ngendlela esilindele ngayo futhi, ngokwesibonelo, azizange zibhalwe inani elingenalutho.

EZINHLE: Hlola okuguquguqukayo.

- 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

Gwema izichazamazwi zama-hashes, sebenzisa isakhiwo esiyisicaba

Uma indima ilindele i-hashi/isichazamazwi kwelinye lamapharamitha alo, khona-ke uma sifuna ukushintsha ipharamitha eyodwa yengane, sizodinga ukweqa yonke i-hashi/isichazamazwi, okuzokwandisa ubunkimbinkimbi bokucushwa.

ABABI: Sebenzisa i-hash/isichazamazwi.

---
user:
  name: admin
  group: admin

EZINHLE: Sebenzisa isakhiwo esiguquguqukayo esiyisicaba.

---
user_name: admin
user_group: "{{ user_name }}"

Dala izincwadi zokudlala nezindima ezingenangqondo

Izindima kanye nezincwadi zokudlala kumele zibe yizithutha, ngoba kunciphisa ukukhukhuleka kokumisa kanye nokwesaba ukuphula okuthile. Kepha uma usebenzisa i-molecule, lokhu kungukuziphatha okuzenzakalelayo.

Gwema ukusebenzisa amamojula wegobolondo lomyalo

Ukusebenzisa imojula yegobolondo kubangela ipharadigm yencazelo ebalulekile, esikhundleni se-declarative, okuwumongo we-Ansible.

Hlola izindima zakho nge-molecule

I-Molecule yinto eguquguqukayo kakhulu, ake sibheke izimo ezimbalwa.

I-Molecule Izimo Eziningi

В molecule.yml esigabeni platforms ungachaza ababungazi abaningi ongabaphakela.

---
    driver:
      name: docker
    platforms:
      - name: postgresql-instance
        hostname: postgresql-instance
        image: registry.example.com/postgres10:latest
        pre_build_image: true
        override_command: false
        network_mode: host
      - name: app-instance
        hostname: app-instance
        pre_build_image: true
        image: registry.example.com/docker_centos_ansible_tests
        network_mode: host

Ngakho, laba Sebawoti kungaba ke converge.yml sebenzisa:

---
- name: Converge all
  hosts: all
  vars:
    ansible_user: root
  roles:
    - role: some_role

- name: Converge db
  hosts: db-instance
  roles:
    - role: some_db_role

- name: Converge app
  hosts: app-instance
  roles:
    - role: some_app_role

Isiqinisekisi esibonakalayo

Ku-molecule kungenzeka ukuthi usebenzise i-ansible ukuhlola ukuthi isibonelo simiswe ngendlela efanele, ngaphezu kwalokho, lokhu kube okumisiwe kusukela ekukhululweni kwesi-3. Ayiguquguquki njenge testinfra/inspec, kodwa singabheka ukuthi okuqukethwe kwefayela kuyafana yini nesikulindele:

---
- name: Verify
  hosts: all
  tasks:
    - name: copy config
      copy:
        src: expected_standalone.conf
        dest: /root/wildfly/bin/standalone.conf
        mode: "0644"
        owner: root
        group: root
      register: config_copy_result

    - name: Certify that standalone.conf changed
      assert:
        that: not config_copy_result.changed

Noma sebenzisa isevisi, linda ukuthi itholakale bese wenza ukuhlolwa kwentuthu:

---
  - 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

Faka i-logic eyinkimbinkimbi kumamojula nama-plugin

I-Ansible Advocates indlela yokumemezela, ngakho-ke uma wenza ikhodi yegatsha, ukuguqulwa kwedatha, amamojula wegobolondo, ikhodi iba nzima ukuyifunda. Ukuze ulwe nalokhu futhi ugcine kulula ukukuqonda, ngeke kube yinto engafanele ukulwa nalobu bunzima ngokwakha awakho amamojula.

Fingqa Amathiphu & Amacebo

  1. Gwema ukuguquguquka komhlaba wonke.
  2. Okuguquguqukayo kwendima yesiqalo.
  3. Sebenzisa i-loop control variable.
  4. Hlola okokufaka okuguquguqukayo.
  5. Gwema izichazamazwi zama-hashes, sebenzisa isakhiwo esiyisicaba.
  6. Dala izincwadi zokudlala nezindima ezingenangqondo.
  7. Gwema ukusebenzisa amamojula wegobolondo lomyalo.
  8. Hlola izindima zakho nge-molecule.
  9. Faka i-logic eyinkimbinkimbi kumamojula nama-plugin.

isiphetho

Ungaqala kanjani ukuhlola i-Ansible, yenza kabusha iphrojekthi ngonyaka futhi ungahlanyi

Awukwazi ukuvele uhambe uyokwenza kabusha ingqalasizinda kuphrojekthi, noma ngabe une-IaC. Lena inqubo ende edinga isineke, isikhathi kanye nolwazi.

UPD1 2020.05.01 20:30 - Ukuze uthole iphrofayela eyinhloko yezincwadi zokudlala ongazisebenzisa callback_whitelist = profile_tasks ukuqonda ukuthi yini ngempela esebenza isikhathi eside. Bese sidlula Ansible acceleration zakudala. Ungazama futhi imitogen
UPD2 2020.05.03 16:34 - isiZulu version

Source: www.habr.com

Engeza amazwana