daeth yn un o'r rhai mwyaf poblogaidd ... Ar ôl yn 2015 y nifer rhagori ar filoedd ac mae'n debyg mai Ansible oedd y system lleoli ac offeryniaeth a ddefnyddiwyd fwyaf. Mae ei ystod eang o gymwysiadau yn drawiadol iawn.
Mae Ansible yn gweithio dros gysylltiadau SSH â gwesteiwyr o bell. Mae'n agor sesiwn SSH, yn mewngofnodi, yn copïo'r cod Python dros y rhwydwaith ac yn ei ysgrifennu i ffeil dros dro ar wahân. Ar ôl hynny, mae'n rhedeg y ffeil hon ar y peiriant anghysbell. Mae'r dilyniant cyfan hwn o weithrediadau yn eithaf hir a diflas, felly mae yna wahanol ffyrdd i'w optimeiddio.
Un o'r ffyrdd hyn yw sy'n eich galluogi i ddefnyddio un sesiwn SSH i weithredu cyfarwyddiadau, yn hytrach nag agor sesiwn newydd bob tro, a all arbed llawer o amser i ni. (Cofiwch ddiffodd requiretty gosodiad ar gyfer sudo yn eich /etc/sudoers ffeil ar y peiriant o bell)
Ffordd newydd o or-glocio Ansible yw llyfrgell python o'r enw . Os nad oes unrhyw un wedi clywed amdano, byddaf yn disgrifio ei ymarferoldeb yn fyr. Mae'n caniatáu gweithredu cod python yn gyflym ar beiriant anghysbell, a dim ond un enghraifft o ddefnydd yw Ansible. Mae Mitogen yn defnyddio pibell UNIX ar y peiriant anghysbell ac yn trosglwyddo cod python wedi'i gywasgu â zlib a'i gyfresoli â phicl. Mae hyn yn helpu i'w gwblhau'n gyflymach ac yn arbed traffig. Os oes gennych ddiddordeb mewn esboniad manylach, mae'n well darllen amdano ar y dudalen . Ond heddiw byddwn yn canolbwyntio'n unig ar sut mae'r llyfrgell yn gweithio gydag Ansible.
Gall mitogen mewn rhai amgylchiadau gyflymu eich cod Ansible sawl gwaith a lleihau'r defnydd o draffig yn sylweddol. Gadewch i ni edrych ar yr achosion defnydd mwyaf poblogaidd a gweld faint mae'n ein helpu ni.
Rwy'n defnyddio Ansible fwyaf ar gyfer: creu ffeiliau ffurfweddu ar beiriant anghysbell, gosod pecynnau, copïo ffeiliau i'r peiriant anghysbell ac oddi yno. Efallai bod gennych chi enghreifftiau eraill - ysgrifennwch y sylwadau.
Gadewch i ni fynd!
Mae cyfluniad mitogen ar gyfer Ansible yn syml iawn:
Gosod y llyfrgell Mitogen:
pip install mitogenNawr mae dwy ffordd gyfatebol - naill ai ffurfweddu'r opsiynau yn y ffeil ffurfweddu ansible.cfg, neu osod y newidynnau amgylchedd angenrheidiol.
Gadewch i ni dybio y bydd y llwybr i'r Mitogen gosod /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Yna:
export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linearneu
[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategyGadewch i ni osod Ansible yn virtualenv, gyda a heb 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.10Sylwch nad yw Mitogen 0.2.7 yn gweithio gydag Ansible 2.8 (o fis Mai 2019)
Gwneud arallenwau:
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'Nawr, gadewch i ni geisio rhedeg llyfr chwarae sy'n creu ffeiliau ar beiriant anghysbell:
---
- 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 gadewch i ni ei redeg gyda a heb Mitogen i greu 10 ffeil:
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.643sRydym yn gweld gwelliant deublyg. Gadewch i ni wirio am 2, 20, ..., 30 o ffeiliau:
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.197sO ganlyniad, fe wnaethom gyflymu'r gweithredu fwy na 10 gwaith!
Nawr, gadewch i ni roi cynnig ar wahanol senarios a gweld faint yn gyflymach mae popeth yn gweithio i ni:
Sgript ar gyfer copïo ffeiliau i westeiwr pell o un lleol (gyda'r modiwl
copy):
Sgript ar gyfer creu ffeiliau ar westeiwr o bell gyda
copymodiwl:
Senario gyda lawrlwytho ffeiliau o westeiwr anghysbell i un lleol:
Gadewch i ni roi cynnig ar senario gyda sawl (3) o beiriannau anghysbell, er enghraifft senario gyda chopïo ffeiliau i westeiwr anghysbell:
Fel y gallwch weld, mae Mitogen yn arbed amser a thraffig i ni yn y senarios hyn. Ond os nad yw’r dagfa yn Ansible, ond er enghraifft yn I/O disg neu rwydwaith, neu rywle arall, yna mae’n anodd disgwyl y bydd Mitogen yn ein helpu.
Gadewch i ni roi cynnig ar sgript gyda gosod pecynnau gyda modiwlau yum / dnf a python gan ddefnyddio pip. Cafodd y pecynnau eu storio er mwyn peidio â dibynnu ar glitches rhwydwaith:
---
- 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
Gyda Mitogen cymerodd 12 eiliad, yr un peth â hebddo.
Ar dudalen gallwch edrych ar feincnodau a phrofion eraill. Fel y dywed y dudalen:
Ni all Mitogen gyflymu'r modiwl pan fydd yn rhedeg. Dim ond mor gyflym â phosibl y gall wneud gweithrediad y modiwl hwn.
Felly, mae'n bwysig dod o hyd i'ch tagfeydd yn eich defnydd ac os ydynt oherwydd Ansible, yna bydd Mitogen yn eich helpu i'w datrys a chyflymu gweithrediad eich llyfrau chwarae yn sylweddol.
Ffynhonnell: hab.com
