Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ena ke sengoloa liketso mabapi le DevOps-40 2020-03-18:

Ho qala ka boitlamo ba bobeli, khoutu efe kapa efe e fetoha lefa, hobane mehopolo ea pele e qala ho fapana le 'nete e thata. Sena ha se setle kapa se sebe, ke mpho eo ho leng thata ho e phehisana le ho tlameha ho phelisoa le eona. Karolo ea ts'ebetso ena e refactoring. Refactoring Infrastructure as Code. E re pale e qale ka mokhoa oa ho etsa refactor Ansible ka selemo mme o se ke oa hlanya.

Tsoalo ea Lefa

Letsatsi #1: Zero ea Mokuli

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka nako e 'ngoe ho ne ho e-na le morero o nang le maemo. E ne e e-na le sehlopha sa nts'etsopele ea Dev le baenjiniere ba Ops. Ba ne ba rarolla bothata bo tšoanang: mokhoa oa ho tsamaisa li-server le ho tsamaisa kopo. Bothata e ne e le hore sehlopha ka seng se rarolle bothata bona ka tsela ea sona. Morerong, ho ile ha etsoa qeto ea ho sebelisa Ansible ho hokahanya tsebo lipakeng tsa lihlopha tsa Dev le Ops.

Letsatsi #89: Tsoalo ea Lefa

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ntle le ho elelloa, ba ne ba batla ho e etsa ka hohle kamoo ho ka khonehang, empa e ile ea e-ba lefa. See se etsahala joang?

  • Re na le mosebetsi o potlakileng mona, ha re etseng a dirty hack ebe rea e lokisa.
  • Ha ho hlokahale hore u ngole litokomane mme ntho e 'ngoe le e' ngoe e hlakile se etsahalang mona.
  • Ke tseba Ansible/Python/Bash/Terraform! Sheba kamoo nka qobang kateng!
  • Ke Moetsi oa Full Stack Overflow mme ke kopilitse sena ho tsoa ho stackoverflow, ha ke tsebe hore na e sebetsa joang, empa e shebahala e pholile ebile e rarolla bothata.

Ka lebaka leo, o ka fumana mofuta o sa utloisiseheng oa khoutu oo ho seng litokomane ho oona, ha ho hlake hore na o etsa eng, hore na o oa hlokahala, empa bothata ke hore o hloka ho e ntlafatsa, ho e fetola, ho eketsa lithupa le litšehetso. , ho mpefatsa boemo le ho feta.

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

Letsatsi #109: Tlhokomeliso ka bothata

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Mohlala oa IaC o qapiloeng le ho kengoa ts'ebetsong ha o sa fihlela litlhoko tsa basebelisi / likhoebo / lihlopha tse ling, 'me nako ea ho etsa liphetoho meahong ea motheo ha e sa amoheleha. Ka nako ena, kutloisiso ea fihla ea hore ke nako ea ho nka khato.

IaC refactoring

Letsatsi #139: Na u hlile u hloka refactoring?

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Pele o potlakela ho refactor, o tlameha ho araba lipotso tse 'maloa tsa bohlokoa:

  1. Ke hobane'ng ha u hloka see sohle?
  2. O na le nako?
  3. Na tsebo e lekane?

Haeba u sa tsebe ho araba lipotso, refactoring e tla fela pele e qala, kapa e ka mpefala le ho feta. Hobane o bile le boiphihlelo ( Seo ke se Ithutileng ka ho Lekola Mela e 200 ea Khoutu ea Mehaho), joale morero o ile oa fumana kopo ea thuso ea ho lokisa mesebetsi le ho e koahela ka liteko.

Letsatsi #149: Ho lokisa refactoring

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ntho ea pele ke ho lokisetsa. Etsa qeto ea hore na re tla etsa eng. Ho etsa sena, re buisana, re fumane libaka tsa mathata 'me re fumane litsela tsa ho li rarolla. Re rekota mehopolo e hlahisoang ka tsela e itseng, mohlala, sengoloa se kopaneng, e le hore ha ho hlaha potso ea "se molemohali?" kapa "ke efe e nepahetseng?" Ha rea ​​lahleha. Tabeng ea rōna, re ile ra khomarela khopolo eo arola le ho busa: re pshatla thepa ea motheo ka likotoana tse nyane / litene. Mokhoa ona o u lumella ho nka karolo e ka thōko ea lisebelisoa tsa motheo, ho utloisisa seo e se etsang, ho e koahela ka liteko le ho e fetola ntle le tšabo ea ho senya letho.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Hoa etsahala hore tlhahlobo ea meaho e fetoha lejoe la sekhutlo mme mona ho bohlokoa ho bua ka piramide ea tlhahlobo ea meaho. Ehlile mohopolo o ts'oanang o nts'etsopele, empa bakeng sa lits'ebetso: re tloha litekong tse potlakileng tse tlase tse hlahlobang lintho tse bonolo, joalo ka indentation, ho ea litekong tse theko e phahameng tse felletseng tse sebelisang lisebelisoa tsohle.

Liteko tse nepahetseng tsa liteko

Pele re ea ho hlalosa kamoo re koahetseng liteko tse Ansible mabapi le morero, ke tla hlalosa boiteko le mekhoa eo ke ileng ka ba le monyetla oa ho e sebelisa pejana e le hore ke utloisise moelelo oa liqeto tse entsoeng.

Letsatsi la No. -997: Tokisetso ea SDS

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Lekhetlo la pele ha ke lekola Ansible e ne e le morerong oa ho nts'etsapele SDS (Software Defined Storage). Ho na le sengoloa se arohaneng sehloohong sena
Mokhoa oa ho pshatla libaesekele holim'a lithupa ha u leka kabo ea hau, empa ka bokhutšoane, re ile ra qetella re e-na le piramite ea tlhahlobo e fetotsoeng le teko eo re e qetileng metsotso e 60-90 ka karolo e le 'ngoe, e leng nako e telele. Motheo e ne e le liteko tsa e2e, ke hore. re ile ra kenya mochine o feletseng 'me ra o leka. Se ileng sa mpefatsa le ho feta ke ho iqapela baesekele ea hae. Empa ke tlameha ho lumela, tharollo ena e ile ea sebetsa 'me ea lumella tokollo e tsitsitseng.

Letsatsi # -701: Kichine e amohelehang le ea liteko

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Nts'etsopele ea mohopolo o hlakileng oa tlhahlobo e ne e le ts'ebeliso ea lisebelisoa tse seng li entsoe, e leng kichine ea liteko / kichine-ci le inspec. Khetho e ne e khethoa ke tsebo ea Ruby (bakeng sa lintlha tse ling, bona sehlooho se buang ka Habré: Na baetsi ba YML ba lora ho etsa tlhahlobo ea Ansible?) e sebelitse kapele, metsotso e ka bang 40 bakeng sa likarolo tse 10. Re thehile pakete ea mechini e fumanehang 'me ra etsa liteko kahare.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka kakaretso, tharollo e ile ea sebetsa, empa ho ne ho e-na le sediment ka lebaka la heterogeneity. Ha palo ea batho ba lekiloeng e eketsehile ho ea ho likarolo tse 13 tsa motheo le likarolo tse 2 tsa meta tse kopanyang likarolo tse nyane, joale ka tšohanyetso liteko li ile tsa qala ho sebetsa metsotso e 70, e leng hoo e ka bang makhetlo a 2 nako e telele. Ho ne ho le thata ho bua ka mekhoa ea XP (programming e feteletseng) hobane ... ha ho motho ea batlang ho ema metsotso e 70. Ena e ne e le lebaka la ho fetola mokhoa oo

Letsatsi # -601: Ansible le molek'hule

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka mohopolo, sena se tšoana le testkitchen, ke rona feela re fetisitseng tlhahlobo ea karolo ho docker mme ra fetola stack. Ka lebaka leo, nako e ile ea fokotsoa hore e be metsotso e 20-25 e tsitsitseng bakeng sa likarolo tse 7.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka ho eketsa palo ea likarolo tse lekiloeng ho isa ho 17 le ho kenya likarolo tse 45, re tsamaisitse sena ka metsotso ea 28 ho makhoba a 2 a jenkins.

Letsatsi #167: Ho kenyelletsa liteko tse loketseng morerong

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Mohlomong, ho ke ke ha khoneha ho etsa mosebetsi oa refactoring ka potlako. Mosebetsi o tlameha ho lekanyetsoa e le hore o ka o pshatla likotoana tse nyenyane ebe o ja tlou ka sengoathoana ka teaspoon. Ho tlameha ho ba le kutloisiso ea hore na u tsamaea ka tsela e nepahetseng, hore na u tsamaee nako e kae.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka kakaretso, ho sa tsotellehe hore na ho tla etsoa joang, u ka ngola pampiring, u ka beha lithupa holim'a oteropo, u ka etsa mesebetsi ho Jira, kapa u ka bula Google Docs 'me ua ngola boemo ba hona joale. Mono. Maoto a hōla ho tloha tabeng ea hore ts'ebetso ha e potlake, e tla ba nako e telele ebile e khathatsa. Ho ke ke ha etsahala hore motho leha e le ofe a batle hore u chesoe ke mehopolo, u khathetse, 'me u khathatsehe nakong ea ho tsosolosa.

Refactoring e bonolo:

  • E jang.
  • Robala.
  • Khoutu.
  • Tlhahlobo ea IaC.
  • Pheta hape

mme re pheta sena ho fihlela re fihlela sepheo se rerilweng.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ho ka 'na ha se ke ha khoneha ho qala ho leka ntho e' ngoe le e 'ngoe hang-hang, kahoo mosebetsi oa rona oa pele e ne e le ho qala ka ho kopanya le ho hlahloba syntax.

Letsatsi #181: Green Build Master

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Linting ke mohato o monyane oa pele o lebisang ho Green Build Master. Sena se ke ke sa senya hoo e ka bang ntho leha e le efe, empa se tla u lumella ho lokisa mekhoa le ho etsa lihahi tse tala ho Jenkins. Morero ke ho hlaolela litloaelo har'a sehlopha:

  • Liteko tse khubelu li mpe.
  • Ke tlile ho lokisa ntho e 'ngoe' me ka nako e ts'oanang ke etsa hore khoutu e be betere ho feta pele ho uena.

Letsatsi #193: Ho tloha ho linting ho isa litekong tsa yuniti

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ha u se u thehile mokhoa oa ho kenya khoutu ho mong'a ntlo, u ka qala ts'ebetso ea ho ntlafatsa mohato ka mohato - ho nkela sebaka sa marang-rang ka mesebetsi ea ho qala, u ka e etsa ntle le ho hloka tsebo. U hloka ho utloisisa mokhoa oa ho sebelisa likarolo le hore na li sebetsa joang.

Letsatsi #211: Ho tloha yuniti ho isa litekong tsa kopanyo

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ha likarolo tse ngata li koahetsoe ke liteko tsa yuniti 'me tsohle li thathamisitsoe, u ka tsoela pele ho eketsa liteko tsa ho kopanya. Tseo. ho leka ho se be le setene se le seng mohahong oa motheo, empa motsoako oa bona, mohlala, tlhophiso e feletseng ea mohlala.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Re sebelisa li-jenkins, re hlahisitse mekhahlelo e mengata e neng e kenyelletsa likarolo / libuka tsa ho bapala ka ho bapisa, ebe liteko tsa yuniti ka lijaneng, 'me qetellong liteko tsa kopanyo.

Jenkins + Docker + Ansible = Liteko

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

  1. Checkout repo mme u hlahise mekhahlelo ea ho aha.
  2. Matha mekhahlelo ea lint playbook ka ho bapisa.
  3. Matha mekhahlelo ea lint ka ho bapisa.
  4. Matha mekhahlelo ea karolo ea tlhahlobo ea syntax ka ho bapa.
  5. Etsa mekhahlelo ea liteko ka ho bapa.
    1. Lint karolo.
    2. Sheba ho itšetleha ka likarolo tse ling.
    3. Sheba syntax.
    4. Etsa mohlala oa docker
    5. Matha molecule/default/playbook.yml.
    6. Hlahloba ho hloka matla.
  6. Etsa liteko tsa ho kopanya
  7. fihlela qetellong

Letsatsi #271: Sebaka sa Bese

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Qalong, refactoring e ne e etsoa ke sehlopha se senyenyane sa batho ba babeli kapa ba bararo. Ba ile ba hlahloba khoutu ho monghali. Ha nako e ntse e ea, sehlopha se ile sa hlahisa tsebo ea ho ngola khoutu le tlhahlobo ea khoutu e kentse letsoho ho phatlalatsoeng ha tsebo ka mekhoa ea motheo le kamoo e sebetsang kateng. Taba ea bohlokoa mona ke hore bahlahlobisisi ba khethiloe ka bonngoe, ho latela kemiso, ke hore. ka tekanyo e itseng ea monyetla o tla hloella karolong e ncha ea meralo ea motheo.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

'Me e lokela ho ba bonolo mona. Ho bonolo ho etsa tlhahlobo, ho bona ka har'a moralo oa mosebetsi oo o o entseng, le nalane ea lipuisano. Re kopantse jenkins + bitbucket + jira.

Empa ka hona, tlhahlobo ha se panacea; ka tsela e itseng, re kene ka har'a khoutu e kholo, e ileng ea re etsa liteko tsa 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 }}"

Eaba ba e lokisa, empa sediment ea sala.

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

Letsatsi #311: Ho potlakisa liteko

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ha nako e ntse e ea, ho ne ho e-na le liteko tse ngata, ho haha ​​​​ho ile ha tsamaea butle, ho fihlela hora boemong bo bobe ka ho fetisisa. Ho e 'ngoe ea li-retros ho ne ho e-na le poleloana e kang "ho molemo hore ho be le liteko, empa li lieha." Ka lebaka leo, re ile ra lahla liteko tsa ho kopanya mochining oa sebele mme ra li fetola bakeng sa Docker ho etsa hore e potlake. Re boetse re nkela testinfra sebaka ka se netefatsang se sebetsang ho fokotsa palo ea lisebelisoa tse sebelisoang.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ha e le hantle, ho ne ho e-na le litekanyetso tse latelang:

  1. Fetolela ho docker.
  2. Tlosa tlhahlobo ea karolo, e kopitsoang ka lebaka la ho itšetleha.
  3. Eketsa palo ea makhoba.
  4. Taelo ea ho etsa liteko.
  5. Bokhoni ba ho lint TSOHLE sebakeng ka taelo e le 'ngoe.

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ka lebaka leo, Pipeline on jenkins le eona e ne e kopane

  1. Hlahisa mekhahlelo ea ho haha.
  2. Kopanya tsohle ka ho lekana.
  3. Etsa mekhahlelo ea liteko ka ho bapa.
  4. Qetella.

Seo re ithutileng sona

Qoba ho feto-fetoha ha lefatše

Ansible e sebelisa mefuta e fapaneng ea lefats'e, ho na le mokhoa o itseng oa ho sebetsa ka sebopeho private_role_vars, empa sena ha se phekolo.

E-re ke u fe mohlala. A re boneng 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}}

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

Ntho e qabolang ke hore sephetho sa libuka tsa papali se tla itšetleha ka lintho tse sa bonahaleng ka linako tsohle, joalo ka tatellano eo likarolo li thathamisitsoeng ka eona. Ka bomalimabe, sena ke sebopeho sa Ansible mme ntho e ntle ka ho fetisisa e ka etsoang ke ho sebelisa mofuta o itseng oa tumellano, mohlala, ka har'a karolo, sebelisa feela phetoho e hlalositsoeng karolong ena.

BAD: sebelisa phetoho ea lefatše lohle.

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

MOLEMO: V defaults hlalosa diphapano tse hlokahalang mme hamorao o di sebedise feela.

# 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

Liphetoho tsa karolo ea prefix

BAD: sebelisa phetoho ea lefatše lohle.

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

MOLEMO: Likarolong tsa mefuta-futa, sebelisa liphapang tse nang le lebitso la karolo, sena, ka ho sheba lethathamo la lintho, se tla etsa hore ho be bonolo ho utloisisa se etsahalang.

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

Sebelisa phetoho ea taolo ea loop

BAD: Sebelisa maemo a feto-fetohang a loops item, haeba mosebetsi ona / buka ea ho bapala e kenyelelitsoe kae-kae, sena se ka lebisa boitšoarong bo sa lebelloang

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

MOLEMO: Hlalosa bocha ho feto-fetoha ka loop ka loop_var.

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

Sheba lintho tse feto-fetohang

Re lumetse ho sebelisa li-prefixes tse fapaneng; e ne e ke ke ea e-ba ntho e sa lokelang ho hlahloba hore na li hlalosoa ka tsela eo re neng re lebeletse ka eona, 'me, mohlala, ha lia ka tsa phahamisoa ke boleng bo se nang letho.

MOLEMO: Lekola mefuta-futa.

- 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

Qoba li-dictionaries tsa hashes, sebelisa sebopeho se bataletseng

Haeba karolo e lebelletse hore hash / dictionary ho e 'ngoe ea li-parameter tsa eona, joale haeba re batla ho fetola e' ngoe ea litekanyetso tsa bana, re tla hloka ho feta hash / dictionary kaofela, e leng ho tla eketsa ho rarahana ha tlhophiso.

BAD: Sebelisa hash/dictionary.

---
user:
  name: admin
  group: admin

MOLEMO: Sebelisa sebopeho se feto-fetohang se bataletseng.

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

Theha libuka tsa ho bapala le likarolo tse se nang thuso

Likarolo le libuka tsa ho bapala li tlameha ho hloka matla, hobane e fokotsa ho hoholeha ha tlhophiso le tshabo ya ho roba ntho e itseng. Empa haeba u sebelisa molek'hule, joale sena ke boitšoaro bo sa feleng.

Qoba ho sebelisa li-module tsa shell shell

Ho sebelisa mojule oa khetla ho hlahisa paradigm ea bohlokoa ea tlhaloso, sebakeng sa declarative, e leng motheo oa Ansible.

Lekola likarolo tsa hau ka molek'hule

Molek'hule ke ntho e fetohang haholo, ha re shebeng maemo a 'maloa.

Mehlala e mengata ea molek'hule

В molecule.yml karolong platforms o ka hlalosa mabotho a mangata ao u ka a sebelisang.

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

Ka hona, mabotho ana a ka ba joalo converge.yml sebelisa:

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

Netefatso e utloahalang

Ka molek'hule hoa khoneha ho sebelisa ansible ho lekola hore na mohlala o hlophisitsoe hantle, ho feta moo, sena esale se le teng ho tloha ha se lokolloa 3. Ha e fetohe joalo ka testinfra/inspec, empa re ka lekola hore litaba tsa faele li lumellana le litebello tsa rona:

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

Kapa tsamaisa tšebeletso, emela hore e fumanehe 'me u etse tlhahlobo ea mosi:

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

Kenya logic e rarahaneng ho li-module le li-plugins

Babuelli ba Ansible mokhoa oa ho phatlalatsa, kahoo ha o etsa code branching, data transformation, shell modules, khoutu e ba thata ho e bala. Ho loants'a sena le ho e boloka e le bonolo ho e utloisisa, e ke ke ea e-ba ntho e sa lokelang ho loants'a bothata bona ka ho iketsetsa li-module tsa hau.

Akaretsa Malebela le Maqheka

  1. Qoba ho feto-fetoha ha lefatše.
  2. Liphetoho tsa karolo ea prefix.
  3. Sebelisa phetoho ea taolo ea loop.
  4. Sheba lintho tse feto-fetohang.
  5. Qoba li-dictionaries tsa hashes, sebelisa sebopeho se bataletseng.
  6. Theha libuka tsa ho bapala le likarolo tse se nang thuso.
  7. Qoba ho sebelisa li-module tsa shell shell.
  8. Lekola likarolo tsa hau ka molek'hule.
  9. Kenya logic e rarahaneng ho li-module le li-plugins.

fihlela qeto e

Mokhoa oa ho qala liteko Ansible, refactor projeke ka selemo mme o se ke oa hlanya

U ke ke ua ea feela 'me u lokisa mekhoa ea motheo morerong, leha u na le IaC. Ena ke ts'ebetso e telele e hlokang mamello, nako le tsebo.

UPD1 2020.05.01 20:30 - Bakeng sa profil ea mantlha ea libuka tsa ho bapala tseo u ka li sebelisang callback_whitelist = profile_tasks ho utloisisa se sebetsang hantle nako e telele. Ebe rea feta Ansible acceleration classics. U ka boela ua leka mitogen
UPD2 2020.05.03 16:34 - Phetolelo ea Senyesemane

Source: www.habr.com

Eketsa ka tlhaloso