I-Ansible isebenza ngodibaniso lwe-SSH kwiinginginya ezikude. Ivula iseshoni ye-SSH, ingene, ikopishe ikhowudi yePython phezu kwenethiwekhi kwaye ibhale kwifayile yexeshana eyahlukileyo. Emva koko, iqhuba le fayile kumatshini okude. Olu luhlu lulonke lwemisebenzi lude kakhulu kwaye luyadinisa, ngoko ke kukho iindlela ezahlukeneyo zokuyikhulisa.
Enye yezi ndlela requiretty
ukuseta i-sudo kweyakho /etc/sudoers
ifayile kumatshini okude)
Indlela entsha yokugqithisa i-Ansible yilayibrari yepython ebizwa
I-Mitogen kwiimeko ezithile inokukhawulezisa ikhowudi yakho ye-Ansible amaxesha amaninzi kwaye inciphise kakhulu ukusetyenziswa kwezithuthi. Makhe sijonge awona matyala osetyenziso adumileyo kwaye sibone ukuba isinceda kangakanani.
Ndisebenzisa i-Ansible kakhulu: ukwenza iifayile zoqwalaselo kumatshini okude, ukufaka iipakethe, ukukopa iifayile ukuya nokusuka kumatshini okude. Mhlawumbi unayo eminye imizekelo - bhala kwizimvo.
Masihambe!
Uqwalaselo lwe-Mitogen lwe-Ansible lulula kakhulu:
Faka ithala leencwadi leMitogen:
pip install mitogen
Ngoku kukho iindlela ezimbini ezilinganayo - nokuba uqwalasele iinketho kwi ansible.cfg ifayile yoqwalaselo, okanye usete iimeko ezifunekayo eziguquguqukayo.
Makhe sicinge ukuba indlela eya kwi-Mitogen efakiweyo iya kuba /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
. Emva koko:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear
okanye
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
Masifake i-Ansible kwi-virtualenv, kunye nangaphandle kweMitogen:
virtualenv mitogen_ansible
./mitogen_ansible/bin/pip install ansible==2.7.10 mitogen
virtualenv pure_ansible
./pure_ansible/bin/pip install ansible==2.7.10
Nceda uqaphele ukuba iMitogen 0.2.7 ayisebenzi ne-Ansible 2.8 (ukususela ngoMeyi 2019)
Ukwenza iziteketiso:
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'
Ngoku makhe sizame ukuqhuba incwadi yokudlala eyenza iifayile kumatshini okude:
---
- 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 }}
Kwaye masiyiqhube kunye nangaphandle kweMitogen ukwenza iifayile ezili-10:
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.643s
Sibona uphuculo oluphindwe kabini. Makhe sijonge 2, 20, ..., 30 iifayile:
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.197s
Ngenxa yoko, siye sakhawulezisa ukubulawa izihlandlo ezingaphezu kwe-10!
Ngoku makhe sizame iimeko ezahlukeneyo kwaye sibone ukuba yonke into isebenza ngokukhawuleza kangakanani na kuthi:
-
Ushicilelo lokukhuphela iifayile kwinginginya ekude ukusuka kweyasekuhlaleni (ngemodyuli
copy
):
-
Iscript sokwenza iifayile kwinginginya ekude nge
copy
imodyuli:
-
Imeko yokukhuphela iifayile kwinginginya ekude ukuya kweyasekuhlaleni:
Makhe sizame imeko eliqela (3) koomatshini abakude, umzekelo imeko yokukopa iifayile kumamkeli okude:
Njengoko ubona, uMitogen usisindisa zombini ixesha kunye ne-traffic kwezi meko. Kodwa ukuba i-bottleneck ayikho kwi-Ansible, kodwa umzekelo kwi-I / O yediski okanye inethiwekhi, okanye kwenye indawo, ngoko kunzima ukulindela ukuba uMitogen uya kusinceda.
Makhe sizame iskripthi ngokufaka iipakethe kunye neemodyuli ze-yum/dnf kunye nepython sisebenzisa ipip. Iipakethe zigcinwe kwi-cache ukuze zingaxhomekeki kwiimpazamo zenethiwekhi:
---
- 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
NgeMitogen kuthathe imizuzwana eyi-12, ngokufanayo nangaphandle kwayo.
Kwiphepha
I-Mitogen ayinakukhawulezisa imodyuli xa isebenza. Ingenza kuphela ukuphunyezwa kwale modyuli ngokukhawuleza kangangoko kunokwenzeka.
Ke ngoko, kubalulekile ukufumana imiqobo yakho ekuhanjisweni kwakho kwaye ukuba kungenxa ye-Ansible, ke iMitogen iya kukunceda ukuba usombulule kwaye ikhawulezise kakhulu ukwenziwa kweencwadi zakho zokudlala.
umthombo: www.habr.com