Tħaffef Ansible

Tħaffef Ansible
Mhuwiex sigriet li bis-settings default Ansible ma jistax jagħmel xogħolha malajr ħafna. Fl-artiklu ser nindika diversi raġunijiet għal dan u noffru minimu utli ta 'settings li, possibilment, fil-fatt se jżidu l-veloċità tal-proġett tiegħek.

Hawn u hawn taħt niddiskutu Ansible 2.9.x, li ġie installat f'virtualenv maħluqa friska bil-mod favorit tiegħek.

Wara l-installazzjoni, oħloq fajl "ansible.cfg" ħdejn il-playbook tiegħek - dan il-post jippermettilek tittrasferixxi dawn is-settings flimkien mal-proġett, flimkien ma 'jitgħabbew pjuttost awtomatikament.

Pipelining

Xi wħud jistgħu jkunu diġà semgħu dwar il-ħtieġa li tuża pipelining, jiġifieri, ma tikkopja moduli għas-sistema tal-fajls tas-sistema fil-mira, iżda tittrasferixxi arkivju zip imgeżwer f'Base64 direttament lill-stdin tal-interpretu Python, iżda oħrajn jistgħu ma, iżda l-fatt jibqa' fatt: dan l-issettjar għadu sottovalutat. Sfortunatament, xi wħud mid-distribuzzjonijiet popolari tal-Linux użati biex jiġi kkonfigurat sudo mhux tajjeb ħafna b'mod awtomatiku - sabiex dan il-kmand kien jeħtieġ tty (terminal), għalhekk Ansible ħalla dan is-setting utli ħafna diżattivat b'mod awtomatiku.

pipelining = True

Il-ġbir tal-fatti

Kont taf li b'settings default, Ansible għal kull play jibda l-ġbir tal-fatti għall-ospiti kollha li jipparteċipaw fih? B'mod ġenerali, jekk ma kontx taf, issa taf. Biex tevita li dan iseħħ, trid tattiva jew il-modalità ta' talba espliċita għall-ġbir tal-fatti (espliċita) jew il-modalità intelliġenti. Fiha, il-fatti se jinġabru biss minn dawk l-ospiti li ma kinux iltaqgħu magħhom f’logħob preċedenti.
UPD. Meta tikkopja, ikollok tagħżel waħda minn dawn is-settings.

gathering = smart|explicit

Tuża mill-ġdid konnessjonijiet ssh

Jekk qatt ħadt Ansible fil-mod ta 'debugging (l-għażla "v", ripetuta minn darba sa disa' darbiet), jista 'jkollok innotajt li l-konnessjonijiet ssh qed isiru u jitkissru kontinwament. Allura, hemm ftit irqaq hawn ukoll.

Tista 'tevita l-pass li terġa' tistabbilixxi konnessjoni ssh f'żewġ livelli f'daqqa: kemm direttament fil-klijent ssh, kif ukoll meta tittrasferixxi fajls lill-host amministrat mill-maniġer.
Biex terġa' tuża konnessjoni ssh miftuħa, sempliċement tgħaddi ċ-ċwievet meħtieġa lill-klijent ssh. Imbagħad se tibda tagħmel dan li ġej: meta tistabbilixxi konnessjoni ssh għall-ewwel darba, se toħloq ukoll l-hekk imsejjaħ socket ta 'kontroll, fuq installazzjonijiet sussegwenti, se tivverifika l-eżistenza ta' dan is-sokit stess, u jekk tirnexxi, terġa 'tuża l- konnessjoni eżistenti ssh. U biex dan kollu jagħmel sens, ejja nissettjaw iż-żmien għaż-żamma tal-konnessjoni meta tkun inattiva. Tista' taqra aktar fi dokumentazzjoni ssh, u fil-kuntest ta 'Ansible aħna sempliċiment nużaw "tgħaddi" l-għażliet meħtieġa lill-klijent ssh.

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

Biex terġa' tuża konnessjoni ssh diġà miftuħa meta tittrasferixxi fajls lil host ġestit, speċifika biss setting ieħor mhux magħruf ssh_transfer_method. Id-dokumentazzjoni dwar dan is-suġġett hija estremament għaljin u qarrieqa, għaliex din l-għażla taħdem pjuttost tajjeb! Imma qari kodiċi tas-sors jippermettilek tifhem x'se jiġri eżattament: il-kmand dd se jitnieda fuq l-ospitant amministrat, jaħdem direttament mal-fajl mixtieq.

transfer_method = piped

Mill-mod, fil-fergħa "żviluppa" dan is-setting jeżisti wkoll mhux sejjer imkien.

Tibżax mis-sikkina, tibżax mill-furketta

Issettjar ieħor utli huwa frieket. Jiddetermina n-numru ta 'proċessi tal-ħaddiema li simultanjament se jgħaqqdu ma' hosts u jwettqu kompiti. Minħabba l-partikolaritajiet ta 'Python bħala lingwa, jintużaw proċessi, mhux ħjut, għaliex Ansible għadu jappoġġja Python 2.7 - l-ebda asinċju għalik, m'hemm l-ebda skop li tintroduċi mġiba asinkronika hawn! B'mod awtomatiku Ansible runs ħamsa ħaddiema, iżda jekk mistoqsi b'mod korrett, se tniedi aktar:

forks = 20

Jiena nwissik mill-ewwel li jista 'jkun hemm xi diffikultajiet hawn relatati mal-ammont disponibbli ta' memorja fuq il-magna tal-kontroll. Fi kliem ieħor, tista', ovvjament, issettja frieket=100500, imma min qal li se taħdem?

Tpoġġiha kollha flimkien

Bħala riżultat, għal ansible.cfg (format ini), is-settings meħtieġa jistgħu jidhru bħal dan:

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

U jekk trid taħbi kollox f'inventarju YaML normali ta 'persuna b'saħħitha, allura tista' tidher xi ħaġa bħal din:

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

Sfortunatament, dan mhux se jaħdem bis-settings "ġbir = intelliġenti / espliċitu" u "frieket = 20": l-ekwivalenti YaML tagħhom ma jeżistux. Jew nissettjawhom f'ansible.cfg, jew ngħadduhom mill-varjabbli ambjentali ANSIBLE_GATHERING u ANSIBLE_FORKS.

Dwar Mitogen
- Fejn hi dan dwar Mitogen? - għandek id-dritt li tistaqsi, għeżież qarrej. Imkien f'dan l-artikolu. Imma jekk int verament lest li taqra l-kodiċi tiegħu u sib għaliex il-playbook tiegħek jiġġarraf ma 'Mitogen, iżda jaħdem tajjeb ma' vanilla Ansible, jew għaliex l-istess playbook kien qed jaħdem tajjeb qabel, iżda wara aġġornament beda jagħmel affarijiet strambi - ukoll, Mitogen potenzjalment tista' tkun l-għodda tiegħek. Applikaha, tifhimha, ikteb artikli - naqrah b'interess.

Għaliex ma nużax personalment Mitogen? Minħabba gladiolus jaħdem biss sakemm il-kompiti huma verament sempliċi u kollox huwa tajjeb. Madankollu, jekk iddawwar ftit lejn ix-xellug jew lejn il-lemin - hekk wasalna: bi tweġiba, ftit eċċezzjonijiet indistinti jtiru lejk, u biex tlesti l-istampa, kulma nieqes hija l-frażi komuni “grazzi lilkom kollha , kulħadd huwa ħieles.” B'mod ġenerali, sempliċement ma rridx naħli l-ħin biex insib ir-raġunijiet għall-"knock taħt l-art" li jmiss.

Xi wħud minn dawn is-settings ġew skoperti matul il-proċess tal-qari kodiċi tas-sors plugin ta 'konnessjoni taħt l-isem li jispjega lilu nnifsu "ssh.py". Naqsam ir-riżultati tal-qari bit-tama li jispira lil xi ħadd ieħor biex iħares lejn is-sorsi, jaqrahom, jiċċekkja l-implimentazzjoni, iqabbel mad-dokumentazzjoni - wara kollox, illum jew għada dan kollu jġiblek riżultati pożittivi. Ix-xorti t-tajba!

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Liema mis-settings ta' Ansible li ġejjin tuża biex tħaffef il-proġetti tiegħek?

  • 69,6%pipelining=true32

  • 34,8%ġbir = intelliġenti/espliċitu16

  • 52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24

  • 17,4%transfer_method = piped8

  • 63,0%frieket = XXX29

  • 6,5%Xejn minn dan, biss Mitogen3

  • 8,7%Mitogen + ser ninnota liema minn dawn is-settings4

Ivvutaw 46-il utent. utent 21 astjena.

Trid aktar affarijiet dwar Ansible?

  • 78,3%iva, ovvjament54

  • 21,7%iva, irrid biss aktar għalf iebes!15

  • 0,0%le, u mhux meħtieġ għal xejn0

  • 0,0%le, huwa kkumplikat!!!0

Ivvutaw 69 utent. 7 utenti astjenew.

Sors: www.habr.com

Żid kumment