I-Ansible isebenza ngoxhumo lwe-SSH kubasingathi berimothi. Ivula iseshini ye-SSH, ingene, ikopishe ikhodi ye-Python phezu kwenethiwekhi bese iyibhala efayeleni lesikhashana elihlukile. Ngemva kwalokho, isebenzisa leli fayela emshinini wesilawuli kude. Lonke lolu chungechunge lwemisebenzi lude kakhulu futhi luyakhathaza, ngakho-ke kunezindlela ezahlukahlukene zokuwenza ube mkhulu.
Enye yalezi zindlela requiretty
ukusetha i-sudo kweyakho /etc/sudoers
ifayela emshinini wesilawuli kude)
Indlela entsha yokweqa i-Ansible umtapo wezincwadi we-python obizwa
I-Mitogen ezimeni ezithile ingasheshisa ikhodi yakho ye-Ansible izikhathi ezimbalwa futhi yehlise kakhulu ukusetshenziswa kwethrafikhi. Ake sihlole izimo zokusetshenziswa ezidume kakhulu futhi sibone ukuthi zisisiza kangakanani.
Ngisebenzisa i-Ansible kakhulu ukwenza lokhu: ukudala amafayela okulungiselela emshinini oqhelile, ukufaka amaphakheji, ukukopisha amafayela ukuya nokusuka emshinini oqhelile. Mhlawumbe unezinye izibonelo - bhala kumazwana.
Hamba!
Ukucushwa kwe-Mitogen kwe-Ansible kulula kakhulu:
Faka ilabhulali ye-Mitogen:
pip install mitogen
Manje kunezindlela ezimbili ezifanayo - noma ulungise izinketho kufayela lokumisa elithi ansible.cfg, noma usethe okuguquguqukayo kwemvelo okudingekayo.
Ake sicabange ukuthi indlela eya ku-Mitogen efakiwe izoba /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
. Bese:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear
noma
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
Masifake i-Ansible ku-virtualenv, nge-Mitogen nangaphandle kwayo:
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
Sicela uqaphele ukuthi i-Mitogen 0.2.7 ayisebenzi ne-Ansible 2.8 (kusukela 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'
Manje ake sizame ukusebenzisa ibhuku lokudlala elidala amafayela emshinini oqhelile:
---
- 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 }}
Futhi masiyiqhube nge-Mitogen nangaphandle ukudala amafayela ayi-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 ukuthuthuka okuphindwe kabili. Ake sihlole amafayela angu-2, 20, ..., 30:
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 yalokho, sasheshisa ukubulawa izikhathi ezingaphezu kwezingu-10!
Manje ake sizame izimo ezihlukene futhi sibone ukuthi yonke into isisebenzela ngokushesha kangakanani:
-
Iskripthi sokukopisha amafayela kumsingathi oqhelile ukusuka kwewasendaweni (ngemojula
copy
):
-
Iskripthi sokudala amafayela kumsingathi wesilawuli kude nge
copy
imojuli:
-
Isimo sokudawuniloda amafayela kusuka kubasingathi berimothi kuya kweyasendaweni:
Ake sizame isimo ngemishini embalwa (3) ekude, isibonelo isimo sokukopisha amafayela kumsingathi oqhelile:
Njengoba ubona, i-Mitogen isisindisa kokubili isikhathi nethrafikhi kulezi zimo. Kodwa uma ibhodlela lingekho ku-Ansible, kodwa isibonelo ku-I / O yediski noma inethiwekhi, noma kwenye indawo, khona-ke kunzima ukulindela ukuthi i-Mitogen izosisiza.
Ake sizame iskripthi ngokufaka amaphakheji anamamojula we-yum/dnf kanye ne-python sisebenzisa i-pip. Amaphakheji agcinwe kunqolobane ukuze anganciki kumaphutha enethiwekhi:
---
- 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
Nge-Mitogen kuthathe imizuzwana engu-12, efanayo nangaphandle kwayo.
Ekhasini
I-Mitogen ayikwazi ukusheshisa imojuli uma isebenza. Ingenza kuphela ukwenziwa kwale mojula kusheshe ngangokunokwenzeka.
Ngakho-ke, kubalulekile ukuthola izingqinamba zakho ekusetshenzisweni kwakho futhi uma kungenxa ye-Ansible, i-Mitogen izokusiza ukuxazulula futhi isheshise ngokuphawulekayo ukwenziwa kwezincwadi zakho zokudlala.
Source: www.habr.com