ΠΠ·Π΄Π°Π΄Π΅ ΡΠ΅ Polemarch 2.1.0, ΡΠ΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Ansible. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python ΠΈ JavaScript, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΡΠ΅ΠΉΠΌΠΎΠ²Π΅ΡΠ΅ Django ΠΈ Celery. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· AGPLv3. ΠΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΏΠ°ΠΊΠ΅Ρ ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° 1 ΡΡΠ»ΡΠ³Π°. ΠΠ° ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° MySQL/PostgreSQL ΠΈ Redis/RabbitMQ+Redis (ΠΊΠ΅Ρ ΠΈ MQ Π±ΡΠΎΠΊΠ΅Ρ). ΠΠ° Π²ΡΡΠΊΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Docker ΠΎΠ±ΡΠ°Π·.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- Π‘ΡΠΊΡΠ°ΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ΅Π· ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΠΎΠ»ΡΠΌ ΠΎΠ±Π΅ΠΌ ΠΊΠΎΠ΄ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ ΡΠΏΠΈΡΡΡΠΈ.
- ΠΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ (Π·Π° git) ΠΈΠ»ΠΈ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ΡΠΎ (Π·Π° tar) Π½Π° ΠΊΠΎΠ΄ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ repo_sync_on_run Π²Π΅ΡΠ΅ ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΎΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊΠ°. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° ΠΎΠ½Π΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Polemarch ΠΊΠ°ΡΠΎ CI/CD ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π°ΡΡ ΠΈΠ²Π°, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΠΈ ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π Π°Π·ΠΌΠ΅ΡΡΡ ΡΠ΅ Π·Π°Π΄Π°Π²Π° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» Π² Π±Π°ΠΉΡΠΎΠ²Π΅ ΠΈ Π΄Π΅ΠΉΡΡΠ²Π° Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
- ΠΡΠ΅ΠΎΡΠΌΠΈΡΠ»Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΈ Π·Π°Π΄Π°Π΄Π΅Π½ repo_sync_on_run_timeout, ΠΊΡΠ΄Π΅ΡΠΎ Π·Π° git ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠ°ΠΉΠΌΠ°ΡΡΠΈΡΠ΅ Π½Π° git cli, Π° Π·Π° Π°ΡΡ ΠΈΠ²ΠΈ ΠΏΠΎΠΊΡΠΈΠ²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ° ΠΈ ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π·Π° Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ANSIBLE_CONFIG Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΈ ΡΠΎΠ²Π° Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ Π² ΠΊΠΎΡΠ΅Π½Π° Π½ΡΠΌΠ° ansible.cfg.
- ΠΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° ΠΌΠ°Π»ΠΊΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
