Pagpadali sa Ansible

Pagpadali sa Ansible
Dili kini sekreto nga sa mga default setting dili mahimo sa Ansible ang trabaho niini nga dali. Sa artikulo itudlo nako ang daghang mga hinungdan alang niini ug nagtanyag usa ka mapuslanon nga minimum nga mga setting nga, mahimo’g, sa tinuud nga madugangan ang katulin sa imong proyekto.

Dinhi ug sa ubos atong hisgotan ang Ansible 2.9.x, nga gi-install sa bag-ong gibuhat nga virtualenv sa imong paboritong paagi.

Pagkahuman sa pag-install, paghimo usa ka file nga "ansible.cfg" tupad sa imong playbook - kini nga lokasyon magtugot kanimo nga ibalhin kini nga mga setting kauban ang proyekto, ug kini awtomatiko nga mag-load.

Pipelining

Ang uban tingali nakadungog na mahitungod sa panginahanglan sa paggamit sa pipelining, nga mao, dili pagkopya sa mga module sa sistema sa file sa target nga sistema, apan pagbalhin sa usa ka zip archive nga giputos sa Base64 direkta ngadto sa stdin sa Python interpreter, apan ang uban dili, apan ang kamatuoran. nagpabilin nga kamatuoran: kini nga setting nagpabilin gihapon nga underestimate. Ikasubo, ang pipila sa mga sikat nga distribusyon sa Linux nga gigamit sa pag-configure sa sudo dili kaayo maayo pinaagi sa default - aron kini nga mando nanginahanglan usa ka tty (terminal), mao nga gibiyaan sa Ansible kini nga mapuslanon kaayo nga setting nga gi-disable pinaagi sa default.

pipelining = True

Pagtigom sa mga kamatuoran

Nahibal-an ba nimo nga sa mga default setting, ang Ansible alang sa matag dula nagsugod sa pagkolekta sa mga kamatuoran alang sa tanan nga mga host nga miapil niini? Sa kinatibuk-an, kung wala ka nahibal-an, karon nahibal-an nimo. Aron mapugngan kini nga mahitabo, kinahanglan nimo nga i-enable ang klaro nga mode sa paghangyo alang sa pagkolekta sa mga kamatuoran (klaro) o ang smart mode. Niini, ang mga kamatuoran kolektahon lamang gikan sa mga host nga wala masugat sa nangaging mga dula.
UPD. Kung magkopya, kinahanglan nimong pilion ang usa niini nga mga setting.

gathering = smart|explicit

Paggamit pag-usab sa mga koneksyon sa ssh

Kung nakadagan ka na sa Ansible sa debugging mode (ang kapilian nga "v", gisubli usa hangtod siyam ka beses), mahimo nimong namatikdan nga ang mga koneksyon sa ssh kanunay nga gihimo ug nabuak. Busa, adunay pipila ka mga subtleties dinhi usab.

Mahimo nimong malikayan ang lakang sa pag-establisar pag-usab sa usa ka koneksyon sa ssh sa duha ka lebel sa usa ka higayon: pareho nga direkta sa ssh nga kliyente, ug kung magbalhin sa mga file sa gidumala nga host gikan sa manager.
Aron magamit pag-usab ang usa ka bukas nga koneksyon sa ssh, ipasa lang ang gikinahanglan nga mga yawe sa kliyente sa ssh. Unya kini magsugod sa pagbuhat sa mosunod: sa diha nga ang pag-establisar sa usa ka ssh koneksyon sa unang higayon, kini dugang nga paghimo sa usa ka gitawag nga control socket, sa sunod nga mga instalasyon, kini magsusi sa pagkaanaa niini nga socket, ug kon malampuson, sa paggamit pag-usab sa kasamtangan nga koneksyon sa ssh. Ug aron mahimo kining tanan nga makatarunganon, itakda ang oras sa pagpadayon sa koneksyon kung dili aktibo. Mahimo nimong basahon ang dugang sa ssh nga dokumentasyon, ug sa konteksto sa Ansible gigamit lang namo ang "pagpasa" sa gikinahanglan nga mga kapilian sa ssh nga kliyente.

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

Aron magamit pag-usab ang usa ka bukas na nga koneksyon sa ssh kung ibalhin ang mga file sa usa ka gidumala nga host, ipiho lang ang lain nga wala mailhi nga setting ssh_tranfer_method. Ang dokumentasyon sa kini nga hilisgutan labi ka kaayo kuripot ug makapahisalaag, tungod kay kini nga opsyon maayo kaayo! Apan pagbasa source code nagtugot kanimo nga masabtan kung unsa gyud ang mahitabo: ang dd nga mando ilunsad sa gidumala nga host, direkta nga nagtrabaho sa gusto nga file.

transfer_method = piped

Pinaagi sa dalan, sa "develop" nga sanga kini nga kahimtang anaa usab dili moadto bisan asa.

Ayaw kahadlok sa kutsilyo, kahadlok sa tinidor

Ang laing mapuslanon nga setting mao ang mga tinidor. Gitino niini ang gidaghanon sa mga proseso sa trabahante nga dungan nga magkonektar sa mga host ug maghimo sa mga buluhaton. Tungod sa mga peculiarities sa Python isip usa ka pinulongan, ang mga proseso gigamit, dili mga hilo, tungod kay ang Ansible nagsuporta gihapon sa Python 2.7 - walay asyncio alang kanimo, walay punto sa pagpaila sa asynchronous nga kinaiya dinhi! Pinaagi sa default Ansible midagan lima mga trabahante, apan kung pangutan-on sa husto, kini maglunsad og dugang:

forks = 20

Gipasidan-an ko lang ka dayon nga tingali adunay pipila ka mga kalisud dinhi nga may kalabutan sa magamit nga kantidad sa memorya sa control machine. Sa laing pagkasulti, mahimo nimo, siyempre, magtakda og mga tinidor = 100500, apan kinsa ang nag-ingon nga kini molihok?

Paghiusa sa tanan

Ingon usa ka sangputanan, alang sa ansible.cfg (ini nga pormat), ang kinahanglan nga mga setting mahimong ingon niini:

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

Ug kung gusto nimo itago ang tanan sa usa ka normal nga YaML-imbentaryo sa usa ka himsog nga tawo, nan kini mahimong tan-awon sama niini:

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

Ikasubo, dili kini molihok sa mga setting nga "pagpundok = maalamon / klaro" ug "mga tinidor = 20": ang ilang mga katumbas sa YaML wala maglungtad. Mabutang namo sila sa ansible.cfg, o ipaagi namo sila sa environment variables ANSIBLE_GATHERING ug ANSIBLE_FORKS.

Mahitungod sa Mitogen
- Asa kini mahitungod sa Mitogen? - aduna kay katungod sa pagpangutana, minahal nga magbabasa. Wala sa niini nga artikulo. Apan kung andam ka gyud nga basahon ang code niini ug mahibal-an kung ngano nga ang imong playbook nahagsa sa Mitogen, apan maayo ang pagtrabaho sa vanilla Ansible, o kung ngano nga ang parehas nga playbook nagtrabaho nga maayo kaniadto, apan pagkahuman sa usa ka update nagsugod sa pagbuhat sa mga katingad-an nga mga butang - maayo, Mitogen mahimo nga imong himan. Ipadapat kini, sabta kini, pagsulat og mga artikulo - Akong basahon kini uban ang interes.

Ngano nga dili nako personal nga gamiton ang Mitogen? Tungod kay ang gladiolus kini molihok lamang basta ang mga buluhaton yano ra ug maayo ang tanan. Bisan pa, kung moliko ka gamay sa wala o tuo - mao na, niabot na kami: agig tubag, pipila ka dili klaro nga mga eksepsiyon ang molupad kanimo, ug aron makompleto ang litrato, ang tanan nga nawala mao ang sagad nga hugpong sa mga pulong "salamat sa tanan. , libre ang tanan.” Sa kinatibuk-an, dili ko gusto nga mag-usik og panahon sa pagpangita sa mga hinungdan sa sunod nga "underground knock".

Ang pipila niini nga mga setting nadiskobrehan sa panahon sa proseso sa pagbasa source code koneksyon plugin sa ilalum sa kaugalingon nga pagpatin-aw nga ngalan "ssh.py". Gipaambit nako ang mga resulta sa pagbasa sa paglaum nga kini makadasig sa laing tawo sa pagtan-aw sa mga tinubdan, pagbasa niini, pagsusi sa pagpatuman, itandi sa dokumentasyon - human sa tanan, sa madugay o sa madali kining tanan magdala kanimo og positibo nga mga resulta. Good luck!

Ang mga rehistradong tiggamit lamang ang makaapil sa survey. Sign in, walay sapayan.

Asa sa mosunod nga mga setting sa Ansible ang imong gigamit aron mapadali ang imong mga proyekto?

  • 69,6%pipelining=tinuod32

  • 34,8%panagtapok = maalamon/klaro16

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

  • 17,4%pagbalhin_pamaagi = piped8

  • 63,0%mga tinidor = XXX29

  • 6,5%Wala niini, Mitogen3 lang

  • 8,7%Mitogen + Akong timan-an hain niini nga mga setting4

46 user ang nagboto. 21 user ang ni- abstain.

Gusto ug daghang butang bahin sa Ansible?

  • 78,3%oo, siyempre54

  • 21,7%oo, gusto lang ko ug dugang nga hardcore nga butang!15

  • 0,0%dili, ug kini dili kinahanglan alang sa wala0

  • 0,0%dili, kini komplikado!!!0

69 ka tiggamit ang nagboto. 7 ka tiggamit ang nag-abstain.

Source: www.habr.com

Idugang sa usa ka comment