ΠΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΠΠ°ΠΊΠ°Π½ΡΠΈΡ: DevOps / Linux Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Ρ ΠΎΠΏΡΡΠΎΠΌ Ansible ΠΠ°Π΄Π°ΡΠ°: ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² (1 Π΄ΠΎΠΌΠ΅Π½ = 1 ΡΠ΅ΡΠ²Π΅Ρ). ΠΡΠΆΠ΅Π½ Ansible playbook, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π² 1 ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ. Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ: Π£Π²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Linux (Ubuntu/Debian); ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Ansible (ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ); ΠΠΏΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ nginx + PHP-FPM + SSL (Letβs Encrypt); Π£ΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ bash-ΡΠΊΡΠΈΠΏΡΡ; ΠΠΏΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ²/ΡΠ΅ΠΊΡΠ΅ΡΠΎΠ² (API-ΠΊΠ»ΡΡΠΈ, env-ΡΠ°ΠΉΠ»Ρ); ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ REST API (Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠΈΠΏΠ° IPQualityScore, MaxMind). Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ: ΠΠ°ΡΡΡΠΎΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ (VPS) ΠΏΠΎΠ΄ Π΄ΠΎΠΌΠ΅Π½: nginx, PHP, SSL. Π Π°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°: white.html (Π²Π°ΠΉΡ ΡΡΡΠ°Π½ΠΈΡΠ°), route.php (decision endpoint), js_challenge.html ΠΈ verify.php. ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ API (IPQualityScore, MaxMind). ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Keitaro (ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ). ΠΠ°ΡΡΡΠΎΠΈΡΡ Π»ΠΎΠ³ΠΈ ΠΈ Π±Π°Π·ΠΎΠ²ΡΡ Π·Π°ΡΠΈΡΡ (UFW, fail2ban). ΠΠ°ΠΏΠΈΡΠ°ΡΡ Ansible playbook, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°Π³ΠΈ. ΠΡ
ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: domain, api_keys, keitaro_url. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. ΠΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ: ΠΠΏΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Redis/MySQL (Π΄Π»Ρ ΠΊΡΡΠ°); ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Docker (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ). Π€ΠΎΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΡ: Π Π°Π·ΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ° (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ playbook) + Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°.