varð einn af þeim vinsælustu . Eftir árið 2015 númerið fór yfir þúsundir og Ansible varð líklega mest notaða dreifingar- og hljómsveitarkerfið. Fjölbreytt notkunarsvið hennar er mjög áhrifamikið.
Ansible virkar yfir SSH tengingar við ytri gestgjafa. Það opnar SSH lotu, skráir sig inn, afritar Python kóðann yfir netið og skrifar hann í sérstaka tímabundna skrá. Eftir það keyrir það þessa skrá á ytri vélinni. Öll þessi röð aðgerða er frekar löng og leiðinleg, svo það eru ýmsar leiðir til að hagræða henni.
Ein af þessum leiðum er sem gerir þér kleift að nota eina SSH lotu til að framkvæma leiðbeiningar, frekar en að opna nýja lotu í hvert sinn, sem getur sparað okkur mikinn tíma. (Mundu bara að slökkva requiretty stilling fyrir sudo í þínu /etc/sudoers skrá á ytri vélinni)
Ný leið til að yfirklukka Ansible er python bókasafn sem heitir . Ef einhver hefur ekki heyrt um það mun ég lýsa stuttlega virkni þess. Það gerir hraðvirka framkvæmd python kóða á fjartengdri vél og Ansible er aðeins eitt dæmi um notkun. Mitogen notar UNIX pípu á ytri vélinni og flytur python kóða þjappað með zlib og raðnúmerað með súrum gúrkum. Þetta hjálpar til við að klára það hraðar og sparar umferð. Ef þú hefur áhuga á ítarlegri útskýringu er best að lesa um það á síðunni . En í dag munum við einblína aðeins á hvernig bókasafnið virkar með Ansible.
Mitogen getur við vissar aðstæður flýtt fyrir Ansible kóðanum þínum nokkrum sinnum og dregið verulega úr umferðarnotkun. Við skulum skoða vinsælustu notkunartilvikin og sjá hversu mikið það hjálpar okkur.
Ég nota Ansible mest fyrir: búa til stillingarskrár á ytri vél, setja upp pakka, afrita skrár til og frá ytri vélinni. Kannski hefurðu önnur dæmi - skrifaðu í athugasemdunum.
Við skulum fara!
Mítógen stillingar fyrir Ansible er mjög einföld:
Settu upp Mitogen bókasafnið:
pip install mitogenNú eru tvær jafngildar leiðir - annað hvort stilla valkostina í ansible.cfg stillingarskránni, eða stilla nauðsynlegar umhverfisbreytur.
Gerum ráð fyrir að leiðin að uppsettu Mitogen verði /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Þá:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_lineareða
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategyVið skulum setja upp Ansible í virtualenv, með og án Mitogen:
virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10Vinsamlegast athugaðu að Mitogen 0.2.7 virkar ekki með Ansible 2.8 (frá og með maí 2019)
Að búa til samheiti:
alias pure-ansible-playbook='$(pwd)/pure_ansible/bin/ansible-playbook'
alias mitogen-ansible-playbook='ANSIBLE_STRATEGY_PLUGINS=$(pwd)/mitogen_ansible/lib/python3.7/site-packages/ansible_mitogen/plugins/strategy ANSIBLE_STRATEGY=mitogen_linear $(pwd)/mitogen_ansible/bin/ansible-playbook'Nú skulum við reyna að keyra leikbók sem býr til skrár á ytri vél:
---
- hosts: all
gather_facts: false
tasks:
- name: Create files with copy content module
copy:
content: |
test file {{ item }}
dest: ~/file_{{ item }}
with_sequence: start=1 end={{ n }}Og við skulum keyra það með og án Mitogen til að búa til 10 skrár:
time mitogen-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null
real 0m2.603s
user 0m1.152s
sys 0m0.096s
time pure-ansible-playbook file_creation.yml -i hosts -e n=10 &>/dev/null
real 0m5.908s
user 0m1.745s
sys 0m0.643sVið sjáum tvöfalda framför. Við skulum athuga með 2, 20, ..., 30 skrár:
time pure-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null
real 0m51.775s
user 0m8.039s
sys 0m6.305s
time mitogen-ansible-playbook file_creation.yml -i hosts -e n=100 &>/dev/null
real 0m4.331s
user 0m1.903s
sys 0m0.197sFyrir vikið flýttum við framkvæmd um meira en 10 sinnum!
Nú skulum við prófa mismunandi aðstæður og sjá hversu miklu hraðar allt virkar fyrir okkur:
Forskrift til að afrita skrár á ytri hýsil frá staðbundnum (með einingunni
copy):
Forskrift til að búa til skrár á ytri vél með
copymát:
Atburðarás með því að hlaða niður skrám frá ytri hýsil til staðbundins:
Við skulum reyna atburðarás með nokkrum (3) fjartengdum vélum, til dæmis atburðarás þar sem skrár eru afritaðar á ytri hýsil:
Eins og þú sérð sparar Mitogen okkur bæði tíma og umferð í þessum aðstæðum. En ef flöskuhálsinn er ekki í Ansible, heldur til dæmis í I/O á diski eða neti, eða einhvers staðar annars staðar, þá er erfitt að búast við því að Mitogen hjálpi okkur.
Prófum skriftu með því að setja upp pakka með yum/dnf og python einingum með því að nota pip. Pakkarnir voru í skyndiminni til að vera ekki háðir netgöllum:
---
- hosts: all
gather_facts: false
tasks:
- name: Install packages
become: true
package:
name:
- samba
- httpd
- nano
- ruby
state: present
- name: Install pip modules
become: true
pip:
name:
- pytest-split-tests
- bottle
- pep8
- flask
state: present
Með Mitogen tók það 12 sekúndur, það sama og án hans.
Á síðunni þú getur skoðað önnur viðmið og próf. Eins og segir á síðunni:
Mitogen getur ekki flýtt fyrir einingunni þegar hún er í gangi. Það getur aðeins gert framkvæmd þessarar einingu eins hratt og mögulegt er.
Þess vegna er mikilvægt að finna flöskuhálsana þína í dreifingunni þinni og ef þeir eru vegna Ansible, þá mun Mitogen hjálpa þér að leysa þá og flýta verulega fyrir framkvæmd leikbókanna þinna.
Heimild: www.habr.com
