Ansible ááẠá¡áá±ážááááºážáá¬ááá»á¬ážááá¯á· SSH áá»áááºáááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá áááºážááẠSSH á ááºááŸááºááá¯ááœáá·áºáᬠáá±á¬á·ááºá¡ááºáááºáᬠááœááºáááºáá±á«áºááŸá Python áá¯ááºááᯠáá°ážáá°ááŒá®áž áá®ážááŒá¬áž áá¬áá®ááá¯ááºáá áºáá¯ááá¯á· áá±ážáá±ážáááºá áááºážáá±á¬ááºá áááºážááẠá€ááá¯ááºááᯠá¡áá±ážááááºážá ááºáá±á«áºááœáẠáá¯ááºáá±á¬ááºáááºá á€áá¯ááºáááºážá á¯áá áºáá¯áá¯á¶ážááẠá¡ááœááºááŸááºáá»á¬ážááŒá®áž áá»ááºážá áá¬áá±á¬ááºážáá±á¬ááŒá±á¬áá·áº áááºážááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠááŒá¯áá¯ááºááẠáááºážáááºážá¡áá»áá¯ážáá»áá¯ážááŸááááºá
áá®áááºážáááºážááœá±áá²á áá
áºáá¯áá«á requiretty
áááºáááŸá sudo á¡ááœááºáááºááẠ/etc/sudoers
á¡áá±ážááááºážá
ááºááœáẠááá¯ááº)
Ansible ááᯠoverclock áá¯ááºáááºáááºážáááºážá¡áá
áºááŸá¬ python library áá¯áá±á«áºáááºá
á¡áá»áá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááœáẠMitogen ááẠáááºá Ansible áá¯ááºááᯠá¡ááŒáááºáá»á¬ážá áœá¬ á¡ááŸáááºááŒáŸáá·áºááá¯ááºááŒá®áž áááºážááŒá±á¬ááºážá¡áá¯á¶ážááŒá¯ááŸá¯ááᯠáááááá¬áᬠáá»áŸá±á¬á·áá»ááá¯ááºáááºá áá±áááºážá¡á á¬ážáá¯á¶áž á¡áá¯á¶ážááŒá¯ááŸá¯ááá á¹á áá»á¬ážááᯠá á áºáá±ážááŒá®áž áááºážááẠáá»áœááºá¯ááºááá¯á·ááᯠáááºáá»áŸ áá°áá®áá±ážáááºááᯠááŒáá·áºááŒáá«á áá¯á·á
áá»áœááºá¯ááºááẠAnsible ááᯠá¡áá»á¬ážáá¯á¶ážá¡áá¯á¶ážááŒá¯áááº- á¡áá±ážááááºážá ááºááœáẠáá¯á¶á á¶ááœá²á·á ááºážáá¯á¶ááá¯ááºáá»á¬ážáááºáá®ážááŒááºážá áááºáá±á·áá»áºáá»á¬ážááá·áºááœááºážááŒááºážá á¡áá±ážááááºážá ááºááá¯á· ááá¯ááºáá»á¬ážáá°ážáá°ááŒááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá ááá·áºááœáẠá¡ááŒá¬ážá¥ááá¬áá»á¬áž ááŸááá±á¬ááºážááŸáááá¯ááºááẠ- ááŸááºáá»ááºáá»á¬ážááœáẠáá±ážáá«á
ááœá¬ážá áá¯á·!
Ansible á¡ááœáẠMitogen configuration ááẠá¡ááœááºááá¯ážááŸááºážáá«áááºá
Mitogen á
á¬ááŒáá·áºááá¯ááºááᯠááá·áºááœááºážáá«-
pip install mitogen
ááá¯ááœáẠáá°áá®áá±á¬áááºážáááºáž ááŸá áºáá¯ááŸáááẠ- ansible.cfg configuration file ááœáẠááœá±ážáá»ááºá áá¬áá»á¬ážááᯠconfigure áá¯ááºááŒááºáž ááá¯á·ááá¯áẠááá¯á¡ááºáá±á¬ áááºáááºážáá»áẠvariable áá»á¬ážááᯠáááºááŸááºáá«á
ááá·áºááœááºážáá¬ážáá±á¬ 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
Mitogen ááŸáá·áºá¡áá° virtualenv ááœáẠ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 ááŸáá·áºááá«áá² áááºážááᯠrun ááŒáá«á áá¯á·á
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 ááᯠá á áºáá±ážááŒáá·áºáá¡á±á¬ááºá
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 ááá»á±á¬áº á¡ááŸáááºááŒáŸáá·áºáá²á·áááºá
á¡áᯠááá°áá®áá²á· ááŒááºááœááºážááœá±ááᯠá
ááºážááŒáá·áºáá¡á±á¬ááºá á¡áá¬á¡á¬ážáá¯á¶ážá áá«ááá¯á·á¡ááœáẠáááºáá±á¬ááºááŒááºááá²ááá¯áᬠááŒáá·áºááŒáá¡á±á¬ááºá
-
áá±ááá¹áááá áºáá¯á០á¡áá±ážááááºážáá¬ááá áºáá¯á០ááá¯ááºáá»á¬ážááᯠáá°ážáá°ááŒááºážá¡ááœáẠScript (áá±á¬áºáá»á°ážááŸáá·áºá¡áá°
copy
):
-
á¡áá±ážááááºážáá¬áááœáẠááá¯ááºáá»á¬ážáááºáá®ážááŒááºážá¡ááœáẠScript
copy
áá±á¬áºáá»á°áž-
-
á¡áá±ážááááºážáá¬áá០ááá¯ááºáá»á¬ážááᯠá ááºááœááºážáá áºáá¯ááá¯á· áá±á«ááºážáá¯ááºááœá²ááá·áº áá¬ááºáááºáž-
á¥ááᬠ- á¡áá±ážááááºážáá¬áááá¯á· ááá¯ááºáá»á¬ážáá°ážáá°ááá·áº ááŒááºááœááºážáá
áºáá¯ááᯠá¡áá±ážááááºážá
áẠ(á) áá¯ááŒáá·áº á
ááºážááŒáá·áºááŒáá«á
áá¯á·á
áááºááŒááºáááá·áºá¡ááá¯ááºáž Mitogen ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž á€á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡áá»áááºááŸáá·áº á¡ááœá¬ážá¡áᬠááŸá áºáá¯áá¯á¶ážááᯠáááºáá¬á á±áá«áááºá á¡áááºá ááááºááá¯á·ááŸá¯ááẠAnsible ááœááºáááŸááá±á¬áºáááºážá á¥ááá¬á¡á¬ážááŒáá·áº disk ááá¯á·ááá¯áẠnetwork á I/O ááœáẠááá¯á·ááá¯áẠá¡ááŒá¬ážáá±áá¬áá»á¬ážááœááºááá¯áá»áŸáẠMitogen ááẠáá»áœááºá¯ááºááá¯á·ááᯠáá°áá®áááá·áºáááºáᯠáá»áŸá±á¬áºááá·áºááááºáá«áááºá
pip ááá¯á¡áá¯á¶ážááŒá¯á yum/dnf ááŸáá·áº python module áá»á¬ážáá«ááŸááá±á¬ packages áá»á¬ážááá·áºááœááºážááá·áº script ááᯠá ááºážááŒáá·áºááŒáá«á áá¯á·á ááœááºáááºáá»áá¯á·ááœááºážáá»ááºáá»á¬ážá¡áá±á«áº ááá°áááºá á±ááẠáááºáá±á·áá»áºáá»á¬ážááᯠááááºážáááºážáá¬ážáá«áááºá
---
- 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
Mitogen ááŒáá·áº 12 á
áá¹ááá·áºááŒá¬áááºá áááºážááá«áá²ááŸáá·áºá¡áá°áá°áááºá
á
á¬áá»ááºááŸá¬áá±á«áºááœááº
Mitogen ááẠáááºážááá¯áááºáááºáá±áá»áááºááœáẠmodule ááá¯á¡ááŸáááºááŒáŸáá·áºááááá«á áááºážááẠဠmodule ááá¯ááºáá±á¬ááºááŸá¯ááᯠááŒááºááá¯ááºááá»áŸááŒááºá¡á±á¬ááºáᬠááŒá¯áá¯ááºááá¯ááºáááºá
ááá¯á·ááŒá±á¬áá·áºá áááºáááŒáá·áºáá»ááºááŸá¯ááœáẠáááºá ááááºááá¯á·ááŸá¯áá»á¬ážááᯠááŸá¬ááœá±ááẠá¡áá±ážááŒá®ážááŒá®áž áááºážááá¯á·ááẠAnsible ááŒá±á¬áá·áºááŒá áºáá«á áááºážááá¯á·ááᯠMitogen á ááá·áºá¡á¬áž áá°áá®ááŒá±ááŸááºážáá±ážáááºááŒá áºááŒá®áž áááºá playbooks áá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºáá¯ááºáá±á¬ááºááŸá¯ááᯠáááááá¬áᬠá¡ááŸáááºááŒáŸáá·áºáá±ážáááºááŒá áºáááºá
source: www.habr.com