Ansible ṣiṣẹ lori SSH awọn isopọ to latọna ogun. O ṣii igba SSH kan, wọle, daakọ koodu Python lori nẹtiwọọki ati kọwe si faili igba diẹ lọtọ. Lẹhin iyẹn, o nṣiṣẹ faili yii lori ẹrọ latọna jijin. Gbogbo ọkọọkan ti awọn iṣẹ ṣiṣe jẹ pipẹ ati arẹwẹsi, nitorinaa awọn ọna pupọ lo wa lati mu ilọsiwaju rẹ pọ si.
Ọkan ninu awọn ọna wọnyi ni requiretty
eto fun sudo ninu rẹ /etc/sudoers
faili lori ẹrọ latọna jijin)
Ọna tuntun lati bori Ansible jẹ ile-ikawe Python ti a pe
Mitogen ni awọn ayidayida kan le mu koodu Ansible rẹ yara ni igba pupọ ati dinku agbara ijabọ ni pataki. Jẹ ki a ṣayẹwo awọn ọran lilo olokiki julọ ki a wo iye ti o ṣe iranlọwọ fun wa.
Mo lo Ansible julọ fun: ṣiṣẹda awọn faili atunto lori ẹrọ latọna jijin, fifi sori ẹrọ awọn idii, didakọ awọn faili si ati lati ẹrọ jijin. Boya o ni awọn apẹẹrẹ miiran - kọ ninu awọn asọye.
Lọ!
Iṣeto Mitogen fun Ansible jẹ rọrun pupọ:
Fi sori ẹrọ ile-ikawe Mitogen:
pip install mitogen
Bayi awọn ọna deede meji lo wa - boya tunto awọn aṣayan ninu faili atunto ansible.cfg, tabi ṣeto awọn oniyipada ayika pataki.
Jẹ ki a ro pe ọna si Mitogen ti a fi sii yoo jẹ /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
. Lẹhinna:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear
tabi
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
Jẹ ki a fi sori ẹrọ Ansible ni virtualenv, pẹlu ati laisi 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
Jọwọ ṣe akiyesi pe Mitogen 0.2.7 ko ṣiṣẹ pẹlu Ansible 2.8 (bi ti May 2019)
Ṣiṣe awọn inagijẹ:
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'
Bayi jẹ ki a gbiyanju lati ṣiṣẹ iwe-iṣere kan ti o ṣẹda awọn faili lori ẹrọ latọna jijin:
---
- 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 }}
Ati pe jẹ ki a ṣiṣẹ pẹlu ati laisi Mitogen lati ṣẹda awọn faili 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
A ri ilọsiwaju 2-agbo. Jẹ ki a ṣayẹwo fun 20, 30, ..., 100 awọn faili:
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
Bi abajade, a yara ipaniyan nipasẹ diẹ sii ju awọn akoko 10 lọ!
Bayi jẹ ki a gbiyanju awọn oju iṣẹlẹ oriṣiriṣi ati wo bii iyara ti ohun gbogbo n ṣiṣẹ fun wa:
-
Iwe afọwọkọ fun didakọ awọn faili si agbalejo latọna jijin lati agbegbe kan (pẹlu module
copy
):
-
Akosile fun ṣiṣẹda awọn faili lori kan latọna ogun pẹlu
copy
module:
-
Oju iṣẹlẹ pẹlu gbigba awọn faili lati ọdọ agbalejo latọna jijin si agbegbe kan:
Jẹ ki a gbiyanju oju iṣẹlẹ kan pẹlu ọpọlọpọ awọn ẹrọ jijin (3), fun apẹẹrẹ oju iṣẹlẹ pẹlu didakọ awọn faili si agbalejo latọna jijin:
Bi o ti le rii, Mitogen n fipamọ wa ni akoko mejeeji ati ijabọ ni awọn oju iṣẹlẹ wọnyi. Ṣugbọn ti igo ko ba wa ni Ansible, ṣugbọn fun apẹẹrẹ ni I / O ti disk tabi nẹtiwọki, tabi ibomiiran, lẹhinna o ṣoro lati reti pe Mitogen yoo ran wa lọwọ.
Jẹ ki a gbiyanju iwe afọwọkọ kan pẹlu fifi sori ẹrọ awọn idii pẹlu yum/dnf ati awọn modulu Python nipa lilo pip. Awọn idii ti wa ni ipamọ ki o má ba dale lori awọn glitches nẹtiwọki:
---
- 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
Pẹlu Mitogen o gba iṣẹju-aaya 12, kanna bii laisi rẹ.
Lori oju -iwe naa
Mitogen ko le titẹ soke awọn module nigba ti o ti wa ni nṣiṣẹ. O le nikan ṣe awọn ipaniyan ti yi module ki sare bi o ti ṣee.
Nitorinaa, o ṣe pataki lati wa awọn igo rẹ ninu imuṣiṣẹ rẹ ati pe ti wọn ba jẹ nitori Ansible, lẹhinna Mitogen yoo ṣe iranlọwọ fun ọ lati yanju wọn ati ni pataki iyara ipaniyan ti awọn iwe-iṣere rẹ.
orisun: www.habr.com