
Ei ole kellelegi saladus, et Ansible vaikeseadetega ei pruugi oma tööd liiga kiiresti teha. Artiklis toon vÀlja mÔned pÔhjused ja pakun kasulikke minimaalsete seadistuste soovitusi, mis vÔivad teie projekti töö kiirusest oluliselt parandada.
Arutame siin ja edaspidi Ansible 2.9.x versiooni, mis on installitud teie lemmikmeetodil vÀrskes virtualenv's.
PĂ€rast paigaldamist looge oma playbook'i kĂ”rval fail âansible.cfgâ â see asukoht vĂ”imaldab seadistusi projektiga kaasas kanda ning need laaditakse ĂŒsna automaatselt.
Pipeline'ide kasutamine
Kellelegi pole saladus, et pipeliningut, st mitte moodulite kopeerimist sihtsĂŒsteemi failisĂŒsteemi, vaid Base64 zip-arhiiviga edastamist otse Python'i tĂ”lgendaja stdin'i kaudu, on juba kuulatud, kuid fakt jÀÀb faktiks: on endiselt alahinnatud. Kahjuks seadistas ĂŒks populaarne Linuxi distributsioon sudo vaikimisi mitte kĂ”ige paremini â nĂ”udes, et see kĂ€su tĂ€itmiseks peaks olema tty (terminaal), mistĂ”ttu jĂ€eti Ansible see vĂ€ga kasulik seadistus vaikimisi vĂ€lja.
pipelining = TrueFaktide kogumine
Kas teadsite, et Ansible'i vaike seadistustega kĂ€ivitab iga plaan faktide kogumise kĂ”ikidest osalevatest hostidest? Ăldiselt, kui te ei teadnud, siis nĂŒĂŒd teate. Et seda ei toimuks, peate kas lubama faktide kogumise selgesĂ”nalise pĂ€ringu reĆŸiimi (explicit) vĂ”i nutika reĆŸiimi. Viimases kogutakse faktid ainult nendelt hostidelt, mis pole eelnevalt plaanides ilmunud.
UPD. Kopeerimisel peate valima nende seadete hulgast ĂŒhe.
gathering = smart|explicitssh-ĂŒhenduste taaskasutamine
Kui olete kunagi kĂ€inud Ansible'i reĆŸiimis, kus kuvatakse silumisinfo (valik «v», korduv alates ĂŒhest kuni ĂŒheksani), siis olete ilmselt mĂ€rganud, et ssh-ĂŒhendused pidevalt luuakse ja katkestatakse. Noh, siin on samuti paar nĂŒanssi.
SSH-ĂŒhenduse uuesti loomise etappi saab vĂ€ltida kahel tasemel: nii ssh-klientis kui ka failide edastamisel haldatavale hostile haldussĂŒsteemist.
Avatud ssh-ĂŒhenduse taaskasutamiseks piisab lihtsalt vajalike ssh-vĂ”tmete edastamisest ssh-klientile. Siis hakkab ta tegema jĂ€rgmist: ssh-ĂŒhenduse esmakordsel seadistamisel loob ta nn control socket'i ja jĂ€rjestikuste ĂŒhenduste puhul kontrollib olemasolu ning Ă”nnestumise korral kasutab ta olemasolevat ssh-ĂŒhendust. Et kĂ”igel sel oleks mĂ”te, seadistame sidumise ajaloo salvestamise, kui see ei ole aktiivne. Rohkem informatsiooni leiate , ja Ansible kontekstis kasutame lihtsalt soovitud ssh-valikute "edastust".
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"Juba avatud ssh-ĂŒhenduse taaskasutamiseks failide edastamisel hallatavale hostile piisab, kui mÀÀrata veel ĂŒks teadmata seade ssh_tranfer_method. Dokumentatsioon selle kohta on ÀÀrmiselt ja eksitav, kuna see vĂ”imalus on tĂ€iesti toimiv! KĂŒll aga aitab lugemine mĂ”ista, mis tĂ€pselt toimuma hakkab: hallataval hostil kĂ€ivitatakse dd kĂ€sk, mis töötab otseselt vajaliku failiga.
transfer_method = pipedMuide, "develop" harus see seade samuti eksisteerib ja .
Ăra karda nuga, vaid karda kahvlit
Veel ĂŒks kasulik seadistus on forks. See mÀÀrab, kui palju tööprotsesse ĂŒhendatakse hostidega ja tĂ€idavad ĂŒlesandeid erinevalt. Python'i keelena kasutatakse siin protsesse, mitte thread'e, kuna Ansible toetab endiselt Python 2.7 â ei mingit asyncio't, siin pole asĂŒnkroonsust vaja! Vaikimisi alustab Ansible töötajat, kuid kui Ă”igesti paluda, saab rohkem kĂ€ima panna:
forks = 20Aga kohe hoiataks, et siinkohal vĂ”ivad tekkida mĂ”ned raskused, mis on seotud hallatava masina mĂ€lumahuga. TeisisĂ”nu, forks=100500 seadmine on muidugi vĂ”imalik, kuid kes ĂŒtles, et see töötab?
KokkuvÔtteks
LÔpuks vÔivad ansible.cfg (ini-formaat) vajalikud seaded vÀlja nÀha jÀrgmiselt:
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Ja kui soovid kogu selle normaalse YaML-inventarisse peita, siis vÔib see vÀlja nÀha umbes selline:
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Kahjuks ei sobi âgathering = smart/explicitâ ja âforks = 20â seaded: nende YaML-i ekvivalente ei eksisteeri. Kas seame need ansible.cfg-failis vĂ”i edastame keskkonnamuutujate ANSIBLE_GATHERING ja ANSIBLE_FORKS kaudu.
KĂŒsimus Mitogeni kohta
â Kus siin on juttu Mitogenist? â vĂ”id kĂŒsida, kallis lugeja. Selles artiklis ei ole seda kuskil. Kuid kui sa tĂ”esti oled valmis lugema selle koodi ja aru saama, miks su playbook Mitogeni puhul kukub, samas kui puhta Ansible'i puhul töötab, vĂ”i miks sama playbook varem hĂ€sti töötas, aga pĂ€rast vĂ€rskendust hakkas imelikult kĂ€ituma â noh, Mitogen vĂ”ib potentsiaalselt olla sinu tööriist. Kasuta, uuri, kirjuta artikleid â loen huvi pĂ€rast.
Miks ma isiklikult Mitogeni ei kasuta? Sest see töötab ainult seni, kuni ĂŒlesanded on tĂ”eliselt lihtsad ja kĂ”ik on hĂ€sti. Kuid kui astuda veidi vasakule vĂ”i paremale â on kĂ”ik, asi lĂ€bi: vastuseks lendab su poole hulk ebaselgeid erandeid ning pildi tĂ€iendamiseks vajatakse ainult ĂŒhte fraasi âkĂ”igile aitĂ€h, kĂ”ik on vabastatudâ. ĂhesĂ”naga, ma ei soovi lihtsalt aega kulutada jĂ€rgmise âmaa-aluse klĂ”psuâ pĂ”hjuste vĂ€ljaselgitamisele.
MĂ”ned neist seadistustest avastati lugemise kĂ€igus Ăhenduse plugin nimega «ssh.py». Jagades selle lugemise tulemusi, loodan, et see inspireerib kedagi veel allikaid vaatama, neid lugema, rakendust kontrollima, dokumentatsiooniga vĂ”rdlema â lĂ”puks toob see kindlasti positiivseid tulemusi. Edu!
Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. , palun.
Milliseid Ansible seadeid kasutate oma projektide kiirendamiseks?
69,6%pipelining = true32
34,8%gathering = smart/explicit16
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=âŠ"24
17,4%transfer_method = piped8
63,0%forks = XXX29
6,5%Mitte midagi, ainult Mitogen3
8,7%Mitogen + mÀrgin, millised neist seadistustest4
46 kasutajat hÀÀletas. 21 kasutajat jÀi erapooletuks.
Kas soovite veel erinevat infot Ansible'i kohta?
78,3%jah, muidugi54
21,7%jah, aga tahan rohkem hardcore asju!15
0,0%ei, ja tasuta ei lÀhe0
0,0%ei, liiga keeruline!!!0
69 kasutajat hÀÀletas. 7 kasutajat jÀi erapooletuks.
Allikas: habr.com
