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:
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
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
transfer_method = piped
Mill-mod, fil-fergħa "żviluppa" dan is-setting jeżisti wkoll
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
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
Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ.
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