ΠΠ±ΡΠ½ΠΎΡΡΡΠ° Ansible ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°Π΄Π²Π° Ρ Π½ΠΎΠ²ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ β ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ β ΡΡΠ·Π΄Π°Π²Π°ΠΉΠΊΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠ° Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Ansible, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½ΠΎΠ²ΠΈΡ ΠΊΠΎΠ΄ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-Π±ΡΡΠ·ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈΡΠ΅. ΠΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠΏΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΈΠΌ Π² ΡΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΏΡΡΠΊΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ Π½Π°ΠΏΡΠ»Π½ΠΎ Π³ΠΎΡΠΎΠ²ΠΈ Π·Π° ΠΏΡΡΠΊΠ°Π½Π΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΡΠ΅ ΠΎΡΠ»Π°Π³Π° Π΄ΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Ansible Engine. ΠΠΎ Π½Π΅ΠΎΡΠ΄Π°Π²Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈΠΌΠ°Ρ Π° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π½ΠΎΠ²ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° Ansible β Ρ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Ansible Engine.

ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²Π°ΡΠ°, ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Ansible Π·Π°ΠΏΠΎΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅.
Red Hat Ansible Engine 2.8: ΠΏΠΎ ΠΏΡΡΡ ΠΊΡΠΌ Π½ΠΎΠ²ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Ansible-ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅
Π ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π² Ansible Engine 2.8 ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠ°ΡΠ°Π΅ΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π’Π΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² Π½Π°ΡΠΈΠ½ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, ΠΊΠΎΠΉΡΠΎ Π½ΡΠΌΠ° Π΄Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Ansible ΠΏΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΊΠ°ΠΊΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Ansible, ΡΠ°ΠΊΠ° ΠΈ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°.
ΠΠ»Π°Π½ΠΈΡΠ° ΡΠ΅, ΡΠ΅ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π‘ΡΠ·Π΄Π°ΡΠ΅Π»ΠΈΡΠ΅ (Creators) Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ ΠΠΎΠ»Π΅ΠΊΡΠΈΠΈ (Collection), ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Π² ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎΡΠΎ ΠΌΡΡΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ Π²ΡΠ·Π΅Π» Π½Π° Ansible (control node) ΠΈΠ»ΠΈ Π½Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈΡ Π²ΡΠ·Π΅Π» (managed node). Π‘ΡΠ·Π΄Π°ΡΠ΅Π»ΡΡ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ ΡΠ΅ ΡΠΊΠ°Π·Π²Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΎΠ»ΠΈ ΠΈ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ²Π΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π³ΠΎΡΠ΅ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Ansible Engine, ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΎΡΠ²ΡΡΠΆΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Ansible Engine.
ΠΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Become
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Become ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΡΠ΄Π°Π²Π½Π°, Π½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.8, Π΄ΡΠΌΠ°ΡΠ° BECOME ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Ansible Engine Π·Π° ΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»Π° ΠΏΡΠΈ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ (sudo-ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ *nix ΠΈΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ enable Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°). Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, ΡΠ΅Π³Π° BECOME Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΎΠΌΠΎΡΠΈΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Ρ ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅:
ansible-playbook --become --ask-become-pass site.yml
BECOME password:
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² Ansible Engine 2.8 ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ BECOME, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΡΠΎ doas Π½Π° Linux ΠΈ runas Π½Π° Windows ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». ΠΠ° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΡΡ become enable.
Π’ΡΡΡΠ΅Π½Π΅ Π½Π° Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ ΡΡΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Π»ΠΈ Ρ ΡΠ°ΠΊΠ°Π²Π° Π³ΡΠ΅ΡΠΊΠ°:
/usr/bin/python: bad interpreter: No such file or directory
Π‘ΡΠ°Π²Π° Π΄ΡΠΌΠ° Π·Π° ΡΠΎΠ²Π°, ΡΠ΅ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Ansible Engine ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΠΌΡΡΠ°ΡΠ΅, ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΡ (ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½) Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° /usr/bin/python. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.8, Ansible ΡΡΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° Π²ΡΡΠΊΠ° ΡΠ΅Π»Π΅Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΡΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ ΠΏΡΡΠΈΡΠ° ΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΠΏΠΈΡΡΡΠΈ ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΈ (fallback list), ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π² .
Retry ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅
Π’ΡΡΡΠΈΠ»ΠΈ Π»ΠΈ ΡΡΠ΅ ΠΎΡΠ΄Π°Π²Π½Π° Π½Π° Π΄ΠΈΡΠΊΠ° retry ΡΠ°ΠΉΠ»ΠΎΠ²Π΅? ΠΠΊΠΎ ΠΎΡΠ΄Π°Π²Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Ansible, ΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠ°ΠΌΠΎ Π·Π°Π΅ΠΌΠ°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.8, Ansible Engine ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π²Π΅ΡΠ΅ Π½Π΅ ΡΡΠ·Π΄Π°Π²Π° ΡΠ΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»Π° ansible.cfg, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅).
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Play Recap
ΠΠ·Π²Π°Π΄ΠΊΠ° ΠΎΡ :
Play Recap Π²Π΅ΡΠ΅ ΠΎΡΡΠΈΡΠ°Ρ Π·Π°Π΄Π°ΡΠΈ (tasks) ΡΡΡ ΡΡΠ°ΡΡΡ ignored ΠΈ rescued, ΠΊΠ°ΠΊΡΠΎ ΠΈ ok, changed, unreachable, failed ΠΈ skipped, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° Π½ΠΎΠ²ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠΎΡΡΠ° Π² callback ΠΏΠ»ΡΠ³ΠΈΠ½Π° default. Failed Π·Π°Π΄Π°ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΡΠ»Π°Π³ΡΡ ignore_errors: yes, ΡΠ΅ ΠΎΡΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ ignored. Failed Π·Π°Π΄Π°ΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π±ΠΈΠ»Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½Π° ΡΠ΅ΠΊΡΠΈΡ rescue, ΡΠ΅ ΠΎΡΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ rescued. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° Ansible, rescued Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΎΡΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ failed.
Π Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Play Recap Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ°, Ρ ΠΎΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈΠΌΠ°Ρ Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ skipped, rescued ΠΈ ignored:

ΠΠ±Π»Π°ΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
Π Π²Π΅ΡΡΠΈΡ 2.8 ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΊΠΈ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Amazon Web Services, Microsoft Azure, Google Cloud, Digital Ocean, ΠΈ . Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ TOML Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΠ½Π²Π΅Π½ΡΠ°Ρ.
Paramiko
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Red Hat Ansible Network Automation? Ansible Engine 2.8 Π²Π΅ΡΠ΅ Π½Π΅ ΡΡΠ΄ΡΡΠΆΠ° paramiko ΠΈ Π½Π΅ ΡΠ°Π·ΡΠΈΡΠ° Π½Π° Π½Π΅Π³ΠΎ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Ansible Engine ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ssh. ΠΠΊΠΎ Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ paramiko, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° pip install paramiko
ΠΠΊΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° paramiko Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½ΡΠ° Π·Π° Red Hat, ΠΌΠΎΠ»Ρ, ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ΅ Ρ ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ Π±Π°Π·Π°ΡΠ° Π·Π½Π°Π½ΠΈΡ .
Π’Π°ΠΊΠ° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Red Hat Ansible Engine ΡΠ΅ ΠΏΠΎΠΏΡΠ»Π½ΠΈ Ρ Π²Π½ΡΡΠΈΡΠ΅Π»Π΅Π½ ΡΠΏΠΈΡΡΠΊ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ .
Red Hat Ansible Tower 3.5: ΠΏΠΎΠ²Π΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ
ΠΡ ΠΊΡΠ°Ρ Π½Π° ΠΌΠ°ΠΉ Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Red Hat Ansible Tower 3.5, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, Π°ΠΊΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΡΠ΅ Π³ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ.
Π ΡΠ°ΠΊΠ°, ΠΏΡΡΠ²ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅:
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° Red Hat Enterprise Linux 8;
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° Π²ΡΠ½ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΊΡΠ΅Π΄Π΅Π½ΡΠΈΠ°Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ;
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ become Π² Ansible Tower.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° ΠΎΡΡΡΡΠ°Π½Π΅Π½ΠΈ Π½Π°Π΄ 160 ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° Red Hat Enterprise Linux 8
Π§Π΅ΡΡΠΎ ΠΏΠΎΠ²ΡΠ°ΡΡΠΌΠ΅, ΡΠ΅ Red Hat Enterprise Linux (RHEL) Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π°ΡΠ° ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π° ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΈΠ±ΡΠΈΠ΄Π½ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎ. Ansible Tower 3.5 (ΠΊΠ°ΠΊΡΠΎ ΠΈ Ansible Engine 2.8) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ ΠΎΡΡΠΎΠ²Π΅ RHEL 8 ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Red Hat Enterprise Linux 8 ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ Π²ΡΠ·Π΅Π» Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Red Hat Ansible Automation.
ΠΡΠ½ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΊΡΠ΅Π΄Π΅Π½ΡΠΈΠ°Π»ΠΈ
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π²Π³ΡΠ°Π΄Π΅Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΊΡΠ΅Π΄Π΅Π½ΡΠΈΠ°Π»ΠΈ, Ansible Tower 3.5 ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π²ΡΠ½ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Π½Π° ΠΊΡΠ΅Π΄Π΅Π½ΡΠΈΠ°Π»ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΡΡ ΠΊΡΠ΅Π΄Π΅Π½ΡΠΈΠ°Π»ΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Ansible Tower ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- HashiCorp Vault;
- CyberArk AIM;
- CyberArk Conjur;
- Microsoft Azure Key Vault.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ΅Π·ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ΅ .
ΠΠΎΠ²ΠΈΡΠ΅ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ inventory ΠΈ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅
Π‘Π»Π΅Π΄Π²Π°ΠΉΠΊΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Ansible Engine, Ansible Tower 3.5 ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²ΠΈ inventory-ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ ΠΈ ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Ansible Tower ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° inventory ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈΡΠ΅ Microsoft Azure, Google Cloud Platform ΠΈ Red Hat OpenStack Platform, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ° Ρ Ρ ΠΈΠ±ΡΠΈΠ΄Π½ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΡΠ΅Π΄ΠΈ "ΠΈΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ°".
ΠΠΎΠ²ΠΈΡΡ ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ»ΠΎΡΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ» Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ sudo ΠΈ su.
ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ UI ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΡΠΏΠΈΡΡΡΠΈΡΠ΅
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΡΠΏΠΈΡΡΡΠΈΡΠ΅ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½Π°. Π’Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΠΈ ΡΠ²ΠΈΠ²Π°Π½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π°. Π‘ΠΏΠΈΡΡΡΠΈΡΠ΅ ΡΡΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΎΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° ΠΈ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠΈ ΠΏΠΎ Π²ΡΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ.
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ
ΠΠ΅ΡΡΠΈΠΊΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡ Π° ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡΠ΅ endpoint (\/api\/v2\/metrics), Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΈΡΠΎ Ansible Tower ΡΠ΅Π³Π° Π»Π΅ΡΠ½ΠΎ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Prometheus ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΈ.
Ansible Tower 3.5 Π²Π΅ΡΠ΅ Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΊΠ°ΠΊΡΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ΅Π· Vagrant ΠΈΠ»ΠΈ Amazon AMI.
Π£Π΅Π±ΠΈΠ½Π°ΡΠΈ ΠΏΠΎ Ansible: ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡ
ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° ΡΠ±ΠΈΡΠΊΠ°ΡΠ° ΠΎΡ ΡΠ΅Π±ΠΈΠ½Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠ°:
ΠΠ° 4 ΡΠ½ΠΈ ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ ΡΠ΅Π±ΠΈΠ½Π°Ρ , ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Red Hat Ansible Tower ΠΈ Red Hat Ansible Engine. Π‘ΠΊΠΎΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π² ΡΠ±ΠΈΡΠΊΠ°ΡΠ°.
ΠΠ° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ Π΅Π·ΠΈΠΊ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
