Ansible a bhrostú le Mitogen

Freagra tháinig chun bheith ar cheann de na ba choitianta Bainistíocht Cumraíocht an Chórais. Tar éis cheannaigh Red Hat i 2015 an uimhir rannpháirtithe tionscadail sháraigh na mílte agus is dócha gurbh é Ansible an córas imlonnaithe agus ceolfhoirne is mó a úsáidtear. Tá a raon leathan iarratas an-suntasach.

Oibríonn Ansible thar naisc SSH le hóstach cianda. Osclaíonn sé seisiún SSH, logálann sé isteach, cóipeann sé an cód Python thar an líonra agus scríobhann sé chuig comhad sealadach ar leith é. Tar éis sin, ritheann sé an comhad seo ar an meaisín iargúlta. Tá an seicheamh iomlán oibríochtaí seo sách fada agus tedious, agus mar sin tá bealaí éagsúla ann chun é a bharrfheabhsú.

Is é ceann de na bealaí seo píblínte SSH a ligeann duit seisiún SSH amháin a úsáid chun treoracha a fhorghníomhú, seachas seisiún nua a oscailt gach uair, rud a shábhálann go leor ama dúinn. (Díreach cuimhnigh a mhúchadh requiretty socrú le haghaidh sudo i do /etc/sudoers comhad ar an meaisín cianda)

Bealach nua chun Ansible a overclock ná leabharlann python ar a dtugtar Miteigin. Más rud é nár chuala aon duine faoi, déanfaidh mé cur síos gairid ar a fheidhmiúlacht. Ligeann sé cód python a fhorghníomhú go tapa ar mheaisín iargúlta, agus níl in Ansible ach sampla amháin úsáide. Úsáideann Mitogen píopa UNIX ar an meaisín iargúlta agus aistríonn sé cód python comhbhrúite le zlib agus sraitheach le picil. Cuidíonn sé seo chun é a chomhlánú níos tapúla agus sábhálann sé trácht. Má tá suim agat i míniú níos mionsonraithe, is fearr a léamh faoi ar an leathanach "Conas a oibríonn sé". Ach inniu díreoimid ach ar an gcaoi a n-oibríonn an leabharlann le Ansible.

Is féidir le mitogen i gcúinsí áirithe do chód Ansible a bhrostú arís agus arís eile agus ídiú tráchta a laghdú go suntasach. A ligean ar a sheiceáil amach na cásanna úsáide is coitianta agus a fheiceáil cé mhéad a chuidíonn sé linn.

Úsáidim Ansible an chuid is mó le haghaidh: comhaid cumraíochta a chruthú ar chianmheaisín, pacáistí a shuiteáil, comhaid a chóipeáil chuig agus ón gcian-mheaisín. B'fhéidir go bhfuil samplaí eile agat - scríobh sna tuairimí.

A ligean ar dul!

Tá cumraíocht mitogen le haghaidh Ansible an-simplí:
Suiteáil an leabharlann Mitogen:

pip install mitogen

Anois tá dhá bhealach choibhéiseacha - na roghanna a chumrú sa chomhad cumraíochta ansible.cfg, nó na hathróga timpeallachta is gá a shocrú.

Glacaimid leis go mbeidh an cosán chuig an Mitogen suiteáilte /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Ansin:

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

Suiteáil Ansible i virtualenv, le agus gan 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

Tabhair faoi deara le do thoil nach n-oibríonn Mitogen 0.2.7 le Ansible 2.8 (amhail Bealtaine 2019)

Ailiasanna a dhéanamh:

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'

Anois déanaimis iarracht leabhar súgartha a rith a chruthaíonn comhaid ar mheaisín cianda:

---
- 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 déanaimis é a rith le agus gan Mitogen chun 10 gcomhad a chruthú:

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

Feicimid feabhas faoi dhó. Déanaimis seiceáil le haghaidh 2, 20, ..., 30 comhad:

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 sin, chuireamar dlús leis an bhforghníomhú níos mó ná 10 n-uaire!
Anois déanaimis triail a bhaint as cásanna éagsúla agus féach cé chomh tapa agus a oibríonn gach rud dúinn:

  • Script chun comhaid a chóipeáil chuig óstach iargúlta ó cheann áitiúil (leis an modúl copy):
    Ansible a bhrostú le Mitogen

  • Script le haghaidh comhaid a chruthú ar óstach cianda le copy modúl:
    Ansible a bhrostú le Mitogen

  • Cás le comhaid a íoslódáil ó óstach cianda go ceann áitiúil:
    Ansible a bhrostú le Mitogen

Bainimis triail as cás le roinnt (3) cianmheaisíní, mar shampla cás ina ndéantar comhaid a chóipeáil chuig cianóstach:
Ansible a bhrostú le Mitogen

Mar a fheiceann tú, sábhálann Mitogen am agus trácht dúinn sna cásanna seo. Ach mura bhfuil an scrogall in Ansible, ach mar shampla i I/O diosca nó líonra, nó áit éigin eile, is deacair a bheith ag súil go gcuideoidh Mitogen linn.

Déanaimis iarracht script le pacáistí a shuiteáil le modúil yum/dnf agus python ag baint úsáide as pip. Cuireadh na pacáistí i dtaisce ionas nach mbeidís ag brath ar 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 thóg sé 12 soicind, mar an gcéanna gan é.
Ar an leathanach Mitogen for Ansible leathanach is féidir leat breathnú ar thagarmharcanna agus tástálacha eile. Mar a deir an leathanach:

Ní féidir le Mitogen an modúl a bhrostú agus é ag rith. Ní féidir leis ach an modúl seo a chur i gcrích chomh tapa agus is féidir.

Mar sin, tá sé tábhachtach do scrogaill a aimsiú i do imscaradh agus má tá siad mar gheall ar Ansible, ansin cabhróidh Mitogen leat iad a réiteach agus luas suntasach a dhéanamh ar fhorghníomhú do leabhair súgartha.

Foinse: will.com

Add a comment