Hana ʻo Ansible ma luna o nā pili SSH i nā pūʻali mamao. Wehe ia i kahi hālāwai SSH, hoʻopaʻa inoa, kope i ka code Python ma luna o ka pūnaewele a kākau iā ia i kahi faila kaʻawale. Ma hope o kēlā, holo ia i kēia faila ma ka mīkini mamao. He lōʻihi a paʻakikī kēia kaʻina hana holoʻokoʻa, no laila aia nā ala like ʻole e hoʻonui ai.
ʻO kekahi o kēia mau ala requiretty
hoʻonohonoho no sudo i kāu /etc/sudoers
waihona ma ka mīkini mamao)
ʻO kahi ala hou e overclock ai ʻo Ansible kahi waihona python i kapa ʻia
Hiki i ka Mitogen i kekahi mau kūlana ke hoʻoikaika i kāu code Ansible i nā manawa he nui a hoʻemi nui i ka hoʻohana ʻana i nā kaʻa. E nānā i nā hihia hoʻohana kaulana loa a ʻike i ka nui o ke kōkua ʻana iā mākou.
Hoʻohana au i ka Ansible no ka: hana ʻana i nā faila hoʻonohonoho ma kahi mīkini mamao, hoʻokomo i nā pūʻolo, kope ʻana i nā faila i ka mīkini mamao. Loaʻa paha kāu mau hiʻohiʻona - e kākau i nā manaʻo.
E hele kākou!
He maʻalahi loa ka hoʻonohonoho Mitogen no Ansible:
E hoʻouka i ka waihona Mitogen:
pip install mitogen
I kēia manawa, ʻelua mau ala like - e hoʻonohonoho i nā koho i ka faila hoʻonohonoho ansible.cfg, a i ʻole e hoʻonohonoho i nā ʻano hoʻololi kaiapuni kūpono.
E noʻonoʻo kākou ʻo ke ala i ka Mitogen i hoʻokomo ʻia /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
. A laila:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear
ai ole ia,
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
E hoʻokomo iā Ansible ma virtualenv, me ka ʻole o 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.10
E ʻoluʻolu, ʻaʻole hana ʻo Mitogen 0.2.7 me Ansible 2.8 (mai Mei 2019)
Ke hana nei i nā inoa inoa:
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'
I kēia manawa, e hoʻāʻo kākou e holo i kahi puke pāʻani e hana ana i nā faila ma kahi mīkini mamao:
---
- 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 }}
A e holo mākou me ka ʻole o Mitogen e hana i nā faila 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
ʻIke mākou i kahi hoʻomaikaʻi 2-fold. E nānā kākou no 20, 30, ..., 100 faila:
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
ʻO ka hopena, ua wikiwiki mākou i ka hoʻokō ʻana ma mua o 10 mau manawa!
I kēia manawa, e hoʻāʻo kākou i nā hiʻohiʻona like ʻole a ʻike i ka wikiwiki o ka hana ʻana o nā mea āpau iā mākou:
-
Palapala no ke kope ʻana i nā faila i kahi host mamao mai kahi kūloko (me ka module
copy
):
-
Palapala no ka hana ʻana i nā faila ma kahi hoʻokipa mamao me
copy
module:
-
ʻO ka hiʻohiʻona me ka hoʻoiho ʻana i nā faila mai kahi host mamao a i kahi kūloko:
E hoʻāʻo kākou i kahi hiʻohiʻona me nā mīkini mamao (3), no ka laʻana, kahi hiʻohiʻona me ke kope ʻana i nā faila i kahi host mamao:
E like me kāu e ʻike ai, mālama ʻo Mitogen iā mākou i ka manawa a me ke kaʻa i kēia mau hiʻohiʻona. Akā inā ʻaʻole i Ansible ka bottleneck, akā no ka laʻana i ka I / O o kahi disk a i ʻole pūnaewele, a i ʻole ma kahi ʻē aʻe, a laila paʻakikī ke manaʻo e kōkua mai ʻo Mitogen iā mākou.
E hoʻāʻo kāua i kahi palapala me ka hoʻokomo ʻana i nā pūʻolo me yum/dnf a me nā modula python me ka hoʻohana ʻana i ka pip. Ua hūnā ʻia nā pūʻolo i ʻole e hilinaʻi i nā pilikia o ka pūnaewele:
---
- 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 he 12 kekona, e like me ka nele.
Ma kaʻaoʻao
ʻAʻole hiki i ka Mitogen ke wikiwiki i ka module ke holo. Hiki iā ia ke hana wikiwiki i ka hoʻokō ʻana i kēia module.
No laila, he mea nui e ʻike i kāu mau bottlenecks i kāu hoʻolālā ʻana a inā ma muli o Ansible, a laila e kōkua ʻo Mitogen iā ʻoe e hoʻoponopono iā lākou a wikiwiki loa i ka hoʻokō ʻana i kāu mau puke pāʻani.
Source: www.habr.com