sai ĂŒheks populaarsemaks ... PĂ€rast 2015. aastal number ĂŒletas tuhandeid ja Ansiblest sai ilmselt enimkasutatav juurutus- ja orkestreerimissĂŒsteem. Selle lai valik rakendusi on vĂ€ga muljetavaldav.
Ansible töötab SSH-ĂŒhenduste kaudu kaughostidega. See avab SSH-seansi, logib sisse, kopeerib Pythoni koodi ĂŒle vĂ”rgu ja kirjutab selle eraldi ajutisse faili. PĂ€rast seda kĂ€ivitab see selle faili kaugmasinas. Kogu see toimingute jada on ĂŒsna pikk ja tĂŒĂŒtu, nii et selle optimeerimiseks on erinevaid vĂ”imalusi.
Ăks neist viisidest on mis vĂ”imaldab teil kasutada ĂŒhte SSH-seanssi juhiste tĂ€itmiseks, selle asemel, et avada iga kord uus seanss, mis vĂ”ib sÀÀsta palju aega. (Pidage meeles, et lĂŒlitate vĂ€lja requiretty teie sudo seadistus /etc/sudoers fail kaugmasinas)
Uus viis Ansible'i kiirendamiseks on pythoni raamatukogu nimega . Kui keegi pole sellest kuulnud, siis kirjeldan lĂŒhidalt selle funktsionaalsust. See vĂ”imaldab pythoni koodi kiiret kĂ€ivitamist kaugmasinas ja Ansible on vaid ĂŒks nĂ€ide selle kasutamisest. Mitogen kasutab kaugmasinas UNIX-i toru ja edastab zlib-iga tihendatud ja serialiseeritud pythoni koodi. See aitab selle kiiremini lĂ”pule viia ja sÀÀstab liiklust. Kui olete huvitatud tĂ€psemast selgitusest, on kĂ”ige parem selle kohta lugeda lehelt . Kuid tĂ€na keskendume ainult sellele, kuidas raamatukogu Ansiblega töötab.
Mitogeen vÔib teatud asjaoludel teie Ansible koodi mitu korda kiirendada ja liikluskulu oluliselt vÀhendada. Vaatame kÔige populaarsemaid kasutusjuhtumeid ja vaatame, kui palju see meid aitab.
Kasutan Ansible'i kÔige enam: konfiguratsioonifailide loomiseks kaugmasinas, pakettide installimiseks, failide kopeerimiseks kaugmasinasse ja sealt. VÔib-olla on teil muid nÀiteid - kirjutage kommentaaridesse.
Mine!
Ansible'i mitogeeni konfiguratsioon on vÀga lihtne:
Installige mitogeeni teek:
pip install mitogenNĂŒĂŒd on kaks samavÀÀrset vĂ”imalust â kas seadistada suvandid ansible.cfg konfiguratsioonifailis vĂ”i mÀÀrata vajalikud keskkonnamuutujad.
Oletame, et tee paigaldatud mitogeeni saab olema /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. SeejÀrel:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linearvÔi
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategyInstallime Ansible'i virtualenv'i koos Mitogeniga ja ilma:
virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10Pange tÀhele, et Mitogen 0.2.7 ei tööta koos versiooniga Ansible 2.8 (2019. aasta mai seisuga)
Alinimede tegemine:
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'Proovime nĂŒĂŒd kĂ€ivitada esitusraamatut, mis loob faile kaugmasinas:
---
- 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 }}Ja kÀivitame selle koos Mitogeniga ja ilma, et luua 10 faili:
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.643sNĂ€eme kahekordset paranemist. Kontrollime 2, 20, ..., 30 faili:
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.197sSelle tulemusena kiirendasime tÀitmist rohkem kui 10 korda!
NĂŒĂŒd proovime erinevaid stsenaariume ja vaatame, kui palju kiiremini kĂ”ik meie jaoks toimib:
Skript failide kopeerimiseks kohalikust hostist (koos mooduliga
copy):
Skript failide loomiseks kaughostis
copymoodul:
Stsenaarium failide allalaadimisega kaughostist kohalikku:
Proovime mitme (3) kaugmasinaga stsenaariumi, nÀiteks failide kaughosti kopeerimisega:
Nagu nÀete, sÀÀstab Mitogen nende stsenaariumide puhul meie aega ja liiklust. Aga kui kitsaskoht pole Ansibles, vaid nÀiteks ketta vÔi vÔrgu I/O-s vÔi kusagil mujal, siis on raske loota, et Mitogen meid aitaks.
Proovime skripti yum/dnf ja pythoni moodulitega pakettide installimisega pip abil. Paketid salvestati vahemÀllu, et mitte sÔltuda vÔrgutÔrgetest:
---
- 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
Mitogeniga kulus 12 sekundit, sama palju kui ilma selleta.
Lehel saate vaadata muid vÔrdlusaluseid ja teste. Nagu lehel on kirjas:
Mitogeen ei saa moodulit kiirendada, kui see töötab. See vÔib muuta selle mooduli tÀitmise ainult nii kiireks kui vÔimalik.
SeetÔttu on oluline leida oma kasutuselevÔtu kitsaskohad ja kui need on tingitud Ansiblest, siis Mitogen aitab teil need lahendada ja kiirendab oluliselt teie mÀnguraamatute tÀitmist.
Allikas: www.habr.com
