Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ 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,
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-ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ
ΠΠΎΠ²ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Privilege Escalation ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π·Π°Π΄Π°Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ sudo ΠΈ su.
ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ UI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΏΠΈΡΠΊΠΎΠ²
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ°Π»Π° Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π‘ΠΏΠΈΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π»ΡΠ±ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ.
Π£Π»ΡΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ
Π£ ΠΌΠ΅ΡΡΠΈΠΊ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ endpoint (/api/v2/metrics), Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠΌ Ansible Tower ΡΠ΅ΠΏΠ΅ΡΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Prometheus ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎΠ±Π»Π°ΡΠ½ΡΡ .
Ansible Tower 3.5 ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ,
ΠΠ΅Π±ΠΈΠ½Π°ΡΡ ΠΏΠΎ Ansible: ΠΏΡΠΎΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ Π½Π°Π²ΡΠΊΠΈ
ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π²Π΅Π±ΠΈΠ½Π°ΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
4 ΠΈΡΠ½Ρ ΠΏΡΠΎΡΠ΅Π» Π²Π΅Π±ΠΈΠ½Π°Ρ
ΠΠ° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com