A’ luathachadh Ansible le Mitogen

Freagair dh'fhàs e aon den fheadhainn as mòr-chòrdte Riaghladh rèiteachaidh siostam. Às deidh chaidh a cheannach le Red Hat ann an 2015 an àireamh com-pàirtichean pròiseict air a dhol thairis air mìltean agus is dòcha gur e Ansible an siostam cleachdadh agus orcastra a bu mhotha a chleachdar. Tha an raon farsaing de thagraidhean aige gu math drùidhteach.

Bidh Ansible ag obair thairis air ceanglaichean SSH ri luchd-aoigheachd iomallach. Bidh e a’ fosgladh seisean SSH, a’ logadh a-steach, a’ dèanamh lethbhreac dhen chòd Python thairis air an lìonra agus ga sgrìobhadh gu faidhle sealach air leth. Às dèidh sin, bidh e a 'ruith am faidhle seo air an inneal iomallach. Tha an sreath iomlan de ghnìomhachd seo gu math fada agus tedious, agus mar sin tha grunn dhòighean ann airson a bharrachadh.

Tha aon de na dòighean sin Pìoban SSH a leigeas leat aon seisean SSH a chleachdadh gus stiùireadh a chuir an gnìomh, seach a bhith a’ fosgladh seisean ùr gach turas, a shàbhaileas tòrr ùine dhuinn. (Dìreach cuimhnich gun cuir thu dheth requiretty suidheachadh airson sudo nad /etc/sudoers faidhle air an inneal iomallach)

Is e dòigh ùr air faighinn thairis air Ansible leabharlann python ris an canar Mitogen. Mura h-eil duine air cluinntinn mu dheidhinn, bheir mi cunntas goirid air a ghnìomhachd. Leigidh e le còd python a chuir gu bàs gu sgiobalta air inneal iomallach, agus tha Ansible dìreach mar aon eisimpleir de chleachdadh. Bidh Mitogen a’ cleachdadh pìob UNIX air an inneal iomallach agus a’ gluasad còd python air a dhlùthadh le zlib agus air a shreathachadh le picil. Bidh seo a 'cuideachadh le bhith ga lìonadh nas luaithe agus a' sàbhaladh trafaig. Ma tha ùidh agad ann am mìneachadh nas mionaidiche, tha e nas fheàrr leughadh mu dheidhinn air an duilleag "Ciamar a tha e ag obair". Ach an-diugh cha chuir sinn fòcas ach air mar a tha an leabharlann ag obair le Ansible.

Faodaidh mitogen ann an cuid de shuidheachaidhean do chòd Ansible a luathachadh grunn thursan agus lùghdachadh mòr a thoirt air caitheamh trafaic. Nach toir sinn sùil air na cùisean cleachdaidh as mòr-chòrdte agus faic na tha e gar cuideachadh.

Bidh mi a’ cleachdadh Ansible sa mhòr-chuid airson: cruthachadh fhaidhlichean rèiteachaidh air inneal iomallach, a’ stàladh phasganan, a’ dèanamh lethbhreac de fhaidhlichean gu agus bhon inneal iomallach. Is dòcha gu bheil eisimpleirean eile agad - sgrìobh anns na beachdan.

Leamamaid!

Tha rèiteachadh mitogen airson Ansible gu math sìmplidh:
Stàlaich an leabharlann Mitogen:

pip install mitogen

A-nis tha dà dhòigh co-ionann ann - an dàrna cuid rèiteachadh na roghainnean anns an fhaidhle rèiteachaidh ansible.cfg, no suidhich na caochladairean àrainneachd riatanach.

Gabhamaid ris gum bi an t-slighe chun an Mitogen stàlaichte /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. An uairsin:

export ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy
export ANSIBLE_STRATEGY=mitogen_linear

no

[defaults]
strategy = mitogen_linear
strategy_plugins = /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy

Nach stàlaich sinn Ansible ann an virtualenv, le agus às aonais 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

Thoir an aire nach eil Mitogen 0.2.7 ag obair le Ansible 2.8 (bhon Chèitean 2019)

Dèanamh ailias:

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'

A-nis feuchaidh sinn ri leabhar-cluiche a ruith a chruthaicheas faidhlichean air inneal iomallach:

---
- 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 }}

Agus ruithidh sinn e le agus às aonais Mitogen gus 10 faidhlichean a chruthachadh:

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

Tha sinn a’ faicinn leasachadh dà-fhillte. Feuch an dèan sinn sgrùdadh airson 2, 20, ..., 30 faidhle:

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

Mar thoradh air an sin, luathaich sinn coileanadh còrr is 10 tursan!
A-nis feuchaidh sinn diofar shuidheachaidhean agus faic dè cho luath sa bhios a h-uile dad ag obair dhuinn:

  • Sgriobt airson faidhlichean a chopaigeadh gu òstair iomallach bho fhear ionadail (leis a’ mhodal copy):
    A’ luathachadh Ansible le Mitogen

  • Sgriobt airson faidhlichean a chruthachadh air aoigheachd iomallach le copy modal:
    A’ luathachadh Ansible le Mitogen

  • Scenario le luchdachadh sìos faidhlichean bho òstair iomallach gu fear ionadail:
    A’ luathachadh Ansible le Mitogen

Feuch sinn suidheachadh le grunn (3) innealan iomallach, mar eisimpleir suidheachadh le bhith a’ dèanamh lethbhreac de fhaidhlichean gu òstair iomallach:
A’ luathachadh Ansible le Mitogen

Mar a chì thu, sàbhalaidh Mitogen dhuinn an dà chuid ùine agus trafaic anns na suidheachaidhean sin. Ach mura h-eil am botail ann an Ansible, ach mar eisimpleir ann an I/O diosc no lìonra, no an àiteigin eile, tha e duilich a bhith an dùil gun cuidich Mitogen sinn.

Feuchaidh sinn ri sgriobt le bhith a’ stàladh phasganan le modalan yum/dnf agus python a’ cleachdadh pip. Chaidh na pacaidean a thasgadh gus nach biodh iad an urra ri glitches lìonra:

---
- 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

Le Mitogen thug e 12 diogan, an aon rud ri às aonais.
Air an duilleig Mitogen airson duilleag Ansible faodaidh tu coimhead air slatan-tomhais agus deuchainnean eile. Mar a tha an duilleag ag ràdh:

Chan urrainn dha Mitogen am modal a luathachadh nuair a bhios e a’ ruith. Chan urrainn dha ach am modal seo a chuir gu bàs cho luath sa ghabhas.

Mar sin, tha e cudromach na botail agad a lorg nad chleachdadh agus ma tha iad mar thoradh air Ansible, an uairsin cuidichidh Mitogen thu gus am fuasgladh agus luathaichidh e coileanadh do leabhraichean-cluiche gu mòr.

Source: www.habr.com

Cuir beachd ann