Te tere o Ansible me Mitogen

Ka taea riro tetahi o nga tino rongonui Whakahaere Whirihoranga Pūnaha. I muri i hokona e Red Hat i te tau 2015 te nama kaiuru kaupapa neke atu i te mano, a ko Ansible pea te nuinga o te whakamahi i te punaha whakatakotoranga me te punaha whakahaere. He tino whakamīharo te whānuitanga o nga tono.

Ka mahi a Ansible i runga i nga hononga SSH ki nga kaihautu mamao. Ka whakatuwherahia he waahi SSH, ka takiuru, ka kape i te waehere Python ki runga i te whatunga ka tuhia ki tetahi konae rangitahi motuhake. I muri i tera, ka whakahaerehia e ia tenei konae i runga i te miihini mamao. He roa, he hoha hoki tenei raupapa whakahaere, no reira he maha nga huarahi hei whakapai ake.

Ko tetahi o enei huarahi SSH paipa ka taea e koe te whakamahi i tetahi waahi SSH ki te whakahaere i nga tohutohu, kaua ki te whakatuwhera i tetahi huihuinga hou i ia wa, ka taea te whakaora i te wa roa. (Me mahara noa ki te whakaweto requiretty tautuhinga mo sudo i roto i to /etc/sudoers kōnae i runga i te miihini mamao)

He huarahi hou ki te overclock Ansible he whare pukapuka python e kiia nei Mitogen. Mena kaore tetahi i rongo, ka whakaahua poto ahau i tana mahi. Ka taea te mahi tere o te waehere python ki runga miihini mamao, a ko Ansible tetahi tauira noa o te whakamahi. Ka whakamahi a Mitogen i te paipa UNIX i runga i te miihini mamao me te whakawhiti i te waehere python kua kopirihia ki te zlib me te rangatū ki te pikara. Ka awhina tenei ki te whakaoti tere me te whakaora i nga waka. Mena kei te pirangi koe ki nga whakamaramatanga ake, he pai ki te panui i runga i te whaarangi "Pehea te mahi". Engari i tenei ra ka aro noa tatou ki te mahi a te whare pukapuka me Ansible.

Ko te Mitogen i etahi ahuatanga ka tere ake to Waehere Ansible i nga wa maha me te tino whakaiti i te kohi waka. Kia tirohia nga keehi tino rongonui ka kite i te nui o te awhina i a maatau.

Ka whakamahia e au te nuinga o Ansible mo: te hanga i nga konae whirihoranga i runga miihini mamao, te whakauru i nga kete, te kape i nga konae ki te miihini mamao. Tena pea kei a koe etahi atu tauira - tuhia ki roto i nga korero.

Haere tatou!

He tino ngawari te whirihoranga Mitogen mo Ansible:
Tāutahia te whare pukapuka Mitogen:

pip install mitogen

Inaianei e rua nga huarahi e rite ana - whirihorahia nga whiringa ki te konae whirihoranga ansible.cfg, tautuhia nga taurangi taiao e tika ana.

Me whakaaro ko te huarahi ki te Mitogen kua whakauruhia /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Na:

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

ranei

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

Me whakauru a Ansible ki virtualenv, me te kore o 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

Kia mahara ko Mitogen 0.2.7 kaore e mahi me Ansible 2.8 (mai i Mei 2019)

Te hanga ingoa ingoa:

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'

Inaianei me ngana ki te whakahaere pukapuka takaro e hanga ana i nga konae ki runga miihini mamao:

---
- 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 me whakahaere me te kore Mitogen hei hanga i nga konae 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

Ka kite matou i te whakapai ake 2-fold. Kia tirohia mo te 20, 30, ..., 100 nga konae:

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

Ko te mutunga mai, neke atu i te 10 nga wa i whakaterehia ai e matou!
Inaianei me whakamatau i nga ahuatanga rereke ka kite i te tere o nga mahi katoa mo tatou:

  • He tuhinga mo te kape i nga konae ki tetahi kaihautu mamao mai i tetahi rohe (me te kōwae copy):
    Te tere o Ansible me Mitogen

  • Hōtuhi mō te hanga kōnae i runga i te kaihautū mamao me copy kōwae:
    Te tere o Ansible me Mitogen

  • Te ahuatanga me te tango i nga konae mai i te kaihautu mamao ki tetahi rohe:
    Te tere o Ansible me Mitogen

Kia tamata tatou i tetahi ahuatanga me etahi (3) miihini mamao, hei tauira he ahuatanga ki te kape i nga konae ki tetahi kaihautu mamao:
Te tere o Ansible me Mitogen

Ka kite koe, ka tiakina e Mitogen te wa me te hokohoko i enei ahuatanga. Engari ki te kore te pounamu i roto i te Ansible, engari hei tauira i roto i te I/O o te kōpae, te whatunga ranei, i tetahi atu waahi ranei, he uaua ki te tumanako ka awhina a Mitogen ia tatou.

Me whakamatau he tuhinga me te whakauru i nga kohinga me te yum/dnf me nga waahanga python ma te whakamahi i te pip. I keterokihia nga kete kia kore ai e whakawhirinaki ki nga raru whatunga:

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

Ma te Mitogen he 12 hēkona, he rite tonu ki te kore.
Kei te whaarangi Mitogen mo Ansible page Ka taea e koe te titiro ki etahi atu tohu tohu me nga whakamatautau. E ai ki te wharangi:

Kaore e taea e Mitogen te tere ake i te waahanga i te wa e rere ana. Ka taea noa e ia te mahi tere o tenei waahanga.

No reira, he mea nui ki te kimi i o mahunga pounamu i roto i to tukunga me te mea na Ansible, katahi ka awhina a Mitogen i a koe ki te whakaoti me te tere tere te mahi o o pukapuka takaro.

Source: will.com

Tāpiri i te kōrero