bû yek ji herî populer . Piştî di sala 2015 de hejmara Ji hezaran derbas kir û Ansible dibe ku pergala herî zêde tê bikar anîn saz kirin û orkestrasyonê. Berfirehiya serîlêdanên wê pir bandorker e.
Ansible li ser girêdanên SSH bi mêvandarên dûr re dixebite. Ew danişînek SSH vedike, têkeve, koda Python li ser torê kopî dike û wê li pelek demkî ya cihê dinivîse. Piştî wê, ew vê pelê li ser makîneya dûr dimeşîne. Tevahiya vê rêza operasyonan pir dirêj û bêzar e, ji ber vê yekê awayên cûrbecûr hene ku wê xweşbîn bikin.
Yek ji van rêyan e ku destûrê dide te ku hûn yek danişîna SSH-ê bikar bînin da ku talîmatan bicîh bînin, li şûna ku her car danişînek nû vekin, ku dikare gelek wextê me xilas bike. (Tenê ji bîr mekin ku vemirînin requiretty mîhengê ji bo sudo di te /etc/sudoers pelê li ser makîneya dûr)
Rêbazek nû ya zêdekirina Ansible pirtûkxaneyek python e ku jê re tê gotin . Ger kesek jê nebihîstiye, ez ê bi kurtî fonksiyona wê vebêjim. Ew destûrê dide darvekirina bilez a koda python li ser makîneyek dûr, û Ansible tenê mînakek karanîna ye. Mitogen li ser makîneya dûr boriyek UNIX bikar tîne û koda python a ku bi zlib hatî komkirin û bi tirşikê serialîzekirî vediguhezîne. Ev ji bo temamkirina wê zûtir dibe alîkar û trafîkê xilas dike. Heke hûn bi ravekek berfirehtir eleqedar in, çêtirîn e ku hûn li ser rûpelê li ser wê bixwînin . Lê îro em ê tenê bala xwe bidin ka pirtûkxane bi Ansible re çawa dixebite.
Mitogen di hin mercan de dikare koda weya Ansible çend caran bilez bike û bi girîngî xerckirina trafîkê kêm bike. Werin em dozên karanîna herî populer binihêrin û bibînin ka ew çiqas ji me re dibe alîkar.
Ez Ansible-ê herî zêde bikar tînim: afirandina pelên veavakirinê li ser makîneyek dûr, sazkirina pakêtan, kopîkirina pelan ji makîneya dûr û jê re. Dibe ku we mînakên din hene - di şîroveyan de binivîsin.
Em herin!
Veavakirina Mitogen ji bo Ansible pir hêsan e:
Pirtûkxaneya Mitogen saz bikin:
pip install mitogenNaha du awayên hevwate hene - an vebijarkên di pelê veavakirinê de ansible.cfg mîheng bikin, an jî guhêrbarên hawîrdorê yên pêwîst saz bikin.
Ka em bihesibînin ku riya Mitogen-a sazkirî dê bibe /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Paşan:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linearan
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategyKa em Ansible li virtualenv, bi Mitogen û bêyî wê saz bikin:
virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10Ji kerema xwe not bikin ku Mitogen 0.2.7 bi Ansible 2.8 re naxebite (ji Gulana 2019-an de)
Çêkirina navnav:
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'Naha em hewl bidin ku pirtûkek lîstikê ku pelan li ser makîneyek dûr diafirîne bimeşîne:
---
- 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 }}Werin em wê bi Mitogen û bêyî wê bimeşînin da ku 10 pelan biafirînin:
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.643sEm pêşveçûnek 2-qatî dibînin. Ka em 20, 30, ..., 100 pelan kontrol bikin:
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.197sDi encamê de, me ji 10 caran zêdetir îdamê lezand!
Naha em werin senaryoyên cihêreng biceribînin û bibînin ka her tişt ji bo me çiqas zûtir dixebite:
Skrîpta kopîkirina pelan li mêvandarek dûr a herêmî (bi modulê
copy):
Skrîpta ji bo afirandina pelan li ser mêvandarek dûr bi
copymodule:
Senaryoya bi daxistina pelan ji mêvandarek dûr a herêmî:
Ka em senaryoyek bi çend (3) makîneyên dûr biceribînin, mînakî senaryoyek bi kopîkirina pelan li mêvandarek dûr:
Wekî ku hûn dibînin, Mitogen di van senaryoyan de hem dem û hem jî trafîkê me xilas dike. Lê heke gemar ne di Ansible de be, lê mînakî di I/O ya dîskek an torê de, an cîhek din be, wê hingê dijwar e ku meriv li bendê be ku Mitogen alîkariya me bike.
Ka em skrîptek bi sazkirina pakêtên bi modulên yum/dnf û python bi karanîna pip biceribînin. Ji bo ku bi xeletiyên torê ve girêdayî nebin, pakêt hatin cach kirin:
---
- 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
Bi Mitogen re 12 saniye girt, eynî wek bêyî wê.
Li ser rûpelê hûn dikarin li pîvan û ceribandinên din binêrin. Wekî ku rûpel dibêje:
Mitogen nikare modulê dema ku dixebite bilez bike. Ew tenê dikare pêkanîna vê modulê bi qasî ku pêkan zûtir bike.
Ji ber vê yekê, girîng e ku hûn di bicîhkirina xwe de astengên xwe bibînin û ger ew ji ber Ansible bin, wê hingê Mitogen dê ji we re bibe alîkar ku wan çareser bikin û bi girîngî lezkirina darvekirina pirtûkên lîstika we bike.
Source: www.habr.com
