āϏāĻŦāĻā§āϝāĻŧā§ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ āĻāĻ āĻšāϝāĻŧā§ āĻāĻ ā§ ... āĻĒāϰ⧠2015 āϏāĻžāϞ⧠āϏāĻāĻā§āϝāĻž āĻšāĻžāĻāĻžāϰ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻā§āĻā§ āĻāĻŦāĻ Ansible āϏāĻŽā§āĻāĻŦāϤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻŦā§āϝāĻŦāĻšā§āϤ āϏā§āĻĨāĻžāĻĒāύāĻž āĻāĻŦāĻ āĻ āϰā§āĻā§āϏā§āĻā§āϰā§āĻļāύ āϏāĻŋāϏā§āĻā§āĻŽ āĻšāϝāĻŧā§ āĻāĻ ā§āĻā§āĨ¤ āĻāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύā§āϰ āĻŦāĻŋāϏā§āϤā§āϤ āĻĒāϰāĻŋāϏāϰ āĻā§āĻŦāĻ āĻāĻŋāϤā§āϤāĻžāĻāϰā§āώāĻāĨ¤
āϰāĻŋāĻŽā§āĻ āĻšā§āϏā§āĻā§ SSH āϏāĻāϝā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϤā§āϤāϰāϝā§āĻā§āϝ āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ SSH āϏā§āĻļāύ āĻā§āϞā§, āϞāĻ āĻāύ āĻāϰā§, āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§ āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄ āĻāĻĒāĻŋ āĻāϰ⧠āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ āϏā§āĻĨāĻžāϝāĻŧā§ āĻĢāĻžāĻāϞ⧠āϞā§āĻā§āĨ¤ āĻāϰ āĻĒāϰā§, āĻāĻāĻŋ āϰāĻŋāĻŽā§āĻ āĻŽā§āĻļāĻŋāύ⧠āĻāĻ āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻžāϞāĻžāϝāĻŧāĨ¤ āĻ āĻĒāĻžāϰā§āĻļāύā§āϰ āĻāĻ āĻĒā§āϰ⧠āĻā§āϰāĻŽāĻāĻŋ āĻŦā§āĻļ āĻĻā§āϰā§āĻ āĻāĻŦāĻ āĻā§āϞāĻžāύā§āϤāĻŋāĻāϰ, āϤāĻžāĻ āĻāĻāĻŋāĻā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāϰāĻžāϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§āĨ¤
āĻāĻ āĻāĻĒāĻžāϝāĻŧ āĻāĻ āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻāĻāĻŋ āύāϤā§āύ āϏā§āĻļāύ āĻā§āϞāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻāĻžāϰā§āϝāĻāϰ āĻāϰāϤ⧠āĻāĻāĻāĻŋ SSH āϏā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ, āϝāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻ
āύā§āĻ āϏāĻŽāϝāĻŧ āĻŦāĻžāĻāĻāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤ (āĻļā§āϧ⧠āĻŦāύā§āϧ āĻāϰāϤ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ requiretty āĻāĻĒāύāĻžāϰ āĻŽāϧā§āϝ⧠sudo āĻāύā§āϝ āϏā§āĻāĻŋāĻ /etc/sudoers āϰāĻŋāĻŽā§āĻ āĻŽā§āĻļāĻŋāύ⧠āĻĢāĻžāĻāϞ)
Ansible āĻāĻāĻžāϰāĻā§āϞāĻ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āύāϤā§āύ āĻāĻĒāĻžāϝāĻŧ āĻšāϞ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāύ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ . āϝāĻĻāĻŋ āĻā§āĻ āĻāĻāĻŋāϰ āĻāĻĨāĻž āύāĻž āĻļā§āύ⧠āĻĨāĻžāĻā§āύ āϤāĻŦā§ āĻāĻŽāĻŋ āϏāĻāĻā§āώā§āĻĒā§ āĻāϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻŦāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύ⧠āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄā§āϰ āĻĻā§āϰā§āϤ āϏāĻā§āĻāĻžāϞāύā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ āĻāĻŦāĻ Ansible āĻšāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖāĨ¤ Mitogen āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύ⧠āĻāĻāĻāĻŋ UNIX āĻĒāĻžāĻāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ zlib āĻāϰ āϏāĻžāĻĨā§ āϏāĻāĻā§āĻāĻŋāϤ āĻāĻŦāĻ āĻāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻā§āϰāĻŽāĻŋāĻāĻā§āϤ āĻĒāĻžāĻāĻĨāύ āĻā§āĻĄ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻāĻāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰ⧠āĻāĻŦāĻ āĻā§āϰāĻžāĻĢāĻŋāĻ āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāϰāĻ āĻŦāĻŋāĻļāĻĻ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāϤ⧠āĻāĻā§āϰāĻšā§ āĻšāύ āϤāĻŦā§ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻāĻāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻāĻžāϞ . āĻāĻŋāύā§āϤ⧠āĻāĻāĻā§ āĻāĻŽāϰāĻž āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϞāĻžāĻāĻŦā§āϰā§āϰ⧠āĻāĻŋāĻāĻžāĻŦā§ Ansible āĻāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻžāϰ āĻāĻĒāϰ āĻāϞā§āĻāĻĒāĻžāϤ āĻāϰāĻŦāĨ¤
āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠Mitogen āĻāĻĒāύāĻžāϰ āĻāϤā§āϤāϰāϝā§āĻā§āϝ āĻā§āĻĄāĻā§ āĻāϝāĻŧā§āĻāĻŦāĻžāϰ āĻāϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āĻā§āϰāĻžāĻĢāĻŋāĻ āĻāϰāĻ āĻāĻŽāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāϏā§āύ āϏāϰā§āĻŦāĻžāϧāĻŋāĻ āĻāύāĻĒā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻĻā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻāϤāĻāĻž āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰ⧠āϤāĻž āĻĻā§āĻā§āύāĨ¤
āĻāĻŽāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ Ansible āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ: āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύ⧠āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž, āĻĒā§āϝāĻžāĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž, āϰāĻŋāĻŽā§āĻ āĻŽā§āĻļāĻŋāύ⧠āĻāĻŦāĻ āĻĨā§āĻā§ āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻžāĨ¤ āϏāĻŽā§āĻāĻŦāϤ āĻāĻĒāύāĻžāϰ āĻ āύā§āϝāĻžāύā§āϝ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻā§ - āĻŽāύā§āϤāĻŦā§āϝ⧠āϞāĻŋāĻā§āύāĨ¤
āĻāϞ āϝāĻžāĻ!
Ansible āĻāϰ āĻāύā§āϝ Mitogen āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻā§āĻŦāĻ āϏāĻšāĻ:
Mitogen āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāύāϏā§āĻāϞ āĻāϰā§āύ:
pip install mitogenāĻāĻāύ āĻĻā§āĻāĻŋ āϏāĻŽāϤā§āϞā§āϝ āĻāĻĒāĻžāϝāĻŧ āĻāĻā§ - āĻšāϝāĻŧ ansible.cfg āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āĻĢāĻžāĻāϞā§āϰ āĻŦāĻŋāĻāϞā§āĻĒāĻā§āϞāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰā§āύ, āĻ āĻĨāĻŦāĻž āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻĒāϰāĻŋāĻŦā§āĻļ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āϏā§āĻ āĻāϰā§āύāĨ¤
āĻ
āύā§āĻŽāĻžāύ āĻāϰāĻž āϝāĻžāĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž Mitogen āĻāϰ āĻĒāĻĨ āĻšāĻŦā§ /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. āϤāĻžāϰāĻĒāϰ:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linearāĻŦāĻž
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategyāĻŽāĻŋāĻā§āĻā§āύ āϏāĻš āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻž āĻāĻžāϰā§āĻā§āϝāĻŧāĻžāϞā§āύāĻ-āĻ Ansible āĻāύāϏā§āĻāϞ āĻāϰāĻž āϝāĻžāĻ:
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āĻ āύā§āĻā§āϰāĻš āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ Mitogen 0.2.7 Ansible 2.8 āĻāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰ⧠āύāĻž (āĻŽā§ 2019 āĻ āύā§āϝāĻžāϝāĻŧā§)
āĻāĻĒāύāĻžāĻŽ āϤā§āϰāĻŋ āĻāϰāĻž:
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'āĻāĻāύ āĻāϏā§āύ āĻāĻāĻāĻŋ āĻĒā§āϞā§āĻŦā§āĻ āĻāĻžāϞāĻžāύā§āϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋ āϝāĻž āĻāĻāĻāĻŋ āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύ⧠āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰā§:
---
- 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 }}āĻāĻŦāĻ 10āĻāĻŋ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāϤ⧠Mitogen āĻāϰ āϏāĻžāĻĨā§ āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻŋ āĻāĻžāϞāĻžāĻ:
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āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ 2-āĻā§āĻŖ āĻāύā§āύāϤāĻŋ āĻĻā§āĻāϤā§. āĻāϏā§āύ 20, 30, ..., 100 āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŋ:
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āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻŽāϰāĻž 10 āĻā§āĻŖā§āϰāĻ āĻŦā§āĻļāĻŋ āĻŽā§āϤā§āϝā§āĻĻāĻŖā§āĻĄ āĻāĻžāϰā§āϝāĻāϰ āĻāϰā§āĻāĻŋ!
āĻāĻāύ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻā§āώā§āĻāĻž āĻāϰāĻž āϝāĻžāĻ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āϏāĻŦāĻāĻŋāĻā§ āĻāϤ āĻĻā§āϰā§āϤ āĻāĻžāĻ āĻāϰ⧠āĻĻā§āĻā§āύ:
āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻšā§āϏā§āĻā§ āĻĢāĻžāĻāϞ āĻ āύā§āϞāĻŋāĻĒāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ (āĻŽāĻĄāĻŋāĻāϞ āϏāĻš
copy):
āĻāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻšā§āϏā§āĻā§ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋāϰ āĻāύā§āϝ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ
copyāĻŽāĻĄāĻŋāĻāϞ:
āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻšā§āϏā§āĻ āĻĨā§āĻā§ āϏā§āĻĨāĻžāύā§āϝāĻŧ āĻāĻāĻāĻŋāϤ⧠āĻĢāĻžāĻāϞ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāĻžāϰ āĻĻā§āĻļā§āϝ:
āĻāϏā§āύ āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ (3) āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻŽā§āĻļāĻŋāύā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĻā§āĻļā§āϝā§āϰ āĻā§āώā§āĻāĻž āĻāϰāĻŋ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āĻāĻāĻāĻŋ āĻĻā§āϰāĻŦāϰā§āϤ⧠āĻšā§āϏā§āĻā§ āĻĢāĻžāĻāϞāĻā§āϞāĻŋ āĻ
āύā§āϞāĻŋāĻĒāĻŋ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻĻā§āĻļā§āϝ:
āĻāĻĒāύāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻā§āĻā§āύ, āĻāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻŽāĻžāĻāĻā§āĻā§āύ āĻāĻŽāĻžāĻĻā§āϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻāĻāϝāĻŧāĻ āĻŦāĻžāĻāĻāĻžāϝāĻŧāĨ¤ āĻāĻŋāύā§āϤ⧠āϝāĻĻāĻŋ āĻŦāĻŋāĻĒāϤā§āϤāĻŋāĻāĻŋ āĻāϤā§āϤāϰāϝā§āĻā§āϝ āύāĻž āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ āĻāĻāĻāĻŋ āĻĄāĻŋāϏā§āĻ āĻŦāĻž āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻā§āϰ I/O, āĻŦāĻž āĻ āύā§āϝ āĻā§āĻĨāĻžāĻ, āϤāĻžāĻšāϞ⧠āĻāĻļāĻž āĻāϰāĻž āĻāĻ āĻŋāύ āϝ⧠Mitogen āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤
āĻĒāĻŋāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠yum/dnf āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāύ āĻŽāĻĄāĻŋāĻāϞ āϏāĻš āĻĒā§āϝāĻžāĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻā§āώā§āĻāĻž āĻāϰāĻž āϝāĻžāĻāĨ¤ āĻĒā§āϝāĻžāĻā§āĻāĻā§āϞāĻŋ āĻā§āϝāĻžāĻļā§ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϝāĻžāϤ⧠āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āĻā§āϞāĻŋāĻā§āϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āύāĻž āĻāϰā§:
---
- 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
āĻŽāĻžāĻāĻā§āĻā§āύā§āϰ āϏāĻžāĻĨā§ āĻāĻāĻŋ 12 āϏā§āĻā§āύā§āĻĄ āϏāĻŽāϝāĻŧ āύā§āϝāĻŧ, āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤
āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻāĻĒāύāĻŋ āĻ
āύā§āϝāĻžāύā§āϝ āĻŦā§āĻā§āĻāĻŽāĻžāϰā§āĻ āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻŦāϞāĻž āĻšāϝāĻŧā§āĻā§:
āĻŽāĻžāĻāĻā§āĻā§āύ āĻŽāĻĄāĻŋāĻāϞ āĻāϞāĻžāĻāĻžāϞā§āύ āĻāϤāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤ āĻāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻ āĻŽāĻĄāĻŋāĻāϞāĻāĻŋ āϝāϤ āĻĻā§āϰā§āϤ āϏāĻŽā§āĻāĻŦ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻ āϤāĻāĻŦ, āĻāĻĒāύāĻžāϰ āϏā§āĻĨāĻžāĻĒāύāĻžāϝāĻŧ āĻāĻĒāύāĻžāϰ āĻŦāĻžāϧāĻžāĻā§āϞāĻŋ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻŦāĻ āϝāĻĻāĻŋ āϏā§āĻā§āϞāĻŋ āĻāϤā§āϤāϰāϝā§āĻā§āϝāϤāĻžāϰ āĻāĻžāϰāĻŖā§ āĻšāϝāĻŧ, āϤāĻŦā§ Mitogen āĻāĻĒāύāĻžāĻā§ āϏā§āĻā§āϞāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāϤ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻĒā§āϞā§āĻŦā§āĻāĻā§āϞāĻŋāϰ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻā§ āĻāϞā§āϞā§āĻāϝā§āĻā§āϝāĻāĻžāĻŦā§ āϤā§āĻŦāϰāĻžāύā§āĻŦāĻŋāϤ āĻāϰāϤ⧠āϏāĻšāĻžāϝāĻŧāϤāĻž āĻāϰāĻŦā§āĨ¤
āĻāϤā§āϏ: www.habr.com
