[Slurm, ΠΡΠ΅Π²ΠΎΠ»ΠΎΠ΄ Π‘Π΅Π²ΠΎΡΡΡΡΠ½ΠΎΠ²] Ansible - ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°Π³ΠΎΠ² Π΄ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (2021)
ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΠΊΡΡΡ:
- Π’Π΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
- Π’Π΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π°ΠΏΠ΄Π΅ΠΉΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ².
Π ΡΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ DevOps Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ ΠΏΡΠΎΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ Ansible.
ΠΠ· Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ β ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ β ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅.
Π 2021 Ansible ΡΠΆΠ΅ ΡΡΠ°Π» ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ bash.
ΠΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΅ΡΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π° Π±Π΅Π· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Π΅ΡΡΡ ΡΡΡΠ°Ρ Β«ΡΠ΅ΠΉΡΠ°Ρ Ρ Π½Π°ΠΆΠΌΡ Π½Π° ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΈ Π²ΡΠ΅ Π»ΡΠΆΠ΅ΡΒ».
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ:ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ;Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π°ΠΏΠ΄Π΅ΠΉΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ;Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ²Π§ΡΠΎ Π²Π°Ρ ΠΆΠ΄ΡΡ Π½Π° ΠΊΡΡΡΠ΅:
- ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠΌ.
- Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠ΅ΠΌΠΏΠ΅.
- ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π° ΡΡΠ΅Π½Π΄Π°Ρ ΠΎΡ ΠΏΠ°ΡΡΠ½ΡΡΠ° Selectel.
- Π Π½Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.
- ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ ΠΈ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΡΠ΅Π½Π΄Π°ΠΌΠΈ.
- ΠΠ»ΡΠ± ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ²
- ΠΡ Π΄ΠΎΠ°Π±Π²ΠΈΠΌ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏ
- ΠΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΡΡΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ.
- ΠΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ΄Ρ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΈΠ²Π΅Ρ! Π―, ΠΡΠ΅Π²ΠΎΠ»ΠΎΠ΄ Π‘Π΅Π²ΠΎΡΡΡΡΠ½ΠΎΠ², Engineering manager Π² HelloFresh ΠΈ Π°Π²ΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ°.
Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π±Π΅ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ Ansible, ΡΡΠΎΡ ΠΊΡΡΡ β Π½Π΅ ΡΡΡ Π°Ρ ΡΠ΅ΠΎΡΠΈΡ. Π― ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ΅ΠΉΡΡ, ΡΠ°Π·Π±Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ. ΠΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ, ΠΊΠ°ΠΊ Ansible Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Ansible Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΡΠΎΠ½Π΅ΠΌ ΠΎΠ±Π»Π°ΠΊΠ° Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠ° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΡΡΠΈ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΅ΡΡΡ ΠΊΡΠΎΠΌΠ΅ Ansible.
ΠΠΎΡ ΡΠ΅Π»Ρ β Π½Π°ΡΡΠΈΡΡ ΠΌΡΡΠ»ΠΈΡΡ ΠΊΠ°ΠΊ Ansible, Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ Ansible, Π±ΡΡΡ ΠΊΠ°ΠΊ Ansible, Ρ ΠΎΡΡ Π½Π΅Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ
ΠΠ°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ΅Π½Π΄Ρ Ρ ΡΡΠ°ΡΠ°Π»ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ΅ΠΉΡΠΎΠ², ΡΡΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ β ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΡΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΊΡΡΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
β1: ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ (ΡΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°Π»Π»)ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½ (ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ?)Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ?Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ AnsibleΠ’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ AnsibleΠ£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ansibleβ2: ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansible (playbook, ansible.cfg, hosts, templates)ΠΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΎΠ»ΡΠΠΈΡΠ΅ΠΌ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡAnsible galaxyΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ΅ΠΏΠ»ΠΎΠΉ Symphony ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° PHP Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansibleβ3: Python stack (modules, handlers)Raw ΠΌΠΎΠ΄ΡΠ»ΡΠ£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ uWSGI Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΈΠ»ΠΈ Gunicorn?)Π‘Π°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ssl ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ (Let's encrypt )ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ΅ΠΏΠ»ΠΎΠΉ Flask ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansibleβ4: ΠΠ΅ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (roles, jinja2, ΡΠ΅Π΅ΡΡΡΡ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΎΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, postgresql_db, postgresql_user, mongodb, script ΠΌΠΎΠ΄ΡΠ»ΠΈ, CHANGED _ WHEN, FAILED_WHEN)Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° proxy ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ AnsiblePostgres clusterMongo clusterΠ‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡβ5: ΠΠ°ΡΡΠΈΠ½Π³ ΠΈ Π°ΠΏΠ΄Π΅ΠΉΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansible (pre_tasks, post_tasks, include, serial ΠΈ ΠΌax_fail_percentage, Π±Π»ΠΎΠΊΠΈ, Π²ΡΠ±ΠΎΡ Ρ ΠΎΡΡΠΎΠ², Π»ΠΈΠΌΠΈΡΡ)ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΠ§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ rolling update ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ°ΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ Π°ΠΏΠ΄Π΅ΠΉΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉβ6: ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ (ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ, ΠΊΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ Π°Π½ΡΠΈΠ±Π»?)ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΡΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡGit hooks Ρ Ansible ΠΈ Π°Π²ΡΠΎΠ΄Π΅ΠΏΠ»ΠΎΠΉΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΎΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°Ρ ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π΄Π»Ρ ΠΌΡΠ»ΡΡΠΈΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)β7: ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ (ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ²)Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PrometheusΠ‘Π±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π‘Π±ΠΎΡ Π»ΠΎΠ³ΠΎΠ²ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π±ΠΈΠ·Π½Π΅Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³β8: ΠΠ°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Ansible Π² Π½ΠΈΡ (ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠΈΠ»ΡΡΡΡ, Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΌΠ°ΡΠΈΠ½)Π Π°Π±ΠΎΡΠ° Ρ Google cloud ΠΈ AWS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ AnsbileAnsible Vault ΠΈ ΡΡΠΎ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡBastion ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° AnsibleAnsible TowerΠΠ°ΠΊ Π»ΡΡΡΠ΅ ΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΡΠΊΠ΅ΡΡ Π² ΡΠ΅ΡΠΈ Π΄Π»Ρ enterprise ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ?β9: ΠΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² AnsibleΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΊΡΡΡΠΈΡ...
- Π’Π΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
- Π’Π΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π°ΠΏΠ΄Π΅ΠΉΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
- ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ².
Π ΡΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ DevOps Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ ΠΏΡΠΎΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ Ansible.
ΠΠ· Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ β ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ, Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ β ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅.
Π 2021 Ansible ΡΠΆΠ΅ ΡΡΠ°Π» ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ bash.
ΠΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΅ΡΡΡ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π° Π±Π΅Π· ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ Π΅ΡΡΡ ΡΡΡΠ°Ρ Β«ΡΠ΅ΠΉΡΠ°Ρ Ρ Π½Π°ΠΆΠΌΡ Π½Π° ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΈ Π²ΡΠ΅ Π»ΡΠΆΠ΅ΡΒ».
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ:ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ;Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡ Π°ΠΏΠ΄Π΅ΠΉΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ;Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΎΠ²Π§ΡΠΎ Π²Π°Ρ ΠΆΠ΄ΡΡ Π½Π° ΠΊΡΡΡΠ΅:
- ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠΌ.
- Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ Π²Π°Ρ ΡΠ΅ΠΌΠΏΠ΅.
- ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π° ΡΡΠ΅Π½Π΄Π°Ρ ΠΎΡ ΠΏΠ°ΡΡΠ½ΡΡΠ° Selectel.
- Π Π½Π°ΡΠ΅ΠΌ ΠΊΡΡΡΠ΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΌΠ΅ Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅.
- ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ ΠΈ ΠΏΠΎΠΌΠΎΡΡ ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΡΠ΅Π½Π΄Π°ΠΌΠΈ.
- ΠΠ»ΡΠ± ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ²
- ΠΡ Π΄ΠΎΠ°Π±Π²ΠΈΠΌ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏ
- ΠΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±ΡΡΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ.
- ΠΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ΄Ρ Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΈΠ²Π΅Ρ! Π―, ΠΡΠ΅Π²ΠΎΠ»ΠΎΠ΄ Π‘Π΅Π²ΠΎΡΡΡΡΠ½ΠΎΠ², Engineering manager Π² HelloFresh ΠΈ Π°Π²ΡΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΊΡΡΡΠ°.
Π― Π½Π΅ Π±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π±Π΅ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ Ansible, ΡΡΠΎΡ ΠΊΡΡΡ β Π½Π΅ ΡΡΡ Π°Ρ ΡΠ΅ΠΎΡΠΈΡ. Π― ΠΏΠΎΠΊΠ°ΠΆΡ ΠΊΠ΅ΠΉΡΡ, ΡΠ°Π·Π±Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ. ΠΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ, ΠΊΠ°ΠΊ Ansible Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½ ΠΈ ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Ansible Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡΡΠΎΠ½Π΅ΠΌ ΠΎΠ±Π»Π°ΠΊΠ° Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠ° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΡΡΠΈ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΅ΡΡΡ ΠΊΡΠΎΠΌΠ΅ Ansible.
ΠΠΎΡ ΡΠ΅Π»Ρ β Π½Π°ΡΡΠΈΡΡ ΠΌΡΡΠ»ΠΈΡΡ ΠΊΠ°ΠΊ Ansible, Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ Ansible, Π±ΡΡΡ ΠΊΠ°ΠΊ Ansible, Ρ ΠΎΡΡ Π½Π΅Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ
ΠΠ°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ΅Π½Π΄Ρ Ρ ΡΡΠ°ΡΠ°Π»ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΈΠ· ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ΅ΠΉΡΠΎΠ², ΡΡΠΎ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ β ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΡΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΠΊΡΡΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
β1: ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Ρ (ΡΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°Π»Π»)ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½ (ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ?)Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ?Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ AnsibleΠ’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ AnsibleΠ£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Ansibleβ2: ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ LEMP ΡΡΠ΅ΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansible (playbook, ansible.cfg, hosts, templates)ΠΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΎΠ»ΡΠΠΈΡΠ΅ΠΌ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡAnsible galaxyΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ΅ΠΏΠ»ΠΎΠΉ Symphony ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° PHP Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansibleβ3: Python stack (modules, handlers)Raw ΠΌΠΎΠ΄ΡΠ»ΡΠ£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ uWSGI Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΈΠ»ΠΈ Gunicorn?)Π‘Π°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ssl ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ (Let's encrypt )ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ΅ΠΏΠ»ΠΎΠΉ Flask ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansibleβ4: ΠΠ΅ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (roles, jinja2, ΡΠ΅Π΅ΡΡΡΡ, Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΎΡΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, postgresql_db, postgresql_user, mongodb, script ΠΌΠΎΠ΄ΡΠ»ΠΈ, CHANGED _ WHEN, FAILED_WHEN)Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° proxy ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ AnsiblePostgres clusterMongo clusterΠ‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Docker ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡβ5: ΠΠ°ΡΡΠΈΠ½Π³ ΠΈ Π°ΠΏΠ΄Π΅ΠΉΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ansible (pre_tasks, post_tasks, include, serial ΠΈ ΠΌax_fail_percentage, Π±Π»ΠΎΠΊΠΈ, Π²ΡΠ±ΠΎΡ Ρ ΠΎΡΡΠΎΠ², Π»ΠΈΠΌΠΈΡΡ)ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡΠ§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ rolling update ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½Π°ΠΊΠ°ΡΡΠ²Π°ΡΡΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ°ΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ Π°ΠΏΠ΄Π΅ΠΉΡ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉβ6: ΠΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΈΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ (ΠΊΠΎΠ»Π»Π±Π΅ΠΊΠΈ, ΠΊΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ Π°Π½ΡΠΈΠ±Π»?)ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΡΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡGit hooks Ρ Ansible ΠΈ Π°Π²ΡΠΎΠ΄Π΅ΠΏΠ»ΠΎΠΉΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΎΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π°Ρ ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π΄Π»Ρ ΠΌΡΠ»ΡΡΠΈΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)β7: ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ (ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ²)Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PrometheusΠ‘Π±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π‘Π±ΠΎΡ Π»ΠΎΠ³ΠΎΠ²ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ Π±ΠΈΠ·Π½Π΅Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³β8: ΠΠ°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Ansible Π² Π½ΠΈΡ (ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠΈΠ»ΡΡΡΡ, Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π»Π°ΠΊΠ°ΠΌΠΈ Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΡ ΠΌΠ°ΡΠΈΠ½)Π Π°Π±ΠΎΡΠ° Ρ Google cloud ΠΈ AWS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ AnsbileAnsible Vault ΠΈ ΡΡΠΎ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡBastion ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° AnsibleAnsible TowerΠΠ°ΠΊ Π»ΡΡΡΠ΅ ΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΡΠΊΠ΅ΡΡ Π² ΡΠ΅ΡΠΈ Π΄Π»Ρ enterprise ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ?β9: ΠΠ±Π·ΠΎΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ² AnsibleΠΠ°ΠΆΠΌΠΈΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΊΡΡΡΠΈΡ...
favorite
0
star
0
