Faatelevaveina Ansible ma Mitogen

E mafai avea ma se tasi e sili ona lauiloa Puleaina Faiga Fa'atonu. Ina ua uma na faatauina e Red Hat i le 2015 le numera tagata auai i galuega faatino sili atu i le afe ma le Ansible atonu na sili ona faʻaaogaina le faʻaogaina ma le faʻaogaina o faiga. O lona lautele lautele o talosaga e matua faagaeetia lava.

E galue le Ansible i feso'ota'iga SSH i 'au mamao. E tatalaina se sauniga SSH, ulufale i totonu, kopi le code Python i luga o le upega tafailagi ma tusi i se faila le tumau. A maeʻa lena, e faʻatautaia lenei faila i luga o le masini mamao. O lenei fa'asologa atoa o fa'agaioiga e fai si umi ma fa'alavelave, o lea e tele auala e fa'amalieina ai.

O se tasi o nei auala o le SSH paipa lea e mafai ai ona e faʻaogaina se tasi SSH sauniga e faʻatino ai faʻatonuga, nai lo le tatalaina o se sauniga fou i taimi taʻitasi, lea e mafai ona faʻaolaina ai i matou i le tele o taimi. (Ia manatua e tape requiretty seti mo sudo i lau /etc/sudoers faila i luga ole masini mamao)

O se auala fou e overclock Ansible o se faletusi python e taʻua Mitogen. Afai e leʻi faʻalogo se tasi i ai, o le a ou faʻamatala faʻapuupuu lona faʻatinoga. E mafai ai ona faʻataunuʻu vave le code python i luga o se masini mamao, ma o le Ansible o se tasi lea o faʻataʻitaʻiga o le faʻaogaina. E fa'aaoga e Mitogen se paipa UNIX i luga o le masini mamao ma fa'afeiloa'i le code python fa'apipi'i i le zlib ma fa'asologa i le piko. E fesoasoani lea e fa'amae'a vave ma fa'asaoina ai felauaiga. Afai e te fiafia i se faʻamatalaga sili atu, e sili le faitau e uiga i ai i luga o le itulau "E faapefea ona galue". Ae o le asō o le a tatou taulai atu i le auala e galue ai le faletusi ma Ansible.

Mitogen i nisi tulaga e mafai ona faatelevaveina lau code Ansible i ni nai taimi ma faʻaitiitia ai le faʻaaogaina o feoaiga. Se'i o tatou va'ai i fa'aoga sili ona ta'uta'ua ma va'ai pe fa'apefea ona fesoasoani ia i tatou.

Ou te fa'aoga tele le Ansible mo: fatuina o faila fa'atulagaina i se masini mamao, fa'apipi'i afifi, kopiina o faila i ma mai le masini mamao. Masalo e iai isi au faʻataʻitaʻiga - tusi i faʻamatalaga.

Tatou o!

O le faʻatulagaina o mitogen mo Ansible e matua faigofie lava:
Fa'apipi'i le faletusi Mitogen:

pip install mitogen

Ole taimi nei e lua auala tutusa - pe faʻapipiʻi filifiliga i le faila faʻapipiʻi ansible.cfg, poʻo le setiina o suiga ole siosiomaga talafeagai.

Seʻi tatou manatu o le ala i le Mitogen faʻapipiʻi o le a /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy. Ona:

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

poʻo

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

Sei o tatou faʻapipiʻi Ansible i virtualenv, faʻatasi ma le leai 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

Faamolemole ia matau o le Mitogen 0.2.7 e le galue ma le Ansible 2.8 (e pei o Me 2019)

Faiga igoa igoa:

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'

Sei o tatou taumafai e taʻavale se tusi taʻavale e fatuina faila i luga o se masini 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 }}

Ma seʻi o tatou faʻataʻitaʻiina ma aunoa ma Mitogen e fatu ai faila 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

Matou te vaʻai i se faʻaleleia 2-faiga. Sei o tatou siaki mo 20, 30, ..., 100 faila:

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

O se taunuuga, na matou faatelevaveina le faʻataunuʻuina e sili atu i le 10 taimi!
Se'i o tatou fa'ata'ita'i ni fa'aaliga eseese ma va'ai po'o le a le tele vave o mea uma e aoga mo i tatou:

  • Fa'amatalaga mo le kopiina o faila i se tagata talimalo mamao mai se tasi i le lotoifale (faatasi ai ma le module copy):
    Faatelevaveina Ansible ma Mitogen

  • Fa'amatalaga mo le fatuina o faila i luga o se talimalo mamao ma copy vaega:
    Faatelevaveina Ansible ma Mitogen

  • Fa'ata'ita'iga i le la'uina mai o faila mai se 'au mamao i se fa'apitonu'u:
    Faatelevaveina Ansible ma Mitogen

Se'i o tatou taumafai i se fa'ata'ita'iga fa'atasi ma ni masini mamao (3), mo se fa'ata'ita'iga o se fa'ata'ita'iga i le kopiina o faila i se nofoaga mamao:
Faatelevaveina Ansible ma Mitogen

E pei ona e vaʻai, Mitogen e faʻasaoina i matou i taimi uma ma fefaʻatauaiga i nei faʻaaliga. Ae afai e le o iai le fagu i Ansible, ae mo se faʻataʻitaʻiga i le I / O o se disk poʻo se fesoʻotaʻiga, poʻo se isi mea, ona faigata lea ona faʻamoemoe o le a fesoasoani mai Mitogen ia i tatou.

Sei o tatou taumafai se tusitusiga ma faʻapipiʻi afifi ma yum/dnf ma python modules faʻaaoga pip. O afifi na teuina ina ia aua neʻi faʻalagolago i fesoʻotaʻiga fesoʻotaʻiga:

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

Faatasi ai ma Mitogen e 12 sekone, tutusa ma le leai.
I luga o le itulau Mitogen mo le itulau Ansible e mafai ona e vaʻai i isi faʻailoga ma suʻega. E pei ona taʻua e le itulau:

E le mafai e Mitogen ona faatelevaveina le module pe a alu. E mafai ona na'o le fa'atinoina o lenei module i le vave e mafai ai.

O le mea lea, e taua le suʻeina o au fagu i lau faʻapipiʻiina ma afai e mafua mai i le Ansible, ona fesoasoani lea o Mitogen ia te oe e foia ma faʻavavevave le faʻatinoina o au tusi taʻaloga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga