Hraða upp Ansible

Hraða upp Ansible
Það er ekkert leyndarmál að með sjálfgefnum stillingum getur Ansible ekki unnið starf sitt mjög hratt. Í greininni mun ég benda á nokkrar ástæður fyrir þessu og bjóða upp á gagnlegar lágmarksstillingar sem hugsanlega munu í raun auka hraðann á verkefninu þínu.

Hér og hér að neðan ræðum við Ansible 2.9.x, sem var sett upp í nýbúnum sýndarmynd á þinn uppáhalds hátt.

Eftir uppsetningu skaltu búa til „ansible.cfg“ skrá við hliðina á leikbókinni þinni - þessi staðsetning gerir þér kleift að flytja þessar stillingar ásamt verkefninu, auk þess sem þær hlaðast sjálfkrafa.

Leiðslulagnir

Sumir hafa kannski þegar heyrt um nauðsyn þess að nota pipelining, það er að afrita ekki einingar í skráakerfi markkerfisins, heldur flytja zip-skjalasafn sem er pakkað inn í Base64 beint í stdin Python túlksins, en aðrir ekki, en staðreynd er enn staðreynd: þessari stillingu er enn vanmetið. Því miður eru sumar af vinsælustu Linux dreifingunum sem notaðar eru til að stilla sudo sjálfgefið ekki mjög vel - þannig að þessi skipun krafðist tty (terminal), svo Ansible skildi þessa mjög gagnlegu stillingu óvirka sjálfgefið.

pipelining = True

Að safna staðreyndum

Vissir þú að með sjálfgefnum stillingum byrjar Ansible fyrir hvert leikrit söfnun staðreynda fyrir alla gestgjafa sem taka þátt í því? Almennt séð, ef þú vissir það ekki, þá veistu það núna. Til að koma í veg fyrir að þetta gerist þarftu að virkja annað hvort beinbeiðnarstillingu til að safna staðreyndum (skýr) eða snjallstillingu. Þar verður staðreyndum aðeins safnað frá þeim gestgjöfum sem ekki komust fyrir í fyrri leikritum.
UPD. Þegar þú afritar verður þú að velja eina af þessum stillingum.

gathering = smart|explicit

Endurnýtir ssh tengingar

Ef þú hefur einhvern tíma keyrt Ansible í villuleitarstillingu („v“ valkosturinn, endurtekinn einu sinni til níu sinnum), gætirðu hafa tekið eftir því að ssh tengingar eru stöðugt að koma á og rofna. Svo, það eru nokkrar fíngerðir hér líka.

Þú getur forðast það skref að endurreisa ssh tengingu á tveimur stigum í einu: bæði beint í ssh biðlaranum og þegar þú flytur skrár á stýrðan hýsilinn frá stjórnandanum.
Til að endurnýta opna ssh tengingu skaltu einfaldlega senda nauðsynlega lykla til ssh biðlarans. Þá mun það byrja að gera eftirfarandi: þegar ssh-tengingu er komið á í fyrsta skipti, mun það að auki búa til svokallaða stjórntengi, við síðari uppsetningar mun það athuga tilvist þessa innstungu, og ef það tekst, endurnýtir það núverandi ssh tengingu. Og til að gera þetta allt skynsamlegt, skulum við stilla tímann til að viðhalda tengingunni þegar hún er óvirk. Þú getur lesið meira í ssh skjöl, og í samhengi við Ansible notum við einfaldlega að „framsenda“ nauðsynlega valkosti til ssh biðlarans.

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

Til að endurnýta þegar opna ssh tengingu þegar skrár eru fluttar yfir á stýrðan hýsil skaltu bara tilgreina aðra óþekkta stillingu ssh_tranfer_method. Skjölin um þetta efni eru afar snjall og villandi, því þessi valkostur virkar nokkuð vel! En lestur frumkóða gerir þér kleift að skilja hvað nákvæmlega mun gerast: dd skipunin verður hleypt af stokkunum á stýrða hýslinum og vinnur beint með viðkomandi skrá.

transfer_method = piped

Við the vegur, í „þróa“ greininni er þessi stilling líka til ekki að fara neitt.

Ekki vera hræddur við hnífinn, vertu hræddur við gaffalinn

Önnur gagnleg stilling er gafflar. Það ákvarðar fjölda starfsmannaferla sem munu samtímis tengjast vélum og framkvæma verkefni. Vegna sérkenni Python sem tungumáls eru ferlar notaðir, ekki þræðir, því Ansible styður enn Python 2.7 - engin ósamstilling fyrir þig, það þýðir ekkert að kynna ósamstillta hegðun hér! Sjálfgefið keyrir Ansible fimm starfsmenn, en ef rétt er spurt mun það ræsa meira:

forks = 20

Ég vara þig bara strax við því að hér gætu komið upp einhverjir erfiðleikar sem tengjast tiltæku minni á stjórnvélinni. Með öðrum orðum, þú getur auðvitað stillt gaffla=100500, en hver sagði að það myndi virka?

Að setja þetta allt saman

Þar af leiðandi, fyrir ansible.cfg (ini snið), gætu nauðsynlegar stillingar litið svona út:

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

Og ef þú vilt fela allt í venjulegum YaML-birgðum hjá heilbrigðum einstaklingi, þá getur það litið svona út:

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

Því miður mun þetta ekki virka með stillingunum „gathering = smart/explicit“ og „forks = 20“: YaML jafngildi þeirra eru ekki til. Annað hvort setjum við þær í ansible.cfg, eða við sendum þær í gegnum umhverfisbreyturnar ANSIBLE_GATHERING og ANSIBLE_FORKS.

Um Mitogen
- Hvar er þetta um Mitogen? - þú hefur rétt til að spyrja, kæri lesandi. Hvergi í þessari grein. En ef þú ert virkilega tilbúinn til að lesa kóðann hans og finna út hvers vegna leikbókin þín hrynur með Mitogen, en virkar fínt með vanillu Ansible, eða hvers vegna sama leikbók virkaði vel áður, en eftir uppfærslu fór að gera undarlega hluti - ja, Mitogen gæti hugsanlega verið þitt verkfæri. Notaðu það, skildu það, skrifaðu greinar - ég mun lesa það með áhuga.

Af hverju nota ég ekki Mitogen persónulega? Vegna þess að gladiolus virkar það bara svo lengi sem verkefnin eru mjög einföld og allt er í lagi. Hins vegar, ef þú snýrð þér aðeins til vinstri eða hægri - það er það, við erum komin: til að bregðast við því, handfylli af ógreinilegum undantekningum fljúga á þig, og til að fullkomna myndina, vantar bara algenga setninguna „takk allir , allir eru ókeypis.“ Almennt séð vil ég bara ekki eyða tíma í að finna út ástæðurnar fyrir næsta „neðanjarðarhöggi“.

Sumar þessara stillinga fundust í lestrarferlinu frumkóða tengiviðbót undir sjálfskýrandi heitinu „ssh.py“. Ég deili niðurstöðum lestrarins í þeirri von að það hvetji einhvern annan til að skoða heimildirnar, lesa þær, athuga útfærsluna, bera saman við skjölin - þegar allt kemur til alls, fyrr eða síðar mun allt þetta skila þér jákvæðum árangri. Gangi þér vel!

Aðeins skráðir notendur geta tekið þátt í könnuninni. Skráðu þig inn, takk.

Hvaða af eftirfarandi Ansible stillingum notar þú til að flýta fyrir verkefnum þínum?

  • 69,6%pipelining=true32

  • 34,8%samkoma = klár/skýr16

  • 52,2%ssh_args = "-o ControlMaster=sjálfvirkt -o ControlPersist=..."24

  • 17,4%transfer_method = piped8

  • 63,0%gafflar = XXX29

  • 6,5%Ekkert af þessu, bara Mitogen3

  • 8,7%Mitogen + Ég mun athuga hvaða af þessum stillingum4

46 notendur kusu. 21 notandi sat hjá.

Viltu meira um Ansible?

  • 78,3%já, auðvitað 54

  • 21,7%já, mig langar bara í meira harðkjarna dót!15

  • 0,0%nei, og það er ekki nauðsynlegt fyrir ekki neitt0

  • 0,0%nei, þetta er flókið!!!0

69 notendur kusu. 7 notendur sátu hjá.

Heimild: www.habr.com

Bæta við athugasemd