Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ систСмным администратором Π² ОК ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ Π·Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΡ€Ρ‚Π°Π»Π°. Π₯ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ выстроили процСсс автоматичСской Π·Π°ΠΌΠ΅Π½Ρ‹ дисков, Π° Π·Π°Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΈΠ· этого процСсса администратора ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π±ΠΎΡ‚ΠΎΠΌ.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ являСтся своСго Ρ€ΠΎΠ΄Π° транслитСрациСй выступлСния Π½Π° HighLoad+ 2018

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ процСсса ΠΏΠΎ Π·Π°ΠΌΠ΅Π½Π΅ дисков

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΡ„Ρ€

ОК β€” это гигантский сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ людСй. Π•Π³ΠΎ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 7 тыс. сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ располоТСны Π² 4 Ρ€Π°Π·Π½Ρ‹Ρ… Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ…. Π’ сСрвСрах стоит Π±ΠΎΠ»Π΅Π΅ 70 тыс. дисков. Если ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Ρ‚ΠΎ получится башня высотой Π±ΠΎΠ»Π΅Π΅ 1 ΠΊΠΌ.

ЖёсткиС диски β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ сСрвСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя Ρ‡Π°Ρ‰Π΅ всСго. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΌΠ°Ρ… Π½Π°ΠΌ приходится ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΊΠΎΠ»ΠΎ 30 дисков Π² нСдСлю, ΠΈ эта ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° стала Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ приятной Ρ€ΡƒΡ‚ΠΈΠ½ΠΎΠΉ.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

Π˜Π½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹

Π£ нас Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²Π²Π΅Π΄Π΅Π½ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ ΠΌΡ‹ фиксируСм Π² Jira, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ. Если ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ Π±Ρ‹Π» с эффСктом для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ собираСмся ΠΈ Π΄ΡƒΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ быстрСС Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π°ΠΊΠΈΡ… случаях, ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ эффСкт ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅.

НакопитСли Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π—Π° ΠΈΡ… состояниСм слСдит Zabbix. ΠœΡ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠΌ сообщСния Π² Syslog Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ошибок записи/чтСния, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ состояниС HW/SW-Ρ€Π΅ΠΉΠ΄ΠΎΠ², слСдим Π·Π° SMART, для SSD вычисляСм износ.

Как мСнялись диски Ρ€Π°Π½ΡŒΡˆΠ΅

Когда Π² Zabbix загораСтся ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€, Π² Jira создаётся ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ ΠΈ автоматичСски ставится Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ…. ΠœΡ‹ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Π΅ΠΌ со всСми HW-ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π°ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ физичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅.
Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π° β€” это Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ вопросы, связанныС с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° установку, обслуТиваниС, Π΄Π΅ΠΌΠΎΠ½Ρ‚Π°ΠΆ сСрвСров. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² Ρ‚ΠΈΠΊΠ΅Ρ‚, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ приступаСт ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. Π’ дисковых ΠΏΠΎΠ»ΠΊΠ°Ρ… ΠΎΠ½ мСняСт диски ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Но Ссли Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ доступа ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ устройству, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ обращаСтся ΠΊ Π΄Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΌ систСмным администраторам Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ вывСсти диск ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π½Π° сСрвСрС, ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ прилоТСния, ΠΎΡ‚ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ диск.

Π”Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΉ систСмный администратор Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ смСны ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ всСго ΠΏΠΎΡ€Ρ‚Π°Π»Π°. Он расслСдуСт ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹, занимаСтся Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΎΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСбольшиС Π·Π°Π΄Π°Ρ‡ΠΈ. НС занимаСтся ΠΎΠ½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Тёсткими дисками.

РаньшС ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² ΠΎΠ±Ρ‰Π°Π»ΠΈΡΡŒ с систСмным администратором Π² Ρ‡Π°Ρ‚Π΅. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ слали ссылки Π½Π° Jira-Ρ‚ΠΈΠΊΠ΅Ρ‚Ρ‹, администратор ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ» ΠΏΠΎ Π½ΠΈΠΌ, Π²Ρ‘Π» Π»ΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅. Но для Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡ Ρ‡Π°Ρ‚Ρ‹ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹: информация Ρ‚Π°ΠΌ Π½Π΅ структурирована ΠΈ быстро тСряСтся. Π”Π° ΠΈ администратор ΠΌΠΎΠ³ просто ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° запросы, Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ стоял Ρƒ сСрвСра с ΠΏΠ°Ρ‡ΠΊΠΎΠΉ дисков ΠΈ ΠΆΠ΄Π°Π».

Но самоС ΠΏΠ»ΠΎΡ…ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ администраторы Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ: ΠΊΠ°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ дисковыС ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹, Π³Π΄Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ всС HW-ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ ΠΎΡ‚Π΄Π°Ρ‘ΠΌ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ. Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ всС ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ Π½Π° Π΄ΡΡˆΠ±ΠΎΡ€Π΄Π΅ администратора. Но ΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ администратор привлСкался лишь ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ….

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π½Π΅ ΠΌΠΎΠ³ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… сСрвСров, ΠΎ распрСдСлСнии ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ накопитСлям.

Новая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΌΠ΅Π½Ρ‹

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали, это вынСсли всС дисковыС ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Β«HW-диск» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΌΡƒ поля «имя Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства», Β«Ρ€Π°Π·ΠΌΠ΅Ρ€Β» ΠΈ Β«Ρ‚ΠΈΠΏ диска», Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта информация ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ Π² Ρ‚ΠΈΠΊΠ΅Ρ‚Π΅, ΠΈ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π΅ΠΉ постоянно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ‡Π°Ρ‚Π΅.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ диск. Π­Ρ‚ΠΎ сущСствСнно упростило Π² дальнСйшСм процСсс Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, сбор статистики ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠšΡ€ΠΎΠΌΠ΅ этого Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ «отвСтствСнный администратор». Π’ΡƒΠ΄Π° автоматичСски подставляСтся Π΄Π΅ΠΆΡƒΡ€Π½Ρ‹ΠΉ сисадмин. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ всСгда Π²ΠΈΠ΄ΠΈΡ‚, ΠΊΡ‚ΠΎ отвСтствСнный. НС Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ΄Ρ‚ΠΈ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΡŒ ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ. ИмСнно это ΠΏΠΎΠ»Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ вынСсти Π½Π° Π΄ΡΡˆΠ±ΠΎΡ€Π΄ администратора Ρ‚ΠΈΠΊΠ΅Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, понадобится Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒ.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
Π§Ρ‚ΠΎΠ±Ρ‹ всС участники ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ максимум Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΌΡ‹ создали Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ Π΄ΡΡˆΠ±ΠΎΡ€Π΄Ρ‹, рассказали ΠΎ Π½ΠΈΡ… рСбятам. Когда люди ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ измСнСния, ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ Π½ΠΈΡ…, ΠΊΠ°ΠΊ ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρƒ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ стойки, Π³Π΄Π΅ располагаСтся сСрвСр, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ‚ΠΈΠΏ диска. Администратору Π½ΡƒΠΆΠ½ΠΎ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π° Π³Ρ€ΡƒΠΏΠΏΠ° сСрвСров, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ эффСкт ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ диска.

НаличиС ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΈΡ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ β€” это ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΎΡ‚ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°Ρ‚Ρ‹ нас это Π½Π΅ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΎ. Для этого ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс.

РаньшС ΠΎΠ½ Π±Ρ‹Π» Ρ‚Π°ΠΊΠΈΠΌ:

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
БСгодня Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ Π½Π΅ трСбуСтся ΠΏΠΎΠΌΠΎΡ‰ΡŒ администратора.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ сдСлали, β€” Π²Π²Π΅Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ статус Investigate. Π’ этом статусС Ρ‚ΠΈΠΊΠ΅Ρ‚ находится, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π΅Ρ‰Ρ‘ Π½Π΅ Ρ€Π΅ΡˆΠΈΠ», Π½ΡƒΠΆΠ΅Π½ Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ администратор ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π§Π΅Ρ€Π΅Π· этот статус ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΊΠ΅Ρ‚ администратору. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, этим статусом ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅ΠΌ Ρ‚ΠΈΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π·Π°ΠΌΠ΅Π½Π° диска, Π½ΠΎ самого диска Π½Π° ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ΅ Π½Π΅Ρ‚. Π’Π°ΠΊΠΎΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π² случаС CDN ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΎΠΊ.

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ статус Ready. Π’ Π½Π΅Π³ΠΎ Ρ‚ΠΈΠΊΠ΅Ρ‚ пСрСводится послС Π·Π°ΠΌΠ΅Π½Ρ‹ диска. Π’ΠΎ Π΅ΡΡ‚ΡŒ всё ΡƒΠΆΠ΅ сдСлано, Π½ΠΎ Π½Π° сСрвСрС синхронизируСтся HW/SW RAID. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ довольно ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Если ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ привлСкаСтся администратор, схСма Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ услоТняСтся.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
Из статуса Open Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ пСрСвСсти ΠΊΠ°ΠΊ систСмный администратор, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€. Π’ статусС In progress администратор Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ диск ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΌΠΎΠ³ Π΅Π³ΠΎ просто Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ: Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ подсвСтку, ΠΎΡ‚ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ диск, останавливаСт прилоТСния, Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ сСрвСров.

Π—Π°Ρ‚Π΅ΠΌ Ρ‚ΠΈΠΊΠ΅Ρ‚ пСрСводится Π² Ready to change: это сигнал ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎ диск ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ. ВсС поля Π² Jira ΡƒΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ диска. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ статусС автоматичСски ΠΈΠ»ΠΈ администратором.

ПослС Π·Π°ΠΌΠ΅Π½Ρ‹ диска Ρ‚ΠΈΠΊΠ΅Ρ‚ пСрСводится Π² статус Changed. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ вставили Π½ΡƒΠΆΠ½Ρ‹ΠΉ диск, дСлаСтся Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°, запускаСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π² статус Ready, Π² этом случаС отвСтствСнным останСтся администратор, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π·Π°Π²ΠΎΠ΄ΠΈΠ» диск Π² Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ. Полная схСма выглядит Ρ‚Π°ΠΊ.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΠ»ΠΎ Π½Π°ΠΌ Тизнь. РСбята стали Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со структурированной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, стало ясно, Ρ‡Ρ‚ΠΎ ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ этапС Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ стали Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡ… выставляСт администратор.

ΠžΡ‚ΠΏΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ‡Π°Ρ‚Π°Ρ…. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, администратор ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ «здСсь Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ быстрСС», ΠΈΠ»ΠΈ Β«ΡƒΠΆΠ΅ Π²Π΅Ρ‡Π΅Ρ€, ΡƒΡΠΏΠ΅Π΅ΡˆΡŒ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ?Β». Но ΠΌΡ‹ ΡƒΠΆΠ΅ Π½Π΅ общаСмся Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² Ρ‡Π°Ρ‚Π°Ρ… ΠΏΠΎ этим вопросам.

Диски стали ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ‡ΠΊΠ°ΠΌΠΈ. Если администратор ΠΏΡ€ΠΈΡˆΠ΅Π» Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΡ€Π°Π½ΡŒΡˆΠ΅, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ свободноС врСмя, ΠΈ Π΅Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ряд сСрвСров ΠΊ Π·Π°ΠΌΠ΅Π½Π΅: ΠΏΡ€ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ поля, вывСсти диски ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€, Π²ΠΈΠ΄ΠΈΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ, Π±Π΅Ρ€Ρ‘Ρ‚ со склада Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ ΠΈ сразу мСняСт. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ.

ВынСсСнный ΠΎΠΏΡ‹Ρ‚ ΠΏΡ€ΠΈ построСнии 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.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DiskoBot, написанноС Π½Π° Python, пСриодичСски ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Jira Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ². Оно Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ появился Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΊΠ΅Ρ‚ In progress, срабатываСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ thread, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт playbook Π² Ansible (это дСлаСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ статуса Π² Jira). Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС запускаСтся Prepare2change.

Ansible отправляСтся Π½Π° хост, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ диск ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΈ Ρ€Π΅ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ статус ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Callbacks.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
По Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π±ΠΎΡ‚ автоматичСски ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΈΠΊΠ΅Ρ‚ Π² Ready to change. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈ отправляСтся ΠΌΠ΅Π½ΡΡ‚ΡŒ диск, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΈΠΊΠ΅Ρ‚ Π² Changed.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
По Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ схСмС Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ Π±ΠΎΡ‚Ρƒ, Ρ‚ΠΎΡ‚ запускаСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ playbook, ΠΈΠ΄Π΅Ρ‚ Π½Π° хост ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ диск Π² Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ. Π‘ΠΎΡ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΊΠ΅Ρ‚. Π£Ρ€Π°!

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible
Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… систСмы.

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 Python API. Π’ playbook_executor ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ имя Ρ„Π°ΠΉΠ»Π° ΠΈ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ позволяСт Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ansible-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… yml-Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Python-ΠΊΠΎΠ΄Π΅.

Π’Π°ΠΊΠΆΠ΅ Π² 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’и Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅
dry run, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ansible Π½Π΅ выполняСт Π½Π° сСрвСрах Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эмулируСт ΠΈΡ….

Π’Π°ΠΊΠΎΠΉ запуск прогоняСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ callback-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния playbook’а сохраняСм Π² Jira Π² Π²ΠΈΠ΄Π΅ коммСнтария.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±ΠΎΡ‚Π° ΠΈ playbook’ов. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, повысило Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅ администраторов ΠΊ Π±ΠΎΡ‚Ρƒ.

Когда ΠΌΡ‹ ΠΏΡ€ΠΎΡˆΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΠΈ поняли, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ansible Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ dry run, Ρ‚ΠΎ сдСлали Π² Jira ΠΊΠ½ΠΎΠΏΠΊΡƒ Run Diskobot для запуска Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ playbook’а с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ самыми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ самом хостС, Π½ΠΎ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ запуска playbook’а Π² случаС Π΅Π³ΠΎ сбоя.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Playbooks

Π― ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π», Ρ‡Ρ‚ΠΎ Π² зависимости ΠΎΡ‚ статуса Jira-Ρ‚ΠΈΠΊΠ΅Ρ‚Π°, Π±ΠΎΡ‚ запускаСт Ρ€Π°Π·Π½Ρ‹Π΅ playbook’и.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ρ‚Π°ΠΊ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄.
Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях это просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ систСмного диска Π½ΡƒΠΆΠ½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠΉΡ‚ΠΈ Π² систСму развёртывания, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈ послС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ развёртывания сСрвСр станСт доступСн ΠΏΠΎ ssh, ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π½Π΅Π³ΠΎ Π½Π°ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Если Π±Ρ‹ ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ всё это Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΠ΅, Ρ‚ΠΎ Ansible Π½Π΅ смог Π±Ρ‹ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° нСдоступности хоста.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ansible-Ρ€ΠΎΠ»ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ сСрвСров. Π—Π΄Π΅ΡΡŒ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ playbook(-ΠΈ) Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сразу понятно, Π³Π΄Π΅ ΠΊΠ°ΠΊΠΈΠ΅ таски располоТСны. Π’ main.yml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π²Ρ…ΠΎΠ΄ΠΎΠΌ для Ansible-Ρ€ΠΎΠ»ΠΈ, Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ просто include ΠΏΠΎ статусу Ρ‚ΠΈΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ таски, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для всСх, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°.

Investigation.yml

ЗапускаСтся для Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΎΠ² Π² статусС Investigation ΠΈ Open. Π‘Π°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ для этого playbook’а β€” имя Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства. Π­Ρ‚Π° информация Π½Π΅ всСгда доступна.

Для Π΅Ρ‘ получСния ΠΌΡ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Jira summary, послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Zabbix-Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ имя Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства β€” ΠΏΠΎΠ²Π΅Π·Π»ΠΎ. А ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ mount point, β€” Ρ‚ΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΉΡ‚ΠΈ Π½Π° сСрвСр, ΠΏΡ€ΠΎΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ диск. Π’Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ scsi-адрСс ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Но Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π°Ρ†Π΅ΠΏΠΎΠΊ Π½Π΅Ρ‚, ΠΈ приходится Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Выяснив имя Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства, ΠΌΡ‹ собираСм ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ диска для заполнСния ΠΏΠΎΠ»Π΅ΠΉ Π² Jira. Π’Π°ΠΊΠΆΠ΅ снимаСм ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Π΅Π½Π΄ΠΎΡ€Π΅, ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ΅, ID, SMART, ΠΈ всё это вставляСм Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² Jira-Ρ‚ΠΈΠΊΠ΅Ρ‚Π΅. Администратору ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅. πŸ™‚

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

prepare2change.yml

Π’Ρ‹Π²ΠΎΠ΄ диска ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Π·Π°ΠΌΠ΅Π½Π΅. CΠ°ΠΌΡ‹ΠΉ слоТный, отвСтствСнный этап. ИмСнно здСсь ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ нСльзя ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ. Или Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ диск, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π»ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΈ Ρ‚Π΅ΠΌ самым ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эффСкт Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. Π—Π΄Π΅ΡΡŒ Ρƒ нас большС всСго ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΈ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² Ρ‡Π°Ρ‚Π΅.

Π’ самом простом случаС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ диска ΠΈΠ· HW/MD RAID.

Π’ Π±ΠΎΠ»Π΅Π΅ слоТных ситуациях (Π² Π½Π°ΡˆΠΈΡ… систСмах хранСния), ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ выполняСтся Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ API, ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π΅ диска, Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ восстановлСниС.

ΠœΡ‹ сСйчас массово ΠΌΠΈΠ³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Π² ΠΎΠ±Π»Π°ΠΊΠΎ, ΠΈ Ссли сСрвСр ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ, Ρ‚ΠΎ Diskobot обращаСтся ΠΊ 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 строк.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

На самом Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ находится Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ написали ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, своСго Ρ€ΠΎΠ΄Π° Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π½Π°Π΄ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈ софтовыми RAID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ запросы.

Автоматизация Π·Π°ΠΌΠ΅Π½Ρ‹ дисков с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ansible

Π‘Π°ΠΌΡ‹Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ стороны Ansible β€” это простота ΠΈ понятныС playbook’и. Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ этим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹Π΅ yaml-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство условий, shell-ΠΊΠΎΠ΄Π° ΠΈ Π»ΡƒΠΏΠΎΠ².

Если Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ наш ΠΎΠΏΡ‹Ρ‚ с Ansible API, ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ:

  • Playbook_executor ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ playbook’у нСльзя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ Π½Π° ssh-сСссии, Π½ΠΎ Π½Π΅Ρ‚ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π° Π½Π° playbook. Если ΠΌΡ‹ пытаСмся ΠΎΡ‚ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ диск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² систСмС ΡƒΠΆΠ΅ Π½Π΅ сущСствуСт, playbook Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ бСсконСчно, поэтому ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ запуск Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ wrapper ΠΈ ΡƒΠ±ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ.
  • Ansible Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π±Π°Π·Π΅ fork-процСссов, поэтому Π΅Π³ΠΎ API Π½Π΅ потокобСзопасно. ΠœΡ‹ запускаСм всС наши playbook’и ΠΎΠ΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρƒ ΠΎΠΊΠΎΠ»ΠΎ 80 % дисков. Π’ Ρ†Π΅Π»ΠΎΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ выросла Π² Π΄Π²Π° Ρ€Π°Π·Π°. БСгодня администратор лишь смотрит Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ диск ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ.

Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ администраторы Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡ‚ΡŒ диски. πŸ™‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com