Kuthamangitsa Ansible

Kuthamangitsa Ansible
Si chinsinsi kuti ndi makonda osasinthika Ansible sangathe kuchita ntchito yake mwachangu kwambiri. M'nkhaniyi ndifotokoza zifukwa zingapo za izi ndikupereka makonda ochepa omwe, mwina, angawonjezere liwiro la polojekiti yanu.

Apa ndi m'munsimu tikukambirana Ansible 2.9.x, amene anaikidwa mu virtualenv mwatsopano analenga mu njira mumaikonda.

Mukatha kukhazikitsa, pangani fayilo ya "ansible.cfg" pafupi ndi buku lanu lamasewera - malowa amakupatsani mwayi wosinthira zosinthazi pamodzi ndi pulojekitiyi, kuphatikizanso zidzangotsegula zokha.

Kupaka mapaipi

Ena mwina adamvapo kale zakufunika kogwiritsa ntchito mapaipi, ndiko kuti, osatengera ma module ku fayilo ya chandamale, koma kusamutsa zip archive atakulungidwa mu Base64 molunjika ku stdin ya womasulira wa Python, koma ena sangatero, koma zoona. imakhalabe chowonadi: izi akadali ochepera. Tsoka ilo, magawo ena odziwika a Linux omwe amagwiritsidwa ntchito kukonza sudo osati mwachisawawa - kotero kuti lamuloli limafunikira tty (terminal), kotero Ansible adasiya izi zothandiza kwambiri zitayimitsidwa mwachisawawa.

pipelining = True

Kusonkhanitsa mfundo

Kodi mumadziwa kuti ndi zoikamo zosasinthika, Ansible pa sewero lililonse limayambitsa zosonkhanitsira zowona kwa onse omwe akutenga nawo gawo? Kawirikawiri, ngati simunadziwe, tsopano mukudziwa. Kuti izi zisachitike, muyenera kuyatsa njira yofunsira mosapita m'mbali kuti mutolere mfundo (zomveka) kapena mwanzeru. M'menemo, zowona zidzasonkhanitsidwa kuchokera kwa omwe amasewera omwe sanakumane nawo m'masewera am'mbuyomu.
UPD. Mukamakopera, muyenera kusankha imodzi mwazokonda.

gathering = smart|explicit

Kugwiritsanso ntchito zolumikizira za ssh

Ngati mudayendetsapo Ansible mumayendedwe owongolera (njira ya "v", yobwerezedwa kamodzi mpaka kasanu ndi kamodzi), mwina mwazindikira kuti kulumikizana kwa ssh kumapangidwa ndikusweka. Kotero, palinso zobisika zingapo pano.

Mutha kupewa sitepe yakukhazikitsanso kulumikizana kwa ssh pamilingo iwiri nthawi imodzi: zonse mwachindunji mu kasitomala wa ssh, komanso posamutsa mafayilo kwa woyang'anira wowongolera kuchokera kwa manejala.
Kuti mugwiritsenso ntchito kulumikizana kwa ssh, ingoperekani makiyi ofunikira kwa kasitomala wa ssh. Kenako iyamba kuchita izi: ikakhazikitsa kulumikizana kwa ssh kwa nthawi yoyamba, ipanganso chotchedwa control socket, pakukhazikitsa kotsatira, idzayang'ana kukhalapo kwa socket iyi, ndipo ikapambana, gwiritsaninso ntchito ssh kugwirizana komwe kulipo. Ndipo kuti zonsezi zikhale zomveka, tiyeni tikhazikitse nthawi yoti tisungitse kulumikizana kukakhala kosagwira ntchito. Mutha kuwerenga zambiri mu ssh zolemba, ndipo m'mawu a Ansible timangogwiritsa ntchito "kutumiza" zosankha zofunika kwa kasitomala wa ssh.

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

Kuti mugwiritsenso ntchito ssh yotseguka kale posamutsa mafayilo kwa wowongolera, ingotchulani malo ena osadziwika ssh_tranfer_method. Zolemba pankhaniyi ndizovuta kwambiri wotopetsa ndi kusocheretsa, chifukwa njirayi imagwira ntchito bwino! Koma kuwerenga source kodi amakulolani kuti mumvetsetse zomwe zidzachitike: lamulo la dd lidzakhazikitsidwa pa otsogolera omwe akuyendetsedwa, akugwira ntchito mwachindunji ndi fayilo yomwe mukufuna.

transfer_method = piped

Mwa njira, munthambi ya "kukulitsa" izi zimakhalaponso osapita kulikonse.

Osawopa mpeni, kuopa mphanda

Kuyika kwina kothandiza ndi mafoloko. Zimatsimikizira kuchuluka kwa njira za ogwira ntchito zomwe zidzalumikizana nthawi imodzi ndi olandira ndikuchita ntchito. Chifukwa cha mawonekedwe a Python ngati chilankhulo, njira zimagwiritsidwa ntchito, osati ulusi, chifukwa Ansible amathandizirabe Python 2.7 - palibe asyncio kwa inu, palibe chifukwa choyambitsa machitidwe osagwirizana pano! Mwachikhazikitso Ansible amathamanga zisanu ogwira ntchito, koma akafunsidwa molondola, ayambitsa zambiri:

forks = 20

Ndikukuchenjezani nthawi yomweyo kuti pangakhale zovuta pano zokhudzana ndi kuchuluka kwa kukumbukira pa makina olamulira. Mwanjira ina, mutha kuyika mafoloko = 100500, koma ndani adati zigwira ntchito?

Kuziyika zonse pamodzi

Zotsatira zake, kwa ansible.cfg (mtundu wa ini), zosintha zofunika zitha kuwoneka motere:

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

Ndipo ngati mukufuna kubisa zonse mu YaML-kufufuza kwamunthu wathanzi, ndiye kuti zitha kuwoneka motere:

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

Tsoka ilo, izi sizingagwire ntchito ndi zoikamo "kusonkhanitsa = anzeru / omveka" ndi "mafoloko = 20": zofanana zawo za YaML kulibe. Mwina timawayika mu ansible.cfg, kapena timadutsa mumitundu yosiyanasiyana ya chilengedwe ANSIBLE_GATHERING ndi ANSIBLE_FORKS.

Za Mitogen
- Kodi izi za Mitogen zili kuti? - muli ndi ufulu wofunsa, owerenga okondedwa. Palibe paliponse m'nkhaniyi. Koma ngati ndinu okonzeka kwenikweni kuwerenga malamulo ake ndi kudziwa chifukwa playbook wanu ngozi ndi Mitogen, koma ntchito bwino ndi vanila Ansible, kapena chifukwa playbook yemweyo anali kugwira ntchito bwino kale, koma pambuyo pomwe anayamba kuchita zachilendo - chabwino, Mitogen akhoza kukhala chida chanu. Ikani izo, zimvetseni, lembani zolemba - ndiziwerenga ndi chidwi.

Chifukwa chiyani ine ndekha sindigwiritsa ntchito Mitogen? Chifukwa gladiolus imagwira ntchito pokhapokha ngati ntchitozo ndi zophweka ndipo zonse zili bwino. Komabe, ngati mutembenukira pang'ono kumanzere kapena kumanja - ndizomwezo, tafika: poyankha, zochepa zosadziwika bwino zimawulukira pa inu, ndipo kuti mutsirize chithunzicho, zonse zomwe zikusowa ndi mawu omwe amawoneka kuti "zikomo nonse. , aliyense ndi mfulu.” Kawirikawiri, sindikufuna kutaya nthawi kuti ndipeze zifukwa za "kugogoda mobisa".

Zina mwazosinthazi zidapezeka powerenga source kodi plugin yolumikizira pansi pa dzina lodzifotokozera "ssh.py". Ndimagawana zotsatira za kuwerenga ndikuyembekeza kuti zidzalimbikitsa wina kuti ayang'ane magwero, kuwawerenga, kuyang'ana kukhazikitsa, kufananiza ndi zolemba - pambuyo pake, posakhalitsa zonsezi zidzakubweretserani zotsatira zabwino. Zabwino zonse!

Ogwiritsa ntchito olembetsedwa okha ndi omwe angatenge nawo gawo pa kafukufukuyu. Lowani muakauntichonde.

Ndi ma Ansible makonda awa ati omwe mumagwiritsa ntchito kufulumizitsa mapulojekiti anu?

  • 69,6%pipelining=zoona32

  • 34,8%kusonkhanitsa = smart/explicic16

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

  • 17,4%transfer_method = piped8

  • 63,0%mafoloko = XXX29

  • 6,5%Palibe mwa izi, Mitogen3 yokha

  • 8,7%Mitogen + Ndiwona kuti ndi iti mwa makonda awa4

Ogwiritsa 46 adavota. Wogwiritsa m'modzi adasala.

Mukufuna zambiri za Ansible?

  • 78,3%inde, ndithudi54

  • 21,7%inde, ndikungofuna zinthu zolimba!15

  • 0,0%ayi, ndipo sikofunikira pachabe0

  • 0,0%ayi, zavuta!!!0

Ogwiritsa 69 adavota. Ogwiritsa ntchito 7 adakana.

Source: www.habr.com

Kuwonjezera ndemanga