Nid yw'n gyfrinach na all Ansible wneud ei waith yn gyflym iawn gyda'r gosodiadau diofyn. Yn yr erthygl byddaf yn nodi sawl rheswm am hyn ac yn cynnig lleiafswm defnyddiol o leoliadau a fydd, yn eithaf posibl, yn cynyddu cyflymder eich prosiect mewn gwirionedd.
Yma ac isod rydym yn trafod Ansible 2.9.x, a osodwyd mewn virtualenv a grëwyd yn ffres yn eich hoff ffordd.
Ar ôl ei osod, crëwch ffeil “ansible.cfg” wrth ymyl eich llyfr chwarae - bydd y lleoliad hwn yn caniatáu ichi drosglwyddo'r gosodiadau hyn ynghyd â'r prosiect, a byddant yn llwytho'n eithaf awtomatig.
Piblinellu
Efallai bod rhai eisoes wedi clywed am yr angen i ddefnyddio piblinellu, hynny yw, peidio â chopïo modiwlau i system ffeiliau'r system darged, ond trosglwyddo archif zip wedi'i lapio yn Base64 yn uniongyrchol i stdin y cyfieithydd Python, ond efallai na fydd eraill, ond y ffaith yn parhau i fod yn ffaith:
pipelining = True
Casglu ffeithiau
Oeddech chi'n gwybod, gyda gosodiadau diofyn, bod Ansible ar gyfer pob drama yn cychwyn casglu ffeithiau ar gyfer yr holl westeion sy'n cymryd rhan ynddi? Yn gyffredinol, os nad oeddech chi'n gwybod, nawr rydych chi'n gwybod. Er mwyn atal hyn rhag digwydd, mae angen i chi alluogi naill ai'r modd cais penodol ar gyfer casglu ffeithiau (yn eglur) neu'r modd craff. Ynddo, bydd ffeithiau'n cael eu casglu gan y gwesteiwyr hynny na ddaethpwyd ar eu traws mewn dramâu blaenorol yn unig.
UPD. Wrth gopïo, bydd yn rhaid i chi ddewis un o'r gosodiadau hyn.
gathering = smart|explicit
Ailddefnyddio cysylltiadau ssh
Os ydych chi erioed wedi rhedeg Ansible yn y modd dadfygio (yr opsiwn "v", wedi'i ailadrodd un i naw gwaith), efallai eich bod wedi sylwi bod cysylltiadau ssh yn cael eu gwneud a'u torri'n gyson. Felly, mae yna gwpl o gynildeb yma hefyd.
Gallwch osgoi'r cam o ailsefydlu cysylltiad ssh ar ddwy lefel ar unwaith: y ddau yn uniongyrchol yn y cleient ssh, ac wrth drosglwyddo ffeiliau i'r gwesteiwr a reolir gan y rheolwr.
I ailddefnyddio cysylltiad ssh agored, rhowch yr allweddi angenrheidiol i'r cleient ssh. Yna bydd yn dechrau gwneud y canlynol: wrth sefydlu cysylltiad ssh am y tro cyntaf, bydd hefyd yn creu soced reoli fel y'i gelwir, ar osodiadau dilynol, bydd yn gwirio bodolaeth y soced hon, ac os yw'n llwyddiannus, yn ailddefnyddio'r cysylltiad ssh presennol. Ac i wneud hyn i gyd yn gwneud synnwyr, gadewch i ni osod yr amser ar gyfer cynnal y cysylltiad pan fydd yn anactif. Gallwch ddarllen mwy yn
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
I ailddefnyddio cysylltiad ssh sydd eisoes ar agor wrth drosglwyddo ffeiliau i westeiwr rheoledig, nodwch osodiad anhysbys arall ssh_tranfer_method. Mae'r ddogfennaeth ar y pwnc hwn yn hynod
transfer_method = piped
Gyda llaw, yn y gangen “datblygu” mae'r gosodiad hwn hefyd yn bodoli
Peidiwch â bod ofn y gyllell, byddwch yn ofni y fforc
Gosodiad defnyddiol arall yw ffyrc. Mae'n pennu nifer y prosesau gweithwyr a fydd yn cysylltu â gwesteiwyr ar yr un pryd ac yn cyflawni tasgau. Oherwydd hynodion Python fel iaith, defnyddir prosesau, nid edafedd, oherwydd mae Ansible yn dal i gefnogi Python 2.7 - dim asyncio i chi, does dim pwynt cyflwyno ymddygiad asyncronaidd yma! Yn ddiofyn mae Ansible yn rhedeg
forks = 20
Rwy'n eich rhybuddio ar unwaith y gallai fod rhai anawsterau yma yn ymwneud â faint o gof sydd ar gael ar y peiriant rheoli. Mewn geiriau eraill, gallwch, wrth gwrs, osod ffyrch = 100500, ond pwy ddywedodd y byddai'n gweithio?
Rhoi'r cyfan at ei gilydd
O ganlyniad, ar gyfer ansible.cfg (fformat ini), gall y gosodiadau angenrheidiol edrych fel hyn:
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Ac os ydych chi am guddio popeth mewn rhestr YaML arferol o berson iach, yna gall edrych fel hyn:
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Yn anffodus, ni fydd hyn yn gweithio gyda'r gosodiadau “gathering = smart/explicit” a “ffyrc = 20”: nid yw eu cywerthoedd YaML yn bodoli. Naill ai rydyn ni'n eu gosod yn ansible.cfg, neu rydyn ni'n eu pasio trwy'r newidynnau amgylchedd ANSIBLE_GATHERING ac ANSIBLE_FORKS.
Ynglŷn â Mitogen
- Ble mae hyn yn ymwneud â Mitogen? — mae genych hawl i ofyn, annwyl ddarllenydd. Does unman yn yr erthygl hon. Ond os ydych chi'n barod iawn i ddarllen ei god a darganfod pam mae'ch llyfr chwarae yn damwain gyda Mitogen, ond yn gweithio'n iawn gyda vanilla Ansible, neu pam roedd yr un llyfr chwarae yn gweithio'n iawn o'r blaen, ond ar ôl i ddiweddariad ddechrau gwneud pethau rhyfedd - wel, Mitogen gallai fod yn declyn i chi. Ei gymhwyso, ei ddeall, ysgrifennu erthyglau - byddaf yn ei ddarllen gyda diddordeb.
Pam nad ydw i'n bersonol yn defnyddio Mitogen? Oherwydd bod Gladiolus yn gweithio dim ond cyn belled â bod y tasgau'n syml iawn a bod popeth yn iawn. Fodd bynnag, os trowch ychydig i’r chwith neu’r dde – dyna ni, rydym wedi cyrraedd: mewn ymateb, mae llond llaw o eithriadau aneglur yn hedfan atoch chi, ac i gwblhau’r llun, y cyfan sydd ar goll yw’r ymadrodd cyffredin “diolch i chi gyd , mae pawb yn rhydd.” Yn gyffredinol, dydw i ddim eisiau gwastraffu amser yn darganfod y rhesymau dros y “curiad tanddaearol” nesaf.
Darganfuwyd rhai o'r gosodiadau hyn yn ystod y broses ddarllen
Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg.
Pa un o'r gosodiadau Ansible canlynol ydych chi'n eu defnyddio i gyflymu'ch prosiectau?
-
69,6%piblinellu=gwir32
-
34,8%crynhoad = smart/eglur16
-
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
-
17,4%transfer_method = piped8
-
63,0%ffyrch = XXX29
-
6,5%Dim o hyn, dim ond Mitogen3
-
8,7%Mitogen + Byddaf yn nodi pa un o'r gosodiadau hyn4
Pleidleisiodd 46 o ddefnyddwyr. Ymatalodd 21 defnyddiwr.
Eisiau mwy o bethau am Ansible?
-
78,3%ie, wrth gwrs54
-
21,7%ydw, Fi jyst eisiau stwff craidd caled mwy! 15
-
0,0%na, ac nid yw yn angenrheidiol i ddim0
-
0,0%na, mae'n gymhleth!!!0
Pleidleisiodd 69 o ddefnyddwyr. Ataliodd 7 o ddefnyddwyr.
Ffynhonnell: hab.com