рдорд┐рддреНрд░реЛрдЬреЗрди рдХреЗ рд╕рд╛рде Ansible рдХреЛ рдЧрддрд┐ рджреЗрдВ

Mitogen рдХреЗ рд╕рд╛рде Ansible рдХреЛ рдЧрддрд┐ рджреЗрдВ!


тЖТ рд░реВрд╕реА рд╕рдВрд╕реНрдХрд░рдг


Ansible рдЖрдЬрдХрд▓ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред 2015 рдореЗрдВ рд░реЗрдб рд╣реИрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдЧреНрд░рд╣рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреНрд╕рд┐рдмрд▓ рд╣рдЬрд╛рд░реЛрдВ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдЖрд░реНрдХрд┐рдбреЗрд╢рди рдЯреВрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИрдВред


рджреВрд░рд╕реНрде рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП SSH рдХрдиреЗрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрд╕рдПрд╕рдПрдЪ рд╕рддреНрд░ рдЦреЛрд▓рддрд╛ рд╣реИ, рд╢реЗрд▓ рдореЗрдВ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЬрдЧрд░ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рджреВрд░рд╕реНрде рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдпрд╣ рдЕрдЬрдЧрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрд╣реБрдд рднрд╛рд░реА рд╣реИ рдФрд░ рдЗрд╕реЗ рддреЗрдЬ рдФрд░ рд╣рд▓реНрдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред


рдЗрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдЬрдЧрд░ рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рд╕рддреНрд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рд╕рддреНрд░реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИред (рдмрд╕ рд░рд┐рдореЛрдЯ рд╕рд╛рдЗрдб рдореЗрдВ /etc/sudoers рдореЗрдВ sudo рдХреЗ рд▓рд┐рдП requiretty рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ)


Ansible рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХрд╛ рдирдпрд╛ рддрд░реАрдХрд╛ рдПрдХ рдорд╣рд╛рди рдЕрдЬрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕реЗ рдорд┐рдЯреЛрдЬрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдореЗрд░реЗ рдЬреИрд╕рд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рдерд╛ - рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рджреВрд░рд╕реНрде рдореЗрдЬрдмрд╛рди рдкрд░ рдЕрдЬрдЧрд░ рдХреЛрдб рдХреЗ рддреЗрдЬреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ Ansible рдЗрд╕рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реИред рдорд┐рддреЛрдЬреЗрди рд╕реБрджреВрд░ рдорд╢реАрдиреЛрдВ рдкрд░ UNIX рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ "рдкрд┐рдХрд▓реНрдб" рдЕрдЬрдЧрд░ рдХреЛрдб рдХреЛ zlib рдХреЗ рд╕рд╛рде рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕реЗ рддреЗрдЬ рдФрд░ рдмрд┐рдирд╛ рдЬреНрдпрд╛рджрд╛ рдЯреНрд░реИрдлрд┐рдХ рдХреЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ " рдЗрд╕рдХреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдкреГрд╖реНрда рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЖрдЬ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдмрдВрдзрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред


рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдорд╛рдЗрдЯреЛрдЬрди рдХреБрдЫ рд╕рдордп рдореЗрдВ рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЛ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдЗрдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ рдФрд░ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред


рдореЗрд░реЗ рд▓рд┐рдП Ansible рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ: рдПрдХ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛, рд╕рдВрдХреБрд▓ рд╕реНрдерд╛рдкрдирд╛, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рд╕реЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ред рд╢рд╛рдпрдж рдЖрдк рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреГрдкрдпрд╛ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВред


рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!


рдЕрдирд┐рдорд┐рдмрд▓ рдХреЗ рд▓рд┐рдП рдорд┐рдЯреЛрдЬреЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
рдорд┐рдЯреЛрдЬреЗрди рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:


 pip install mitogen 

рдлрд┐рд░ рдпрд╛ рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рдпрд╛ ansible.cfg рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░реЗрдВ, рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдареАрдХ рд╣реИрдВ:
рдорд╛рди /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy рд╣реИрдВ /usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy рдорд┐рддреЛрдЬреЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рдорд╛рд░реНрдЧ рд╣реИред


 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 



Miten рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ virtualenv рдореЗрдВ Ansible рддреИрдпрд╛рд░ рдХрд░реЗрдВ:


 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 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Mitogen 0.2.7 Ansible 2.8 (рдордИ 2019 рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ


рдЙрдкрдирд╛рдо рдмрдирд╛рдПрдБ:


 alias pure-ansible-playbook='$(pwd)/pure_ansible/bin/ansible-playbook' alias mitogen-ansible-playbook='ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python2.7/site-packages/ansible_mitogen/plugins/strategy:$(pwd)/mitogen_ansible/lib/python3.7/site-packages/ansible_mitogen/plugins/strategy ANSIBLE_STRATEGY=mitogen_linear $(pwd)/mitogen_ansible/bin/ansible-playbook' 

рдЕрдм рдЪрд▓рд┐рдП рд░рд┐рдореЛрдЯ рдкрд░ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ:


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

рдФрд░ рдЗрд╕реЗ 10 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдорд┐рддреЛрдЬрди рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдЪрд▓рд╛рдПрдВ:


 time mitogen-ansible-playbook file_creation.yml -i hosts -en=10 &>/dev/null real 0m2.603s user 0m1.152s sys 0m0.096s time pure-ansible-playbook file_creation.yml -i hosts -en=10 &>/dev/null real 0m5.908s user 0m1.745s sys 0m0.643s 

рдЕрднреА рд╣рдо x2 рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕реЗ 20, 30, ..., 100 рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪреЗрдВ:


 time pure-ansible-playbook file_creation.yml -i hosts -en=100 &>/dev/null real 0m51.775s user 0m8.039s sys 0m6.305s time mitogen-ansible-playbook file_creation.yml -i hosts -en=100 &>/dev/null real 0m4.331s user 0m1.903s sys 0m0.197s 

рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдордиреЗ 10 рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛!


рдЖрдЗрдП рдЕрдм рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдБ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ:


  • рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рд╕реЗ рд░рд┐рдореЛрдЯ ( copy рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рджреГрд╢реНрдп:
    рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ


  • copy рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдкрд░рд┐рджреГрд╢реНрдп:
    рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛


  • рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рддрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдкрд░рд┐рджреГрд╢реНрдп:
    рдлрд╛рдЗрд▓реЗрдВ рд▓рд╛ рд░рд╣рд╛ рд╣реИ



рдЪрд▓реЛ рдХреБрдЫ (3) рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдкрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдЕрдкрд▓реЛрдб рдХрд░рдирд╛:
рдХрдИ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдорд┐рддреЛрдЬреЗрди рд╣рдореЗрдВ рдЗрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕рдордп рдФрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рджреЛрдиреЛрдВ рдмрдЪрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрдбрд╝рдЪрди Ansible рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП I / O рдбрд┐рд╕реНрдХ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ, рдпрд╛ рдХрд╣реАрдВ рдФрд░ рд╣реИ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Mitogen рд╕реЗ рдорджрдж рдХреА рдЙрдореНрдореАрдж рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред


рдЪрд▓реЛ рдЙрджрд╛рд╣рд░рдг рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП yum / dnf рдФрд░ рдкрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рдиреЗрдЯрд╡рд░реНрдХ рдЧреНрд▓рд┐рдЪ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд░реА-рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


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

рдорд╛рдЗрдЯреЛрдЬрди рдХреЗ рд╕рд╛рде рдпрд╣ 12 рд╕реЗрдХрдВрдб рд▓реЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╢реБрджреНрдз рдПрдВрдЯреАрд╕реЗрдмрд▓ рдХреЗ рд╕рд╛рдеред


рдорд┐рддреНрд░реЛрдЬреЗрди рдХреЗ рд▓рд┐рдП Ansible рдкреГрд╖реНрда рдореЗрдВ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдФрд░ рдорд╛рдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рдкреГрд╖реНрда рдШреЛрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ:


рдорд┐рддреЛрдЬреЗрди рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдЗрд╕реАрд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреА рдЕрдбрд╝рдЪрдиреЗрдВ рдХрд╣рд╛рдБ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╡реЗ рдЕрдВрд╕рд┐рдмрд▓ рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рддреЛ рдорд┐рддреЛрдЬрди рдЖрдкрдХреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреА рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рдмрдврд╝рд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/hi453446/


All Articles