Kufulumizitsa Ansible ndi Mitogen

Amatha anakhala mmodzi wa otchuka kwambiri System Configuration Management. Pambuyo idagulidwa ndi Red Hat mu 2015 nambala otenga nawo mbali pa polojekiti idapitilira masauzande ambiri ndipo Ansible idakhala njira yomwe imagwiritsidwa ntchito kwambiri pakutumizira ndi kuyimba. Ntchito zake zambiri ndizochititsa chidwi kwambiri.

Ansible imagwira ntchito pamalumikizidwe a SSH kupita ku makamu akutali. Imatsegula gawo la SSH, kulowa, kukopera kachidindo ka Python pa intaneti ndikuyilembera ku fayilo yanthawi yochepa. Pambuyo pake, imayendetsa fayiloyi pamakina akutali. Kachitidwe konseku ndi kotalika komanso kotopetsa, kotero pali njira zingapo zowonjezeretsa.

Imodzi mwa njira izi ndi Zithunzi za SSH zomwe zimakulolani kugwiritsa ntchito gawo limodzi la SSH kuti mupereke malangizo, m'malo motsegula gawo latsopano nthawi iliyonse, zomwe zingatipulumutse nthawi yambiri. (Ingokumbukirani kuzimitsa requiretty kukhazikitsa kwa sudo mu yanu /etc/sudoers fayilo pamakina akutali)

Njira yatsopano yosinthira Ansible ndi laibulale ya python yotchedwa Mitogen. Ngati wina sanamvepo, ndikufotokozera mwachidule momwe zimagwirira ntchito. Zimalola kupha msanga kwa code ya python pamakina akutali, ndipo Ansible ndi chitsanzo chimodzi chokha chakugwiritsa ntchito. Mitogen imagwiritsa ntchito chitoliro cha UNIX pamakina akutali ndikusamutsa kachidindo ka python woponderezedwa ndi zlib ndikuyika ndi pickle. Izi zimathandiza kuti amalize mofulumira ndikupulumutsa magalimoto. Ngati mukufuna kufotokozera mwatsatanetsatane, ndi bwino kuwerenga za izo pa tsamba "Zimagwira ntchito bwanji". Koma lero tingoyang'ana momwe laibulale imagwirira ntchito ndi Ansible.

Mitogen nthawi zina imatha kufulumizitsa nambala yanu ya Ansible kangapo ndikuchepetsa kwambiri kugwiritsa ntchito magalimoto. Tiyeni tiwone zomwe zimagwiritsidwa ntchito kwambiri ndikuwona momwe zimatithandizira.

Ndimagwiritsa ntchito Ansible kwambiri: kupanga mafayilo osinthira pamakina akutali, kukhazikitsa mapaketi, kukopera mafayilo kupita ndi kuchokera pamakina akutali. Mwina muli ndi zitsanzo zina - lembani mu ndemanga.

Tiyeni tipite!

Kusintha kwa Mitogen kwa Ansible ndikosavuta:
Ikani laibulale ya Mitogen:

pip install mitogen

Tsopano pali njira ziwiri zofanana - mwina sinthani zosankha mufayilo yosintha ya ansible.cfg, kapena ikani zosintha zofunikira za chilengedwe.

Tiyerekeze kuti njira yopita ku Mitogen yomwe idakhazikitsidwa idzakhala /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Kenako:

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

kapena

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

Tiyeni tiyike Ansible mu virtualenv, ndi popanda 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

Chonde dziwani kuti Mitogen 0.2.7 sigwira ntchito ndi Ansible 2.8 (kuyambira Meyi 2019)

Kupanga zilembo:

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'

Tsopano tiyeni tiyese kuyendetsa buku lamasewera lomwe limapanga mafayilo pamakina akutali:

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

Ndipo tiyeni tiyendetse popanda Mitogen kupanga mafayilo 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

Tikuwona kusintha kwa 2. Tiyeni tiwone mafayilo 20, 30, ..., 100:

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

Zotsatira zake, tidachulukitsa kupha nthawi zopitilira 10!
Tsopano tiyeni tiyese zochitika zosiyanasiyana ndikuwona momwe zonse zimatigwirira ntchito mwachangu:

  • Script yokopera mafayilo kwa olandila akutali kuchokera komweko (ndi module copy):
    Kufulumizitsa Ansible ndi Mitogen

  • Script yopangira mafayilo pamtundu wakutali ndi copy gawo:
    Kufulumizitsa Ansible ndi Mitogen

  • Nkhani yotsitsa mafayilo kuchokera kwa omwe ali kutali kupita kwawoko:
    Kufulumizitsa Ansible ndi Mitogen

Tiyeni tiyese chitsanzo chokhala ndi makina angapo (3) akutali, mwachitsanzo zochitika zokopera mafayilo kwa omwe ali kutali:
Kufulumizitsa Ansible ndi Mitogen

Monga mukuonera, Mitogen imatipulumutsa nthawi ndi magalimoto pazimenezi. Koma ngati botolo silili mu Ansible, koma mwachitsanzo mu I / O ya disk kapena network, kapena kwinakwake, ndiye kuti n'zovuta kuyembekezera kuti Mitogen idzatithandiza.

Tiyeni tiyese script ndikuyika phukusi ndi yum/dnf ndi python modules pogwiritsa ntchito pip. Maphukusiwo adasungidwa kuti asadalire glitches pamaneti:

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

Ndi Mitogen zinatenga masekondi 12, mofanana ndi popanda izo.
Patsamba Mitogen for Ansible page mukhoza kuyang'ana benchmarks ndi mayesero ena. Monga tsamba likunena:

Mitogen sangathe kufulumizitsa gawoli pamene likuyenda. Itha kungopangitsa kuti gawoli lizichita mwachangu momwe mungathere.

Chifukwa chake, ndikofunikira kuti mupeze zopinga zanu pakutumiza kwanu ndipo ngati zili chifukwa cha Ansible, ndiye kuti Mitogen ikuthandizani kuti muwathetse ndikufulumizitsa kwambiri kutulutsa mabuku anu osewerera.

Source: www.habr.com

Kuwonjezera ndemanga