ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ. Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π²Π΅Π΄ΡΡΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ Π² ΠΠ ΠΈ ΠΎΡΠ²Π΅ΡΠ°Ρ Π·Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΡΠ°Π»Π°. Π₯ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΡΡΡΡΠΎΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π±ΠΎΡΠΎΠΌ.
ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΡΠ°Π½ΡΠ»ΠΈΡΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎ Π·Π°ΠΌΠ΅Π½Π΅ Π΄ΠΈΡΠΊΠΎΠ²
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡ
ΠΠ β ΡΡΠΎ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ Π»ΡΠ΄Π΅ΠΉ. ΠΠ³ΠΎ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠΊΠΎΠ»ΠΎ 7 ΡΡΡ. ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² 4 ΡΠ°Π·Π½ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ . Π ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΡΡΠΎΠΈΡ Π±ΠΎΠ»Π΅Π΅ 70 ΡΡΡ. Π΄ΠΈΡΠΊΠΎΠ². ΠΡΠ»ΠΈ ΡΠ»ΠΎΠΆΠΈΡΡ ΠΈΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π±Π°ΡΠ½Ρ Π²ΡΡΠΎΡΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ 1 ΠΊΠΌ.
ΠΡΡΡΠΊΠΈΠ΅ Π΄ΠΈΡΠΊΠΈ β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΡΠΈ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠ°Ρ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 30 Π΄ΠΈΡΠΊΠΎΠ² Π² Π½Π΅Π΄Π΅Π»Ρ, ΠΈ ΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΡΠ°Π»Π° Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ½ΠΎΠΉ ΡΡΡΠΈΠ½ΠΎΠΉ.
ΠΠ½ΡΠΈΠ΄Π΅Π½ΡΡ
Π£ Π½Π°Ρ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Π²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ ΠΌΡ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ Π² Jira, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ°Π΅ΠΌ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ. ΠΡΠ»ΠΈ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ Π±ΡΠ» Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎ ΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈ Π΄ΡΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΡΠ΅ΠΊΡ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ° ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΠΈΡ Zabbix. ΠΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Syslog Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ/ΡΡΠ΅Π½ΠΈΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ HW/SW-ΡΠ΅ΠΉΠ΄ΠΎΠ², ΡΠ»Π΅Π΄ΠΈΠΌ Π·Π° SMART, Π΄Π»Ρ SSD Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ ΠΈΠ·Π½ΠΎΡ.
ΠΠ°ΠΊ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π΄ΠΈΡΠΊΠΈ ΡΠ°Π½ΡΡΠ΅
ΠΠΎΠ³Π΄Π° Π² Zabbix Π·Π°Π³ΠΎΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠΈΠ³Π³Π΅Ρ, Π² Jira ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π²ΠΈΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ
. ΠΡ ΡΠ°ΠΊ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ HW-ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅.
ΠΠ½ΠΆΠ΅Π½Π΅Ρ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ° β ΡΡΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ, ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΠ°ΠΆ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠΎΠ»ΡΡΠΈΠ² ΡΠΈΠΊΠ΅Ρ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΡΠΈΡΡΡΠΏΠ°Π΅Ρ ΠΊ ΡΠ°Π±ΠΎΡΠ΅. Π Π΄ΠΈΡΠΊΠΎΠ²ΡΡ
ΠΏΠΎΠ»ΠΊΠ°Ρ
ΠΎΠ½ ΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΠΈΡΠΊΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ Π΅ΡΠ»ΠΈ Ρ Π½Π΅Π³ΠΎ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π΄Π΅ΠΆΡΡΠ½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ Π·Π° ΠΏΠΎΠΌΠΎΡΡΡ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΈΡΠΊ ΠΈΠ· ΡΠΎΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΊ.
ΠΠ΅ΠΆΡΡΠ½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΡΠΌΠ΅Π½Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°Π»Π°. ΠΠ½ ΡΠ°ΡΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ΅ΠΌΠΎΠ½ΡΠΎΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΠ½ ΡΠΎΠ»ΡΠΊΠΎ ΠΆΡΡΡΠΊΠΈΠΌΠΈ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ.
Π Π°Π½ΡΡΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ² ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ Π² ΡΠ°ΡΠ΅. ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠ»Π°Π»ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° Jira-ΡΠΈΠΊΠ΅ΡΡ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ» ΠΏΠΎ Π½ΠΈΠΌ, Π²ΡΠ» Π»ΠΎΠ³ ΡΠ°Π±ΠΎΡ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ Π±Π»ΠΎΠΊΠ½ΠΎΡΠ΅. ΠΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π·Π°Π΄Π°Ρ ΡΠ°ΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½Ρ: ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ°ΠΌ Π½Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π±ΡΡΡΡΠΎ ΡΠ΅ΡΡΠ΅ΡΡΡ. ΠΠ° ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΌΠΎΠ³ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ, Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΡΡΠΎΡΠ» Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΠΏΠ°ΡΠΊΠΎΠΉ Π΄ΠΈΡΠΊΠΎΠ² ΠΈ ΠΆΠ΄Π°Π».
ΠΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠ»ΠΎΡ ΠΎΠ΅ Π±ΡΠ»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°ΡΡΠΈΠ½Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ: ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ, Π³Π΄Π΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ Π²ΡΠ΅ HW-ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ ΠΎΡΠ΄Π°ΡΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°ΠΌ. ΠΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ Π½Π° Π΄ΡΡΠ±ΠΎΡΠ΄Π΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°. ΠΠΎ ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π»ΡΡ Π»ΠΈΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ· Π½ΠΈΡ .
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π½Π΅ ΠΌΠΎΠ³ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠΌ.
ΠΠΎΠ²Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΌΠ΅Π½Ρ
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΡΡΠΎ Π²ΡΠ½Π΅ΡΠ»ΠΈ Π²ΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ Β«HW-Π΄ΠΈΡΠΊΒ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΠ»Ρ Β«ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Β», Β«ΡΠ°Π·ΠΌΠ΅ΡΒ» ΠΈ Β«ΡΠΈΠΏ Π΄ΠΈΡΠΊΠ°Β», ΡΡΠΎΠ±Ρ ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ»Π°ΡΡ Π² ΡΠΈΠΊΠ΅ΡΠ΅, ΠΈ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π΅ΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°ΡΠ΅.
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ° Π±ΡΠ΄Π΅ΠΌ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π΄ΠΈΡΠΊ. ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ±ΠΎΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ Β«ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΒ». Π’ΡΠ΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΆΡΡΠ½ΡΠΉ ΡΠΈΡΠ°Π΄ΠΌΠΈΠ½. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ΄ΠΈΡ, ΠΊΡΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ ΠΈ ΠΈΡΠΊΠ°ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π½Π° Π΄ΡΡΠ±ΠΎΡΠ΄ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΠΈΠΊΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡ.
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π²ΡΠ³ΠΎΠ΄Ρ ΠΎΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΈΠ»ΡΡΡΡ ΠΈ Π΄ΡΡΠ±ΠΎΡΠ΄Ρ, ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ Π½ΠΈΡ
ΡΠ΅Π±ΡΡΠ°ΠΌ. ΠΠΎΠ³Π΄Π° Π»ΡΠ΄ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΈΡΡΠ°Π½ΡΠΈΡΡΡΡΡΡ ΠΎΡ Π½ΠΈΡ
, ΠΊΠ°ΠΊ ΠΎΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ. ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠΉΠΊΠΈ, Π³Π΄Π΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΈΠΏ Π΄ΠΈΡΠΊΠ°. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½ΡΠΆΠ½ΠΎ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π·Π° Π³ΡΡΠΏΠΏΠ° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡ ΠΏΡΠΈ Π·Π°ΠΌΠ΅Π½Π΅ Π΄ΠΈΡΠΊΠ°.
ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡ Π½Π°Ρ ΡΡΠΎ Π½Π΅ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.
Π Π°Π½ΡΡΠ΅ ΠΎΠ½ Π±ΡΠ» ΡΠ°ΠΊΠΈΠΌ:
Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΡΠ°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°.
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ, β Π²Π²Π΅Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΡΠ°ΡΡΡ Investigate. Π ΡΡΠΎΠΌ ΡΡΠ°ΡΡΡΠ΅ ΡΠΈΠΊΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π΅ΡΡ Π½Π΅ ΡΠ΅ΡΠΈΠ», Π½ΡΠΆΠ΅Π½ Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π§Π΅ΡΠ΅Π· ΡΡΠΎΡ ΡΡΠ°ΡΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΈΠΊΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΈΠΌ ΡΡΠ°ΡΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΈΠΊΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½Π° Π΄ΠΈΡΠΊΠ°, Π½ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π½Π° ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Π½Π΅Ρ. Π’Π°ΠΊΠΎΠ΅ Π±ΡΠ²Π°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ CDN ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ Ready. Π Π½Π΅Π³ΠΎ ΡΠΈΠΊΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠ°. Π’ΠΎ Π΅ΡΡΡ Π²ΡΡ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ, Π½ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ HW/SW RAID. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ»ΠΈ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Π΅ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΡΡ Π΅ΠΌΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ.
ΠΠ· ΡΡΠ°ΡΡΡΠ° Open ΡΠΈΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΡΠ°ΠΊ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ. Π ΡΡΠ°ΡΡΡΠ΅ In progress Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΠΈΡΠΊ ΠΈΠ· ΡΠΎΡΠ°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΌΠΎΠ³ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°ΡΠΈΡΡ: Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΡ, ΠΎΡΠΌΠΎΠ½ΡΠΈΡΡΠ΅Ρ Π΄ΠΈΡΠΊ, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ ΡΠΈΠΊΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² Ready to change: ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, ΡΡΠΎ Π΄ΠΈΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°ΡΠΊΠΈΠ²Π°ΡΡ. ΠΡΠ΅ ΠΏΠΎΠ»Ρ Π² Jira ΡΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ Π΄ΠΈΡΠΊΠ°. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°ΡΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠ° ΡΠΈΠΊΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠ°ΡΡΡ Changed. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡΠ°Π²ΠΈΠ»ΠΈ Π½ΡΠΆΠ½ΡΠΉ Π΄ΠΈΡΠΊ, Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π’Π°ΠΊΠΆΠ΅ ΡΠΈΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² ΡΡΠ°ΡΡΡ Ready, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ Π·Π°Π²ΠΎΠ΄ΠΈΠ» Π΄ΠΈΡΠΊ Π² ΡΠΎΡΠ°ΡΠΈΡ. ΠΠΎΠ»Π½Π°Ρ ΡΡ Π΅ΠΌΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΠ»ΠΎ Π½Π°ΠΌ ΠΆΠΈΠ·Π½Ρ. Π Π΅Π±ΡΡΠ° ΡΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΡΡΠ°Π»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΡΡΠ°Π»ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡ
Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ.
ΠΡΠΏΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΠ°ΡΠ°Ρ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ Β«Π·Π΄Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π±ΡΡΡΡΠ΅Π΅Β», ΠΈΠ»ΠΈ Β«ΡΠΆΠ΅ Π²Π΅ΡΠ΅Ρ, ΡΡΠΏΠ΅Π΅ΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ?Β». ΠΠΎ ΠΌΡ ΡΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π΅ΠΌΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² ΡΠ°ΡΠ°Ρ ΠΏΠΎ ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ.
ΠΠΈΡΠΊΠΈ ΡΡΠ°Π»ΠΈ ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠΊΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΡΠΈΡΠ΅Π» Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΡΡΡ ΠΏΠΎΡΠ°Π½ΡΡΠ΅, Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΈ Π΅ΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΡΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΊ Π·Π°ΠΌΠ΅Π½Π΅: ΠΏΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»Ρ, Π²ΡΠ²Π΅ΡΡΠΈ Π΄ΠΈΡΠΊΠΈ ΠΈΠ· ΡΠΎΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π°Π΄Π°ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ. ΠΠ½ΠΆΠ΅Π½Π΅Ρ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡ, Π²ΠΈΠ΄ΠΈΡ Π·Π°Π΄Π°ΡΡ, Π±Π΅ΡΡΡ ΡΠΎ ΡΠΊΠ»Π°Π΄Π° Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΡΠ°Π·Ρ ΠΌΠ΅Π½ΡΠ΅Ρ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π°ΡΡ.
ΠΡΠ½Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Workflow
- ΠΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΌΠ΅Π½ΡΠ΅Ρ Π΄ΠΈΡΠΊΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°Π»ΠΈ, ΡΡΠΎ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ MD RAID ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ, Ρ ΠΎΡΡ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΠ· Π½ΠΈΡ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π΄ΡΡΠΈΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΡΠΎ Π΄Π΅Π»Π°Π»ΠΈ, Π½ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½. - ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ.
Π§Π΅Π»ΠΎΠ²Π΅ΠΊΡ ΡΡΠΆΠ΅Π»ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π³ΠΎΠ². Π‘Π°ΠΌΡΠ΅ Π³Π»Π°Π²Π½ΡΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΡ Π² Jira Π½ΡΠΆΠ½ΠΎ Π²ΡΠ½ΠΎΡΠΈΡΡ Π½Π° Π³Π»Π°Π²Π½ΡΠΉ ΡΠΊΡΠ°Π½. ΠΠΎΠΆΠ½ΠΎ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, In progress ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Ready to change. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΡΡΠ°ΡΡ Π² Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ·ΠΎΠ»ΠΈΠ»ΠΈ Π³Π»Π°Π·Π°. ΠΠΎ Π»ΡΡΡΠ΅ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ Π»ΡΠ΄Π΅ΠΉ, Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄.
Π Π°Π·ΡΡΡΠ½ΡΠΉΡΠ΅ ΡΠ΅Π½Π½ΠΎΡΡΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ. ΠΠΎΠ³Π΄Π° Π»ΡΠ΄ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΠ»Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Π½Π΅ ΠΏΡΠΎΠΊΠ»ΠΈΠΊΠΈΠ²Π°Π»ΠΈ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π° ΡΠ»ΠΈ ΠΏΠΎ Π½Π΅ΠΌΡ. ΠΠΎΡΠΎΠΌ ΠΌΡ ΡΡΡΠΎΠΈΠ»ΠΈ Π½Π° ΡΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. - ΠΠ΄Π°ΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
Π£ Π½Π°Ρ ΡΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠ΅ΡΡΡΠ° Π½Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, Π²ΡΡΡΠ΅ΡΠΈ ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ. Π Π½Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ β Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΡ ΠΌΠ΅ΡΡΡΠ΅Π². Π― Π²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΏΠΎΡΠΈΡ ΠΎΠ½ΡΠΊΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ° ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ°ΠΏΠ°Ρ Π±ΡΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π³Π°ΡΠΈΠ²Π°. ΠΠΎ ΠΎΠ½ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Π» ΠΎΡ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π΅Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ΄ΠΈΠ½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π½Π΅ Jira, Π° Jira-ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Π² Confluence, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ Π±ΡΠ»ΠΈ Π΅ΠΌΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ. ΠΠΎΠΊΠ°Π·Π°Π»ΠΈ Π΅ΠΌΡ Jira, Ρ Π°Π΄ΠΌΠΈΠ½Π° Π²ΡΡΠΎΡΠ»Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΠΏΠΎ ΠΎΠ±ΡΠΈΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ, ΠΈ ΠΏΠΎ Π·Π°ΠΌΠ΅Π½Π°ΠΌ Π΄ΠΈΡΠΊΠΎΠ².
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠΎΠ²
Π Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠΎΠ² ΠΌΡ ΠΏΠΎΠ΄ΡΡΡΠΏΠ°Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. Π£ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΊΡΠΈΠΏΡΡ, Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π»ΠΈΠ±ΠΎ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Π² ΡΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°. Π ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΡ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· Π΅Ρ Π½Π°ΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΌΠ΅Π½Ρ Ρ Π½Π°Ρ ΡΠ°Π·Π±ΠΈΡ Π½Π° ΡΡΠ°ΠΏΡ, Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ, Π° Π½Π΅ ΡΡΠ°Π·Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°ΠΏ β Ready (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ RAID/Π΄Π°Π½Π½ΡΡ ) ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΡΡ. ΠΠΎΠ³Π΄Π° Π±ΠΎΡ ΡΡΡΡ ΠΎΠ±ΡΡΠΈΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΅ΠΌΡ Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ β Π²Π²ΠΎΠ΄ Π΄ΠΈΡΠΊΠ° Π² ΡΠΎΡΠ°ΡΠΈΡ ΠΈΡΠ΄.
ΠΠΎΠΎΠΏΠ°ΡΠΊ ΡΠ΅ΡΠ°ΠΏΠΎΠ²
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎ Π±ΠΎΡΠ°, ΡΠΎΠ²Π΅ΡΡΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΡΠΊΡΡΡ Π² Π½Π°Ρ Π·ΠΎΠΎΠΏΠ°ΡΠΊ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΉ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΠ½ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π½Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΆΠ΅Π»Π΅Π·Π°. Π£ Π½Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ 20 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ RAID, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ LSI ΠΈ Adaptec, Π½ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ HP, ΠΈ DELL ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ RAID-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΡΠΈΠ»ΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ Π²ΡΠ΄Π°ΡΠ° ΠΏΠΎ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ ΠΊ Π²Π΅ΡΡΠΈΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ RAID-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. Π’Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ HW-RAID, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ mdraid.
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π±Π΅Π· Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΈ ΡΠΎΡΡΠΎΠ²ΡΠ΅ RAID, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌ Π½Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ², Π° Π½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ legacy-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
ΠΠ΄Π΅-ΡΠΎ Π΄ΠΈΡΠΊΠΈ Π² RAID-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°Ρ ΠΏΡΠΎΠΊΠΈΠ΄ΡΠ²Π°ΡΡΡΡ raw ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π³Π΄Π΅-ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ JBOD. ΠΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π΄ΠΈΡΠΊΠΎΠΌ Π² ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ, ΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠ°ΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΠ‘ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ΅Ρ ΠΆΠ΅ Π²Π΅ΡΡΠΈΠΉ, ΠΏΠΎΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΡΡΠΏΠΏ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π³Π΄Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ, Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°ΠΌΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ .
Π ΠΎΠ±ΡΠ΅ΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ Π½Π°Ρ Π±ΠΎΠ»Π΅Π΅ 400 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π³ΡΡΠΏΠΏ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 100 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΡΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π±ΡΠ» ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΡΠΎΡΡΡΠΌ DSL, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠΎΠ³ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ, ΠΊΡΠΎ ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π».
ΠΡ Π²ΡΠ±ΡΠ°Π»ΠΈ Ansible, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ agentless: Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, Π±ΡΡΡΡΡΠΉ ΡΡΠ°ΡΡ. Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΡΡ ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ°
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΡΡ ΡΡ Π΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°. Zabbix Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄ΠΈΡΠΊ sdb Π²ΡΡΠ΅Π» ΠΈΠ· ΡΡΡΠΎΡ, Π·Π°Π³ΠΎΡΠ°Π΅ΡΡΡ ΡΡΠΈΠ³Π³Π΅Ρ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΈΠΊΠ΅Ρ Π² Jira. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» Π΅Π³ΠΎ, ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π΄ΡΠ±Π»ΠΈΠΊΠ°Ρ ΠΈ Π½Π΅ false positive, ΡΠΎ Π΅ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΡΠΊ, ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠΊΠ΅Ρ Π² In progress.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DiskoBot, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° Python, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Jira Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½ΠΎΠ²ΡΡ
ΡΠΈΠΊΠ΅ΡΠΎΠ². ΠΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ΅Ρ In progress, ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ thread, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ playbook Π² Ansible (ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡΠ° Π² Jira). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Prepare2change.
Ansible ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π° Ρ ΠΎΡΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π΄ΠΈΡΠΊ ΠΈΠ· ΡΠΎΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ΅ΠΏΠΎΡΡΠΈΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Callbacks.
ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π±ΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠΊΠ΅Ρ Π² Ready to change. ΠΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΡΠΊ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠΊΠ΅Ρ Π² Changed.
ΠΠΎ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡ
Π΅ΠΌΠ΅ ΡΠΈΠΊΠ΅Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ Π±ΠΎΡΡ, ΡΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ playbook, ΠΈΠ΄Π΅Ρ Π½Π° Ρ
ΠΎΡΡ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ Π΄ΠΈΡΠΊ Π² ΡΠΎΡΠ°ΡΠΈΡ. ΠΠΎΡ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΡΠΈΠΊΠ΅Ρ. Π£ΡΠ°!
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
ΡΠΈΡΡΠ΅ΠΌΡ.
Diskobot
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° Python. ΠΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠΈΠΊΠ΅ΡΡ ΠΈΠ· Jira Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ JQL. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ°ΡΡΡΠ° ΡΠΈΠΊΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ°ΡΡΡΡ Ansible playbook.
JQL ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΠΎΠΏΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
jira_states:
investigate:
jql: 'β¦ status = Open and "Disk Size" is EMPTY'
interval: 180
inprogress:
jql: 'β¦ and "Disk Size" is not EMPTY and "Device Name" is not EMPTY'
ready:
jql: 'β¦ and (labels not in ("dbot_ignore") or labels is EMPTY)'
interval: 7200
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π΄ΠΈ ΡΠΈΠΊΠ΅ΡΠΎΠ² Π² ΡΡΠ°ΡΡΡΠ΅ In progress, Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ ΠΏΠΎΠ»Ρ Disk size ΠΈ Device name. Device name β ΡΡΠΎ ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ playbookβΠ°. Disk size Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π·Π½Π°Π» ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄ΠΈΡΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ.
Π ΡΡΠ΅Π΄ΠΈ ΡΠΈΠΊΠ΅ΡΠΎΠ² ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ Ready ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΡΠΈΠΊΠ΅ΡΡ Ρ Π»Π΅ΠΉΠ±Π»ΠΎΠΌ dbot_ignore. Π ΡΠ»ΠΎΠ²Ρ, Jira Π»Π΅ΠΉΠ±Π»Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² ΡΠΈΠΊΠ΅ΡΠΎΠ², ΠΈ ΡΠ±ΠΎΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ playbookβΠ° Jira ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π»Π΅ΠΉΠ±Π» dbot_failed, ΡΡΠΎΠ±Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Ansible
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ Ansible ΡΠ΅ΡΠ΅Π·
Π’Π°ΠΊΠΆΠ΅ Π² Ansible ΡΠ΅ΡΠ΅Π· *extra_vars* ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΡΠ°ΡΡΡ ΡΠΈΠΊΠ΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ callback_url, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΡΠΈΡ issue key β ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ callback Π² HTTP.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ inventory, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠ° ΠΈ Π³ΡΡΠΏΠΏΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΡΠΎΡ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ group_vars.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ HTTP callback.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ playbookβΠΎΠ² ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ callaback(-ΠΎΠ²). ΠΠ½ΠΈ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ²:
Ansible callback plugin , ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ playbookβΠ°. Π’Π°ΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Ρ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ ΡΠ΄Π°ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ. ΠΡΠΎΡ callback Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ playbookβΠ°.- HTTP callback Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ playbookβΠ°. Π Ansible ΡΠ°ΡΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ POST/GET Π·Π°ΠΏΡΠΎc Π² ΡΡΡΠΎΠ½Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π§Π΅ΡΠ΅Π· HTTP callback(-ΠΈ) ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ playbookβΠ° ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Ρ . ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Π² sqlite.
Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΡΠ΅Π· HTTP callback ΠΌΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠ°ΡΡΡ ΡΠΈΠΊΠ΅ΡΠ°.
HTTP callback
# Make callback to Diskobot App
# Variables:
# callback_post_body: # A dict with follow keys. All keys are optional
# msg: If exist it would be posted to Jira as comment
# data: If exist it would be saved in Incident.variables
# desire_state: Set desire_state for incident
# status: If exist Proceed issue to that status
- name: Callback to Diskobot app (jira comment/status)
uri:
url: "{{ callback_url }}/{{ devname }}"
user: "{{ diskobot_user }}"
password: "{{ diskobot_pass }}"
force_basic_auth: True
method: POST
body: "{{ callback_post_body | to_json }}"
body_format: json
delegate_to: 127.0.0.1
ΠΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΡΠ°ΡΠΊΠΈ, ΠΌΡ Π²ΡΠ½Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ common file ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π² playbookβΠ°Ρ . ΠΠ΄Π΅ΡΡ ΡΠΈΠ³ΡΡΠΈΡΡΠ΅Ρ callback_ url, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΡΠΈΡΡ issue key ΠΈ host name. ΠΠΎΠ³Π΄Π° Ansible Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠΎΡ POST-Π·Π°ΠΏΡΠΎΡ, Π±ΠΎΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈΡΠ΅Π» Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°.
Π Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· playbookβΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π΄ΠΈΡΠΊ ΠΈΠ· MD-ΡΡΡΡΠΎΠΉΡΡΠ²Π°:
# Save mdadm configuration
- include: common/callback.yml
vars:
callback_post_body:
status: 'Ready to change'
msg: "Removed disk from mdraid {{ mdadm_remove_disk.msg | comment_jira }}"
data:
mdadm_data: "{{ mdadm_remove_disk.removed }}"
parted_info: "{{ parted_info | default() }}"
when:
- mdadm_remove_disk | changed
- mdadm_remove_disk.removed
ΠΠ°Π½Π½ΡΠΉ ΡΠ°ΡΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Jira ΡΠΈΠΊΠ΅Ρ Π² ΡΡΠ°ΡΡΡ Β«Ready to changeΒ» ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ mdam_data ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ md-ΡΡΡΡΠΎΠΉΡΡΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ Π΄ΠΈΡΠΊ, Π° Π² parted_info β Π΄Π°ΠΌΠΏ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ ΠΎΡ parted.
ΠΠΎΠ³Π΄Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Π²ΡΡΠ°Π²ΠΈΡ Π½ΠΎΠ²ΡΠΉ Π΄ΠΈΡΠΊ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°ΠΌΠΏ ΠΏΠ°ΡΡΠΈΡΠΈΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠΈ Π΄ΠΈΡΠΊ Π² ΡΠ΅ md-ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½.
Ansible check mode
ΠΠΊΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠΊΡ Π±ΡΠ»ΠΎ ΡΡΡΠ°ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²ΡΠ΅ playbookβΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅
Π’Π°ΠΊΠΎΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΠΎΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ callback-ΠΌΠΎΠ΄ΡΠ»Ρ, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ playbookβΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π² Jira Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΠΎΡΠ° ΠΈ playbookβΠΎΠ². ΠΠΎ-Π²ΡΠΎΡΡΡ
, ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΊ Π±ΠΎΡΡ.
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ansible Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ dry run, ΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π² Jira ΠΊΠ½ΠΎΠΏΠΊΡ Run Diskobot Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΎΠ³ΠΎ ΠΆΠ΅ playbookβΠ° Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌ Ρ ΠΎΡΡΠ΅, Π½ΠΎ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° playbookβΠ° Π² ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ ΡΠ±ΠΎΡ.
Π‘ΡΡΡΠΊΡΡΡΠ° Playbooks
Π― ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π», ΡΡΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ°ΡΡΡΠ° Jira-ΡΠΈΠΊΠ΅ΡΠ°, Π±ΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°Π·Π½ΡΠ΅ playbookβΠΈ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΠ°ΠΊ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Ρ
ΠΎΠ΄.
ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΡΠΈ Π·Π°ΠΌΠ΅Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π΄Π°ΡΡ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ssh, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π½Π΅Π³ΠΎ Π½Π°ΠΊΠ°ΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π΄Π΅Π»Π°Π»ΠΈ Π²ΡΡ ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ»Π΅ΠΉΠ±ΡΠΊΠ΅, ΡΠΎ Ansible Π½Π΅ ΡΠΌΠΎΠ³ Π±Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·-Π·Π° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Ρ ΠΎΡΡΠ°.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Ansible-ΡΠΎΠ»ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠ΄Π΅ΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ playbook(-ΠΈ) Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ .
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π³Π΄Π΅ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ. Π main.yml, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Ρ
ΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ Ansible-ΡΠΎΠ»ΠΈ, Ρ Π½Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎ include ΠΏΠΎ ΡΡΠ°ΡΡΡΡ ΡΠΈΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΡΠ°ΡΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°.
Investigation.yml
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠΊΠ΅ΡΠΎΠ² Π² ΡΡΠ°ΡΡΡΠ΅ Investigation ΠΈ Open. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ playbookβΠ° β ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ½Π°.
ΠΠ»Ρ Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Jira summary, ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Zabbix-ΡΡΠΈΠ³Π³Π΅ΡΠ°. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΠΏΠΎΠ²Π΅Π·Π»ΠΎ. Π ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ mount point, β ΡΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΉΡΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΡΠΎΠΏΠ°ΡΡΠΈΡΡ ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ Π΄ΠΈΡΠΊ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΈΠ³Π³Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ scsi-Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΡΠ΅ΠΏΠΎΠΊ Π½Π΅Ρ, ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΡΡΠ½ΠΈΠ² ΠΈΠΌΡ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π΄ΠΈΡΠΊΠ° Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π² Jira. Π’Π°ΠΊΠΆΠ΅ ΡΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅Π½Π΄ΠΎΡΠ΅, ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅, ID, SMART, ΠΈ Π²ΡΡ ΡΡΠΎ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π² Jira-ΡΠΈΠΊΠ΅ΡΠ΅. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅. π
prepare2change.yml
ΠΡΠ²ΠΎΠ΄ Π΄ΠΈΡΠΊΠ° ΠΈΠ· ΡΠΎΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ Π·Π°ΠΌΠ΅Π½Π΅. CΠ°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ°ΠΏ. ΠΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ. ΠΠ»ΠΈ Π²ΡΡΠ°ΡΠΈΡΡ Π΄ΠΈΡΠΊ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠΊΠ°Π·Π°ΡΡ ΡΡΡΠ΅ΠΊΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅. ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΠΈ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π² ΡΠ°ΡΠ΅.
Π ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎΠ± ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π΄ΠΈΡΠΊΠ° ΠΈΠ· HW/MD RAID.
Π Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ (Π² Π½Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ), ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΉΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ API, ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π²ΡΠ²ΠΎΠ΄Π΅ Π΄ΠΈΡΠΊΠ°, Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
ΠΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠ°ΡΡΠΎΠ²ΠΎ ΠΌΠΈΠ³ΡΠΈΡΡΠ΅ΠΌ Π²
changed.yml
ΠΠΎΡΠ»Π΅ Π·Π°ΠΌΠ΅Π½Ρ Π΄ΠΈΡΠΊΠ° ΠΌΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ.
ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°Π²ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄ΠΈΡΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΡ Π½Π°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ SMART.
ΠΠ°ΠΊΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΡ ΡΠΌΠΎΡΡΠΈΠΌReallocated Sectors Count (5) < 100
Current Pending Sector Count (107) == 0
ΠΡΠ»ΠΈ Π΄ΠΈΡΠΊ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Π΅. ΠΡΠ»ΠΈ Π²ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ, Π½Π°Π½ΠΎΡΠΈΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΠΈ Π΄ΠΈΡΠΊ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΠ°ΡΠΈΡ.
ready.yml
CΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ HW/SW raid ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π°Π·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
API ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π― Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΡΡΠΎ Π±ΠΎΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ API ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ Ρ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ:
- Status. Π‘ΡΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΈΠ»ΠΈ Π΄ΠΈΡΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ Π½ΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ;
- Start/stop. ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ-Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π΄ΠΈΡΠΊΠ°;
- Migrate/restore. ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΌΠ΅Π½Ρ.
ΠΡΠ½Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΎΠΏΡΡ ΠΏΠΎ Ansible
Π― ΠΎΡΠ΅Π½Ρ Π»ΡΠ±Π»Ρ Ansible. ΠΠΎ ΡΠ°ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ opensource-ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ Π²ΠΈΠΆΡ, ΠΊΠ°ΠΊ Π»ΡΠ΄ΠΈ ΠΏΠΈΡΡΡ playbookβΠΈ, ΠΌΠ½Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎ. Π‘Π»ΠΎΠΆΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠ»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· when/loop, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ ΠΈ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·-Π·Π° ΡΠ°ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ shell/command.
ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΡΡ ΡΠΏΡΠΎΡΡΠΈΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ Ansible β ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ playbookβΠΈ, ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΈΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ, ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΡ-ΡΡΡΡ Π·Π½Π°Π΅Ρ Ansible.
- name: Blink disk
become: True
register: locate_action
disk_locate:
locate: '{{ locate }}'
devname: '{{ devname }}'
ids: '{{ locate_ids | default(pd_id) | default(omit) }}'
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² playbookβΠ°Ρ , ΠΌΡ Π²ΡΠ½ΠΎΡΠΈΠΌ Π΅Ρ Π² Ansible-ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡ. Π‘ΠΊΡΠΈΠΏΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΊΠ°ΠΊ Π½Π° Python, ΡΠ°ΠΊ ΠΈ Π½Π° Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΡ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±ΡΡΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ Π΄ΠΈΡΠΊΠ°, ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π²ΡΡΠ΅, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 265 ΡΡΡΠΎΠΊ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π°Π΄ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠΎΡΡΠΎΠ²ΡΠΌΠΈ RAID, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
Π‘Π°ΠΌΡΠ΅ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ Ansible β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ playbookβΠΈ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°ΡΠ½ΡΠ΅ yaml-ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, shell-ΠΊΠΎΠ΄Π° ΠΈ Π»ΡΠΏΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π½Π°Ρ ΠΎΠΏΡΡ Ρ Ansible API, ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ:
- Playbook_executor ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ playbookβΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ. ΠΡΡΡ ΡΠ°ΠΉΠΌΠ°ΡΡ Π½Π° ssh-ΡΠ΅ΡΡΠΈΠΈ, Π½ΠΎ Π½Π΅Ρ ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π½Π° playbook. ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΆΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, playbook Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ wrapper ΠΈ ΡΠ±ΠΈΠ²Π°ΡΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ.
- Ansible ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π±Π°Π·Π΅ fork-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ API Π½Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ. ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π²ΡΠ΅ Π½Π°ΡΠΈ playbookβΠΈ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎ.
Π ΠΈΡΠΎΠ³Π΅ Π½Π°ΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠΊΠΎΠ»ΠΎ 80 % Π΄ΠΈΡΠΊΠΎΠ². Π ΡΠ΅Π»ΠΎΠΌ ΡΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΌΠ΅Π½Ρ Π²ΡΡΠΎΡΠ»Π° Π² Π΄Π²Π° ΡΠ°Π·Π°. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π»ΠΈΡΡ ΡΠΌΠΎΡΡΠΈΡ Π½Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΡΠΊ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ.
ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΎΠ²ΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½Π΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡΡ Π΄ΠΈΡΠΊΠΈ. π
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com