Sio siri kwamba kwa mipangilio ya chaguo-msingi Ansible haiwezi kufanya kazi yake haraka sana. Katika kifungu hicho nitaonyesha sababu kadhaa za hii na kutoa kiwango cha chini cha mipangilio ambayo, ikiwezekana, itaongeza kasi ya mradi wako.
Hapa na chini tunajadili Ansible 2.9.x, ambayo ilisakinishwa katika virtualenv iliyoundwa upya kwa njia unayopenda.
Baada ya kusakinisha, unda faili ya "ansible.cfg" karibu na kitabu chako cha kucheza - eneo hili litakuruhusu kuhamisha mipangilio hii pamoja na mradi, pamoja na kwamba itapakia kiotomatiki.
Uwekaji mabomba
Wengine wanaweza kuwa tayari wamesikia juu ya hitaji la kutumia bomba, ambayo ni, sio kunakili moduli kwa mfumo wa faili wa mfumo unaolengwa, lakini kuhamisha kumbukumbu ya zip iliyofunikwa kwa Base64 moja kwa moja kwa stdin ya mkalimani wa Python, lakini wengine hawawezi, lakini ukweli. inabaki kuwa ukweli:
pipelining = True
Kukusanya ukweli
Je, unajua kwamba kwa mipangilio chaguo-msingi, Yanayotumika kwa kila igizo huanzisha mkusanyiko wa ukweli kwa wapangishaji wote wanaoshiriki katika mchezo huo? Kwa ujumla, ikiwa haukujua, sasa unajua. Ili kuzuia hili kutokea, unahitaji kuwezesha hali ya ombi wazi ya kukusanya ukweli (dhahiri) au modi mahiri. Ndani yake, ukweli utakusanywa tu kutoka kwa wahudumu wale ambao hawakukutana katika michezo ya awali.
UPD. Wakati wa kunakili, itabidi uchague mojawapo ya mipangilio hii.
gathering = smart|explicit
Kutumia tena miunganisho ya ssh
Ikiwa umewahi kuendesha Ansible katika hali ya utatuzi (chaguo la "v", linalorudiwa mara moja hadi tisa), unaweza kuwa umegundua kuwa miunganisho ya ssh inafanywa na kuvunjika kila mara. Kwa hivyo, kuna hila kadhaa hapa pia.
Unaweza kuepuka hatua ya kuanzisha tena muunganisho wa ssh katika viwango viwili kwa wakati mmoja: zote mbili moja kwa moja kwenye mteja wa ssh, na wakati wa kuhamisha faili kwa mwenyeji anayesimamiwa kutoka kwa msimamizi.
Ili kutumia tena muunganisho wazi wa ssh, pitisha funguo muhimu kwa mteja wa ssh. Kisha itaanza kufanya yafuatayo: wakati wa kuanzisha muunganisho wa ssh kwa mara ya kwanza, itaongeza kinachojulikana kama tundu la kudhibiti, kwenye usakinishaji unaofuata, itaangalia uwepo wa tundu hili, na ikiwa imefanikiwa, tumia tena. muunganisho uliopo wa ssh. Na ili kufanya haya yote kuwa na maana, hebu tuweke wakati wa kudumisha muunganisho wakati hautumiki. Unaweza kusoma zaidi ndani
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"
Ili kutumia tena muunganisho wa ssh ambao tayari umefunguliwa wakati wa kuhamisha faili kwa seva pangishi inayosimamiwa, bainisha tu mpangilio mwingine usiojulikana ssh_tranfer_method. Nyaraka juu ya mada hii ni kubwa mno
transfer_method = piped
Kwa njia, katika tawi la "kuendeleza" mpangilio huu pia upo
Usiogope kisu, ogopa uma
Mpangilio mwingine muhimu ni uma. Huamua idadi ya michakato ya mfanyakazi ambayo itaunganishwa wakati huo huo na wasimamizi na kufanya kazi. Kwa sababu ya upekee wa Python kama lugha, michakato hutumiwa, sio nyuzi, kwa sababu Ansible bado inasaidia Python 2.7 - hakuna asyncio kwako, hakuna maana ya kutambulisha tabia ya asynchronous hapa! Kwa chaguo-msingi Ansible anaendesha
forks = 20
Ninakuonya mara moja kwamba kunaweza kuwa na shida hapa zinazohusiana na kiasi kinachopatikana cha kumbukumbu kwenye mashine ya kudhibiti. Kwa maneno mengine, unaweza, kwa kweli, kuweka uma = 100500, lakini ni nani alisema itafanya kazi?
Kuweka yote pamoja
Kama matokeo, kwa ansible.cfg (umbizo la ini), mipangilio inayofaa inaweza kuonekana kama hii:
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Na ikiwa unataka kuficha kila kitu katika hesabu ya kawaida ya YaML ya mtu mwenye afya, basi inaweza kuonekana kama hii:
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Kwa bahati mbaya, hii haitafanya kazi na mipangilio "gathering = smart/explicit" na "forks = 20": sawa na YaML hazipo. Labda tunaziweka katika ansible.cfg, au tunazipitisha kupitia vigeu vya mazingira ANSIBLE_GATHERING na ANSIBLE_FORKS.
Kuhusu Mitogen
- Hii ni wapi kuhusu Mitogen? - una haki ya kuuliza, msomaji mpendwa. Hakuna popote katika makala hii. Lakini ikiwa uko tayari kusoma msimbo wake na kujua ni kwa nini kitabu chako cha kucheza kinagongana na Mitogen, lakini kinafanya kazi vizuri na vanilla Ansible, au kwa nini kitabu hicho cha kucheza kilifanya kazi vizuri hapo awali, lakini baada ya sasisho kuanza kufanya mambo ya kushangaza - vizuri, Mitogen angeweza. uwezekano kuwa chombo chako. Itumie, ielewe, andika nakala - nitaisoma kwa kupendeza.
Kwa nini mimi binafsi situmii Mitogen? Kwa sababu gladiolus inafanya kazi mradi tu kazi ni rahisi sana na kila kitu kiko sawa. Walakini, ukigeukia kidogo kushoto au kulia - ndivyo hivyo, tumefika: kwa kujibu, wachache wa tofauti zisizo wazi wanaruka kwako, na kukamilisha picha, kinachokosekana ni kifungu cha kawaida "asante nyote. , kila mtu yuko huru.β Kwa ujumla, sitaki tu kupoteza muda kutafuta sababu za "kubisha chini ya ardhi" ijayo.
Baadhi ya mipangilio hii iligunduliwa wakati wa mchakato wa kusoma
Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti.
Ni ipi kati ya mipangilio Inayofaa ifuatayo unayotumia kuharakisha miradi yako?
-
69,6%pipelining=kweli32
-
34,8%kukusanya = smart/wazi16
-
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
-
17,4%transfer_method = piped8
-
63,0%uma = XXX29
-
6,5%Hakuna kati ya haya, Mitogen3 tu
-
8,7%Mitogen + nitagundua ni ipi kati ya mipangilio hii4
Watumiaji 46 walipiga kura. Mtumiaji 21 alijizuia.
Unataka mambo zaidi kuhusu Ansible?
-
78,3%ndio, bila shaka54
-
21,7%ndio, nataka tu mambo magumu zaidi!15
-
0,0%hapana, na sio lazima kwa chochote0
-
0,0%hapana, ni ngumu!!!0
Watumiaji 69 walipiga kura. Watumiaji 7 walijizuia.
Chanzo: mapenzi.com