АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ всички. Работя ΠΊΠ°Ρ‚ΠΎ Π²ΠΎΠ΄Π΅Ρ‰ систСмСн администратор Π² ОК ΠΈ отговарям Π·Π° стабилната Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π°. Искам Π΄Π° говоря Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ…ΠΌΠ΅ процСса Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π° подмяна Π½Π° диска ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ…ΠΌΠ΅ администратора ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ процСс ΠΈ Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ…ΠΌΠ΅ с Π±ΠΎΡ‚.

Π’Π°Π·ΠΈ статия Π΅ Π²ΠΈΠ΄ транслитСрация прСдставлСния Π½Π° HighLoad+ 2018

Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° процСс Π·Π° подмяна Π½Π° диск

ΠŸΡŠΡ€Π²ΠΎ ΠΌΠ°Π»ΠΊΠΎ числа

OK Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° услуга, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ‚ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Ρ…ΠΎΡ€Π°. ΠžΠ±ΡΠ»ΡƒΠΆΠ²Π° сС ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 7 хиляди ΡΡŠΡ€Π²ΡŠΡ€Π°, Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² 4 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ. Π’ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 70 хиляди диска. Ако Π³ΠΈ Π½Π°Ρ€Π΅Π΄ΠΈΡ‚Π΅ Π΅Π΄Π½Π° Π²ΡŠΡ€Ρ…Ρƒ Π΄Ρ€ΡƒΠ³Π°, Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΡƒΠ»Π° с височина Π½Π°Π΄ 1 ΠΊΠΌ.

Π’Π²ΡŠΡ€Π΄ΠΈΡ‚Π΅ дисковС са ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΠΉ-чСсто сС ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΌ трябва Π΄Π° смСнямС ΠΎΠΊΠΎΠ»ΠΎ 30 диска сСдмично ΠΈ Ρ‚Π°Π·ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π° Π² Π½Π΅ особСно приятна Ρ€ΡƒΡ‚ΠΈΠ½Π°.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

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

Π’ΡŠΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ Π² Π½Π°ΡˆΠ°Ρ‚Π° компания. НиС записвамС всСки ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ Π² Jira ΠΈ слСд Ρ‚ΠΎΠ²Π° Π³ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅. Ако ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΡŠΡ‚ Π΅ ΠΎΠΊΠ°Π·Π°Π» влияниС Π²ΡŠΡ€Ρ…Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, Ρ‚ΠΎΠ³Π°Π²Π° Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ‰Π΅ сС ΡΡŠΠ±Π΅Ρ€Π΅ΠΌ ΠΈ Ρ‰Π΅ помислим ΠΊΠ°ΠΊ Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π² Ρ‚Π°ΠΊΠΈΠ²Π° случаи, ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π΅Ρ„Π΅ΠΊΡ‚Π° ΠΈ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΊΠ°ΠΊ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅.

Π‘ΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Zabbix слСди тяхното ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. НиС наблюдавамС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π² Syslog Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ запис/Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° HW/SW нападСния, наблюдавамС SMART, изчислявамС износванСто Π½Π° SSD.

Как сС смСняха дисковСтС ΠΏΡ€Π΅Π΄ΠΈ

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС задСйства Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ Π² Zabbix, Π² Jira сС създава ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС насочва към ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ. НиС ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π° с всички HW ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ, тоСст Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ изискват някакъв Π²ΠΈΠ΄ физичСска Ρ€Π°Π±ΠΎΡ‚Π° Π²ΡŠΡ€Ρ…Ρƒ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ.
Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π½Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ Π΅ Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°, отговаря Π·Π° инсталиранСто, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° ΠΈ Π΄Π΅ΠΌΠΎΠ½Ρ‚Π°ΠΆΠ° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π±ΠΈΠ»Π΅Ρ‚, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ сС Π·Π°Ρ…Π²Π°Ρ‰Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Π’ дисковитС Ρ€Π°Ρ„Ρ‚ΠΎΠ²Π΅ Ρ‚ΠΎΠΉ сам смСня дисковСтС. Но Π°ΠΊΠΎ няма Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΆΠ΅Π»Π°Π½ΠΎΡ‚ΠΎ устройство, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ сС ΠΎΠ±Ρ€ΡŠΡ‰Π° Π·Π° ΠΏΠΎΠΌΠΎΡ‰ към Π΄Π΅ΠΆΡƒΡ€Π½ΠΈΡ‚Π΅ систСмни администратори. На ΠΏΡŠΡ€Π²ΠΎ място, трябва Π΄Π° ΠΈΠ·Π²Π°Π΄ΠΈΡ‚Π΅ диска ΠΎΡ‚ ротация. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π΄Π° спрСтС прилоТСнията, Π΄Π° Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Ρ‚Π΅ диска.

ДСТурният систСмСн администратор отговаря Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° цСлия ΠΏΠΎΡ€Ρ‚Π°Π» ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° смяна. Π’ΠΎΠΉ разслСдва ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ, ΠΏΡ€Π°Π²ΠΈ Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΈ, ΠΏΠΎΠΌΠ°Π³Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ с ΠΌΠ°Π»ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. НС сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° само с Ρ‚Π²ΡŠΡ€Π΄ΠΈ дисковС.

Π’ ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ разговаряха със систСмния администратор. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ…Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ към Π±ΠΈΠ»Π΅Ρ‚ΠΈ Π½Π° Jira, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π³ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°, водСшС Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² някакъв Π±Π΅Π»Π΅ΠΆΠ½ΠΈΠΊ. Но Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‡Π°Ρ‚ΠΎΠ²Π΅Ρ‚Π΅ са Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΈ: информацията Ρ‚Π°ΠΌ Π½Π΅ Π΅ структурирана ΠΈ Π±ΡŠΡ€Π·ΠΎ сС Π³ΡƒΠ±ΠΈ. Π”Π°, ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ просто Π΄Π° сС ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΈ Π΄Π° Π½Π΅ отговаря Π½Π° заявки Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅, Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ ΡΡ‚ΠΎΠ΅ΡˆΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° с ΠΏΠ°ΠΊΠ΅Ρ‚ дисковС ΠΈ Ρ‡Π°ΠΊΠ°ΡˆΠ΅.

Но Π½Π°ΠΉ-Π»ΠΎΡˆΠΎΡ‚ΠΎ бСшС, Ρ‡Π΅ администраторитС Π½Π΅ Π²ΠΈΠΆΠ΄Π°Ρ…Π° цялата ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°: ΠΊΠ°ΠΊΠ²ΠΈ дискови ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚, къдС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° възникнС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎΠ²Π° сС дълТи Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ прСдоставямС всички HW ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅. Π”Π°, бСшС възмоТно Π΄Π° сС ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ‚ всички ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΎΡ‚ΠΎ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° администратора. Но ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ тях ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π΅ участвал само Π² някои ΠΎΡ‚ тях.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚ΠΈΠ·ΠΈΡ€Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ Π·Π½Π°Π΅ Π½ΠΈΡ‰ΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° информацията ΠΌΠ΅ΠΆΠ΄Ρƒ устройствата.

Нова ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π° подмяна

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅, бСшС Π΄Π° прСмСстим всички дискови ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ β€žHW diskβ€œ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° β€žblock device nameβ€œ, β€žsizeβ€œ ΠΈ β€ždisk typeβ€œ към Π½Π΅Π³ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π°Π·ΠΈ информация Π΄Π° сС записва Π² Π±ΠΈΠ»Π΅Ρ‚Π° ΠΈ Π΄Π° Π½Π΅ трябва постоянно Π΄Π° Ρ‡Π°Ρ‚ΠΈΡ‚Π΅.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Π Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ сС ΡΡŠΡ‰ΠΎ, Ρ‡Π΅ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ Ρ‰Π΅ смСним само Π΅Π΄ΠΈΠ½ диск. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опрости процСса Π½Π° автоматизация, ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° статистика ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅.

ОсвСн Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ "ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ администратор". Π’Π°ΠΌ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС замСства дСТурният систСмСн администратор. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сСга ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π²ΠΈΠ½Π°Π³ΠΈ Π²ΠΈΠΆΠ΄Π° ΠΊΠΎΠΉ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½. Няма Π½ΡƒΠΆΠ΄Π° Π΄Π° ΠΎΡ‚ΠΈΠ²Π°Ρ‚Π΅ Π² ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€Π° ΠΈ Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅. ИмСнно Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ възмоТно ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΎΡ‚ΠΎ Π½Π° администратора, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΠΎΠΌΠΎΡ‰.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Π—Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ всички участници Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ максимална ΠΏΠΎΠ»Π·Π° ΠΎΡ‚ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈΡ‚Π΅, ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈ ΠΈ Ρ‚Π°Π±Π»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·ΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ Π½Π° ΠΌΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π° Π·Π° тях. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ…ΠΎΡ€Π°Ρ‚Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ промяната, Ρ‚Π΅ Π½Π΅ сС дистанцират ΠΎΡ‚ нСя ΠΊΠ°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π½Π΅Π½ΡƒΠΆΠ½ΠΎ. Π’Π°ΠΆΠ½ΠΎ Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π΄Π° Π·Π½Π°Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° стСлаТа, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π° ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚, Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Π²ΠΈΠ΄Π° Π½Π° диска. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ трябва ΠΏΡ€Π΅Π΄ΠΈ всичко Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠ°ΠΊΠ²Π° Π³Ρ€ΡƒΠΏΠ° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π΅, какъв Π΅Ρ„Π΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΡ€ΠΈ подмяна Π½Π° диск.

НаличиСто Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ тяхното ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π½ΠΈ спаси ΠΎΡ‚ нСобходимостта Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‡Π°Ρ‚ΠΎΠ²Π΅. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ работния процСс.

ΠŸΡ€Π΅Π΄ΠΈ бСшС Ρ‚Π°ΠΊΠ°:

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
ДнСс ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚ Π΄Π° работят, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ сС нуТдаят ΠΎΡ‚ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° администратор.

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅, бСшС Π΄Π° въвСдСм Π½ΠΎΠ² статус изслСдвам. Π’ΠΈΠΊΠ΅Ρ‚ΡŠΡ‚ Π΅ Π² Ρ‚ΠΎΠ·ΠΈ статус, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Ρ€Π΅ΡˆΠΈΠ» Π΄Π°Π»ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ администратор ΠΈΠ»ΠΈ Π½Π΅. Π§Ρ€Π΅Π· Ρ‚ΠΎΠ·ΠΈ статус ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° администратора. ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΠΌΠ΅ Π±ΠΈΠ»Π΅Ρ‚ΠΈ с Ρ‚ΠΎΠ·ΠΈ статус, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° подмяна Π½Π° диск, Π½ΠΎ самият диск Π½Π΅ Π΅ Π½Π° място. Π’ΠΎΠ²Π° сС случва Π² случай Π½Π° CDN ΠΈ ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ сайтовС.

Π”ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΈ статус Π“ΠΎΡ‚ΠΎΠ². Π‘ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ към Π½Π΅Π³ΠΎ слСд смяна Π½Π° диска. ВоСст всичко Π²Π΅Ρ‡Π΅ Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ, Π½ΠΎ HW / SW RAID Π΅ синхронизиран Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ΅ доста дълго Π²Ρ€Π΅ΠΌΠ΅.

Ако Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ администратор, схСмата става ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-слоТна.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Извън статуса ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ Π‘ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΡ‚ систСмСн администратор, Ρ‚Π°ΠΊΠ° ΠΈ ΠΎΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€. Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π’ Ρ…ΠΎΠ΄ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° диска ΠΎΡ‚ ротация, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ просто Π΄Π° Π³ΠΎ ΠΈΠ·Π²Π°Π΄ΠΈ: Π²ΠΊΠ»ΡŽΡ‡Π²Π° подсвСтката, Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π° диска, спира прилоТСния, Π² зависимост ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π±ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ сС ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π° Π² Π“ΠΎΡ‚ΠΎΠ² Π·Π° промяна: Π’ΠΎΠ²Π° Π΅ сигнал Π·Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°, Ρ‡Π΅ Π΄ΠΈΡΠΊΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²Π°Π΄Π΅Π½. Всички ΠΏΠΎΠ»Π΅Ρ‚Π° Π² Jira Π²Π΅Ρ‡Π΅ са попълнСни, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π·Π½Π°Π΅ какъв Ρ‚ΠΈΠΏ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° диска. Π’Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ сС Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚ ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ статус Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, ΠΈΠ»ΠΈ ΠΎΡ‚ администратора.

Π‘Π»Π΅Π΄ смяна Π½Π° диска Π±ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ сС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π² статус ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π° сС Π΄Π°Π»ΠΈ Π΅ поставСн правилният диск, раздСлянСто Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС стартира ΠΈ някои Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ сС стартират. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π±ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ Π² статуса Π“ΠΎΡ‚ΠΎΠ², Π² Ρ‚ΠΎΠ·ΠΈ случай Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ останС ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ стартирал диска Π½Π° ротация. ΠŸΡŠΠ»Π½Π°Ρ‚Π° схСма ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
ДобавянСто Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΆΠΈΠ²ΠΎΡ‚Π° Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-лСсСн. ΠœΠΎΠΌΡ‡Π΅Ρ‚Π°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° работят със структурирана информация, стана ясно ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈ Π½Π° какъв Π΅Ρ‚Π°ΠΏ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΈΡ‚Π΅ станаха ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ сС Π·Π°Π΄Π°Π²Π°Ρ‚ ΠΎΡ‚ администратора.

Няма Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Ρ‡Π°Ρ‚ΠΎΠ²Π΅. Π Π°Π·Π±ΠΈΡ€Π° сС, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° напишС Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° β€žΡ‚ΡƒΠΊ трябва Π΄Π° смСнитС ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎβ€œ ΠΈΠ»ΠΈ β€žΠ²Π΅Ρ‡Π΅ Π΅ Π²Π΅Ρ‡Π΅Ρ€, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ смСнитС?β€œ. Но Π½ΠΈΠ΅ Π²Π΅Ρ‡Π΅ Π½Π΅ ΠΎΠ±Ρ‰ΡƒΠ²Π°ΠΌΠ΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² Ρ‡Π°Ρ‚ΠΎΠ²Π΅ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ.

ДисковСтС Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° сС смСнят Π½Π° ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄ΠΈ. Ако Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π΄ΠΎΠΉΠ΄Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π½ΠΎ, ΠΈΠΌΠ° свободно Π²Ρ€Π΅ΠΌΠ΅ ΠΈ всС ΠΎΡ‰Π΅ Π½ΠΈΡ‰ΠΎ Π½Π΅ сС Π΅ случило, Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ няколко ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° подмяна: Π΄Π° попълни ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π°, Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ дисковСтС ΠΎΡ‚ ротация ΠΈ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ ΠΈΠ΄Π²Π° Π² Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-късно, Π²ΠΈΠΆΠ΄Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°, Π²Π·Π΅ΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ устройства ΠΎΡ‚ склада ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π³ΠΈ промСня. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° замСстванС сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ».

НаучСн ΠΎΠΏΠΈΡ‚ ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс

  • ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, трябва Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ информация ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ.
    Някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ администратори Π½Π΅ Π·Π½Π°Π΅Ρ…Π°, Ρ‡Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ сам смСня дисковС. Някои Ρ…ΠΎΡ€Π° смятаха, Ρ‡Π΅ MD RAID сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° синхронизиран ΠΎΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ някои ΠΎΡ‚ тях Π΄ΠΎΡ€ΠΈ нямаха Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ. Някои Π²ΠΎΠ΄Π΅Ρ‰ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…Π° Ρ‚ΠΎΠ²Π°, Π½ΠΎ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π΅ бСшС описан никъдС.
  • ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° трябва Π΄Π° Π΅ проста ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠ°.
    Π§ΠΎΠ²Π΅ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΡŠΡ€ΠΆΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡ‚ΡŠΠΏΠΊΠΈ Π² Π³Π»Π°Π²Π°Ρ‚Π° си. Най-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ съсСдни статуси Π² Jira трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ поставСни Π½Π° главния Π΅ΠΊΡ€Π°Π½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π’ процСс, Π½ΠΈΠ΅ Π½Π°Ρ€ΠΈΡ‡Π°ΠΌΠ΅ Π“ΠΎΡ‚ΠΎΠ²ΠΈ Π·Π° промяна. А останалитС статуси ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ скрити Π² ΠΏΠ°Π΄Π°Ρ‰ΠΎΡ‚ΠΎ мСню, Π·Π° Π΄Π° Π½Π΅ дразнят ΠΎΡ‡ΠΈΡ‚Π΅. Но Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°ΠΌΠ΅ Ρ…ΠΎΡ€Π°Ρ‚Π°, Π΄Π° ΠΈΠΌ Π΄Π°Π΄Π΅ΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° направят ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π°.
    ΠžΠ±ΡΡΠ½Π΅Ρ‚Π΅ стойността Π½Π° ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈΡ‚Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ρ…ΠΎΡ€Π°Ρ‚Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚, ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Π½ΠΎΠ²Π°Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°. Π—Π° нас бСшС ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Ρ…ΠΎΡ€Π°Ρ‚Π° Π΄Π° Π½Π΅ ΠΊΠ»ΠΈΠΊΠ²Π°Ρ‚ ΠΏΡ€Π΅Π· цСлия процСс, Π° Π΄Π° Π³ΠΎ слСдват. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ…ΠΌΠ΅ Ρ‚Π°Π·ΠΈ автоматизация.
  • Π˜Π·Ρ‡Π°ΠΊΠ°ΠΉΡ‚Π΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅, Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅.
    Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π°, тСхничСското изпълнСниС, срСщитС ΠΈ дискусиитС Π½ΠΈ ΠΎΡ‚Π½Π΅ ΠΎΠΊΠΎΠ»ΠΎ мСсСц. А ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Ρ‚Ρ€ΠΈ мСсСца. Видях ΠΊΠ°ΠΊ Ρ…ΠΎΡ€Π°Ρ‚Π° Π±Π°Π²Π½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ иновацията. ИмашС ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²ΠΈΠ·ΡŠΠΌ Π² Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ. Но Ρ‚ΠΎΠ²Π° бСшС напълно нСзависимо ΠΎΡ‚ самата ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈ Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ тСхничСско изпълнСниС. НапримСр, Π΅Π΄ΠΈΠ½ администратор Π½Π΅ използвашС Jira, Π° плъгина Jira Π² Confluence ΠΈ някои Π½Π΅Ρ‰Π° Π½Π΅ бяха Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° Π½Π΅Π³ΠΎ. ΠŸΠΎΠΊΠ°Π·Π°Ρ…ΠΌΠ΅ ΠΌΡƒ Jira ΠΈ производитСлността Π½Π° администратора сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° ΠΎΠ±Ρ‰ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° смяна Π½Π° дисковС.

Автоматизация Π·Π° подмяна Π½Π° дисковС

Няколко ΠΏΡŠΡ‚ΠΈ сС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠΈΡ…ΠΌΠ΅ Π΄ΠΎ автоматизацията Π½Π° подмяната Π½Π° дисковС. Π’Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, скриптовС, Π½ΠΎ всички Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ…Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈΠ»ΠΈ Ρ€ΡŠΡ‡Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, изискваха стартиранС. И Π΅Π΄Π²Π° слСд Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ.

Въй ΠΊΠ°Ρ‚ΠΎ сСга ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° подмяна Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° Π΅Ρ‚Π°ΠΏΠΈ, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π» ΠΈ списък с дСйствия, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ автоматизацията Π½Π° Π΅Ρ‚Π°ΠΏΠΈ, Π° Π½Π΅ всички навСднъТ. НапримСр, Π½Π°ΠΉ-простият Π΅Ρ‚Π°ΠΏ - Π“ΠΎΡ‚ΠΎΠ² (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° RAID / синхронизация Π½Π° Π΄Π°Π½Π½ΠΈ) ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° бъдС Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Π½ Π½Π° Π±ΠΎΡ‚. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π±ΠΎΡ‚ΡŠΡ‚ Π½Π°ΡƒΡ‡ΠΈ ΠΌΠ°Π»ΠΊΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΌΡƒ Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠΎ-ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π°Π΄Π°Ρ‡Π° - Π΄Π° поставитС диска Π² ротация ΠΈ Ρ‚.Π½.

Π—ΠΎΠΎΠΏΠ°Ρ€ΠΊ Π·Π° настройка

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Π±ΠΎΡ‚Π°, Π½Π΅ΠΊΠ° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠ° ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΊΠ° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° инсталационна зоологичСска Π³Ρ€Π°Π΄ΠΈΠ½Π°. ΠŸΡ€Π΅Π΄ΠΈ всичко Ρ‚ΠΎΠ²Π° сС дълТи Π½Π° гигантския Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° инфраструктура. Π’Ρ‚ΠΎΡ€ΠΎ, Π·Π° всяка услуга сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½Π° конфигурация. ИмамС ΠΎΠΊΠΎΠ»ΠΎ 20 ΠΌΠΎΠ΄Π΅Π»Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ RAID, основно LSI ΠΈ Adaptec, Π½ΠΎ ΠΈΠΌΠ° ΠΈ HP ΠΈ DELL с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии. ВсСки RAID ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ ΠΈΠΌΠ° собствСна ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠ°Π±ΠΎΡ€ΡŠΡ‚ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ тСхният ΠΈΠ·Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ вСрсия Π΄ΠΎ вСрсия Π·Π° всСки RAID ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€. ΠšΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° HW-RAID, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° mdraid.

ΠŸΡ€Π°Π²ΠΈΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ всички Π½ΠΎΠ²ΠΈ инсталации Π±Π΅Π· Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅ Π½Π° диск. ΠžΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ сС Π΄Π° спрСм Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΈ софтуСрни RAID, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ систСмитС си Π½Π° Π½ΠΈΠ²ΠΎ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, Π° Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Но Ρ€Π°Π·Π±ΠΈΡ€Π° сС ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ наслСдСни ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚.

НякъдС дисковСтС Π² RAID ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈΡ‚Π΅ сС Ρ…Π²ΡŠΡ€Π»ΡΡ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ устройства, някъдС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ JBOD. Има ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Π΅Π΄ΠΈΠ½ систСмСн диск Π² ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ Π°ΠΊΠΎ трябва Π΄Π° сС смСни, Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° ΠΏΡ€Π΅Π²ΡŠΡ€Ρ‚ΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€Π° с инсталиранС Π½Π° ОБ ΠΈ прилоТСния ΠΈ ΡΡŠΡ‰ΠΈΡ‚Π΅ вСрсии, слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π΄Π° стартиратС прилоТСния. Има ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ Π³Ρ€ΡƒΠΏΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° дисковата подсистСма, Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² самитС прилоТСния.

ΠžΠ±Ρ‰ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°Π΄ 400 ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ Π³Ρ€ΡƒΠΏΠΈ, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 100 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ прилоТСния. Π—Π° Π΄Π° ΠΏΠΎΠΊΡ€ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΡŠΠ² ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ, Π½ΠΈ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π±ΠΎΠ³Π°Ρ‚ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ инструмСнт Π·Π° автоматизация. Π—Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½Π΅ с ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ DSL, Π·Π° Π΄Π° Π½Π΅ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° само Ρ‚ΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎ Π΅ написал.

Π˜Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ Ansible, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ Π±Π΅Π· Π°Π³Π΅Π½Ρ‚: нямашС Π½ΡƒΠΆΠ΄Π° Π΄Π° подготвямС инфраструктурата, Π±ΡŠΡ€Π· старт. ОсвСн Ρ‚ΠΎΠ²Π° Π΅ написан Π½Π° Python, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠ΅Ρ‚ Π·Π° стандарт Π² Π΅ΠΊΠΈΠΏΠ°.

ΠžΠ±Ρ‰Π° схСма

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ±Ρ‰Π°Ρ‚Π° схСма Π·Π° автоматизация, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚. Zabbix ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°, Ρ‡Π΅ sdb Π΄ΠΈΡΠΊΡŠΡ‚ Π΅ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΡŠΡ‚ сС задСйства ΠΈ Π² Jira сС създава Π±ΠΈΠ»Π΅Ρ‚. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π°, Ρ€Π°Π·Π±Ρ€Π°, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ ΠΈ Π½Π΅ Π΅ Ρ„Π°Π»ΡˆΠΈΠ²ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΎ, тоСст Π΄ΠΈΡΠΊΡŠΡ‚ трябва Π΄Π° бъдС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π±ΠΈΠ»Π΅Ρ‚Π° Π² Π’ процСс.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ DiskoBot, написано Π½Π° Python, ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ провСрява Jira Π·Π° Π½ΠΎΠ²ΠΈ Π±ΠΈΠ»Π΅Ρ‚ΠΈ. Π’ΠΎΠΉ забСлязва, Ρ‡Π΅ сС Π΅ появил Π½ΠΎΠ² Π±ΠΈΠ»Π΅Ρ‚ Π’ процСс, задСйства сС ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° нишка, която стартира ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π·Π° ΠΈΠ³Ρ€ΠΈ Π² Ansible (Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π°Π²ΠΈ Π·Π° всСки статус Π² Jira). Π’ Ρ‚ΠΎΠ·ΠΈ случай сС изпълнява Prepare2change.

Ansible ΠΎΡ‚ΠΈΠ²Π° Π΄ΠΎ хоста, ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° диска ΠΎΡ‚ ротация ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· Callbacks.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Π’ΡŠΠ· основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ Π±ΠΎΡ‚ΡŠΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ промСня Π±ΠΈΠ»Π΅Ρ‚Π° Π½Π° Π“ΠΎΡ‚ΠΎΠ² Π·Π° промяна. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° извСстиС ΠΈ ΠΎΡ‚ΠΈΠ²Π° Π΄Π° смСни диска, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ Π±ΠΈΠ»Π΅Ρ‚Π° към Changed.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Бъгласно Π³ΠΎΡ€Π½Π°Ρ‚Π° схСма Π±ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ сС Π²Ρ€ΡŠΡ‰Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ към Π±ΠΎΡ‚Π°, ΠΊΠΎΠΉΡ‚ΠΎ стартира Π΄Ρ€ΡƒΠ³Π° ΠΊΠ½ΠΈΠ³Π° Π·Π° ΠΈΠ³Ρ€Π°, ΠΎΡ‚ΠΈΠ²Π° ΠΏΡ€ΠΈ хоста ΠΈ пуска диска Π² ротация. Π‘ΠΎΡ‚ΡŠΡ‚ затваря Π±ΠΈΠ»Π΅Ρ‚Π°. Π£Ρ€Π°!

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° някои ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° систСмата.

Дискобот

Π’ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ написано Π½Π° 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

НапримСр срСд заявкитС Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π’ процСс сС ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚ само Ρ‚Π΅Π·ΠΈ с попълнСни ΠΏΠΎΠ»Π΅Ρ‚Π° Π Π°Π·ΠΌΠ΅Ρ€ Π½Π° диска ΠΈ ИмС Π½Π° устройството. Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° устройството Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡ‚ΠΎ устройство, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° изпълнСниС Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° диска Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Π·Π° Π΄Π° Π·Π½Π°Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ какъв Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° диска Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

И срСд Π±ΠΈΠ»Π΅Ρ‚ΠΈΡ‚Π΅ със статус Π“ΠΎΡ‚ΠΎΠ², Π±ΠΈΠ»Π΅Ρ‚ΠΈΡ‚Π΅ с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° dbot_ignore сС Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π½Π° Jira ΠΊΠ°ΠΊΡ‚ΠΎ Π·Π° Ρ‚Π°ΠΊΠΎΠ²Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅, Ρ‚Π°ΠΊΠ° ΠΈ Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½ΠΈ Π±ΠΈΠ»Π΅Ρ‚ΠΈ ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° статистика.

Π’ случай Π½Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π° Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π·Π° ΠΈΠ³Ρ€Π°, Jira присвоява Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° dbot_failed, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ ΠΏΠΎ-късно.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ansible

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ взаимодСйства с Ansible Ρ‡Ρ€Π΅Π· Ansible Python API. Π’ playbook_executor ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΠΌΠ΅ Π½Π° Ρ„Π°ΠΉΠ» ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. Π’ΠΎΠ²Π° Π²ΠΈ позволява Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ansible ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ yml Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΄Π° Π½Π΅ Π³ΠΎ описватС Π² ΠΊΠΎΠ΄ Π½Π° Python.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡ‚ΠΎ устройство, ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΊΠ΅Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ callback_url, Π² ΠΊΠΎΠΉΡ‚ΠΎ проблСмният ΠΊΠ»ΡŽΡ‡ Π΅ Ρ‚Π²ΡŠΡ€Π΄ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½, сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ Π½Π° Ansible Ρ‡Ρ€Π΅Π· *extra_vars* - Ρ‚ΠΎΠΉ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π² HTTP.

Π—Π° всяко изпълнСниС сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Π° инвСнтаризация, ΡΡŠΡΡ‚ΠΎΡΡ‰Π° сС ΠΎΡ‚ Π΅Π΄ΠΈΠ½ хост ΠΈ Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°, към която ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Ρ‚ΠΎΠ·ΠΈ хост, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ group_vars.

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π·Π°Π΄Π°Ρ‡Π°, която Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° HTTP ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° callaback(s). Π’Π΅ Π±ΠΈΠ²Π°Ρ‚ Π΄Π²Π° Π²ΠΈΠ΄Π°:

  • Ansible плъгин Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅, Ρ‚ΠΎΠΉ прСдоставя Π΄Π°Π½Π½ΠΈ Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° playbook. Описва Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са стартирани, Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. Π’ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π·Π° ΠΈΠ³Ρ€Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ.
  • HTTP ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° информация, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ сС ΠΈΠ³Ρ€Π°Π΅ ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°. Π’ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Ansible изпълнявамС POST / GET заявка отстрани Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π§Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅(я) Π½Π° HTTP сС ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π·Π° ΠΈΠ³Ρ€Π° ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ искамС Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΈ слСдващи изпълнСния. НиС записвамС Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² sqlite.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Ρ‡Ρ€Π΅Π· HTTP ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ оставямС ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ ΠΈ промСнямС статуса Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π°.

HTTP ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅

# 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

Подобно Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΡ‚ ΡΡŠΡ‰ΠΈΡ Ρ‚ΠΈΠΏ, Π½ΠΈΠ΅ Π³ΠΎ прСмСстихмС Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΠ±Ρ‰ Ρ„Π°ΠΉΠ» ΠΈ Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ…ΠΌΠ΅, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° Π½Π΅ Π³ΠΎ повтарямС постоянно Π² ΠΊΠ½ΠΈΠ³ΠΈΡ‚Π΅ Π·Π° ΠΈΠ³Ρ€ΠΈ. Π’ΡƒΠΊ сС появява callback_ url, Π² ΠΊΠΎΠΉΡ‚ΠΎ проблСмният ΠΊΠ»ΡŽΡ‡ ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° хоста са Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ. ΠšΠΎΠ³Π°Ρ‚ΠΎ Ansible изпълни Ρ‚Π°Π·ΠΈ POST заявка, Π±ΠΎΡ‚ΡŠΡ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°, Ρ‡Π΅ тя Π΅ дошла ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Ρ‚Π°ΠΊΡŠΠ² ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΡŠΠ² ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚.

И Π΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ ΠΊΠ½ΠΈΠ³Π°-ΠΈΠ³Ρ€Π°, Π² която ΠΈΠ·Π²Π°Π΄ΠΈΡ…ΠΌΠ΅ диск ΠΎΡ‚ 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 Π½Π° β€žΠ“ΠΎΡ‚ΠΎΠ² Π·Π° ΠΏΡ€ΠΎΠΌΡΠ½Π°β€œ ΠΈ добавя ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€. ΠŸΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° mdam_data ΡΡŠΡ‰ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° списък с md устройства, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ Π΄ΠΈΡΠΊΡŠΡ‚, Π° parted_info ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° дъмп Π½Π° дял ΠΎΡ‚ parted.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ вмъкнС Π½ΠΎΠ² диск, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π·Π° Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌ дъмпа Π½Π° дяла, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° поставим диска Π² md устройствата, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ Π±ΠΈΠ» ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚.

Ansible Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°

Π’ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠ°Ρ‚Π° бСшС ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° стартирамС всички ΠΊΠ½ΠΈΠ³ΠΈ-ΠΈΠ³Ρ€ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ
суха Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠ°, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ Ansible Π½Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ дСйствия Π²ΡŠΡ€Ρ…Ρƒ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅, Π° само Π³ΠΈ Π΅ΠΌΡƒΠ»ΠΈΡ€Π°.

Π’Π°ΠΊΠΎΠ²Π° стартиранС сС изпълнява Ρ‡Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Π·Π° ΠΈΠ³Ρ€ΠΈ сС записва Π² Jira ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

ΠŸΡŠΡ€Π²ΠΎ, Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π±ΠΎΡ‚Π° ΠΈ ΠΊΠ½ΠΈΠ³ΠΈΡ‚Π΅ Π·Π° ΠΈΠ³Ρ€ΠΈ. Π’Ρ‚ΠΎΡ€ΠΎ, повиши Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅Ρ‚ΠΎ Π½Π° администраторитС Π² Π±ΠΎΡ‚Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° ΠΈ Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ Π΅ възмоТно Π΄Π° стартирамС Ansible Π½Π΅ само Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° сухо изпълнСниС, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ Π±ΡƒΡ‚ΠΎΠ½ Run Diskobot Π² Jira, Π·Π° Π΄Π° стартирамС ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° със ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡŠΡ‰ΠΈΡ хост, Π½ΠΎ Π² Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ.

ОсвСн Ρ‚ΠΎΠ²Π° Π±ΡƒΡ‚ΠΎΠ½ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° рСстартиранС Π½Π° ΠΊΠ½ΠΈΠ³Π°Ρ‚Π°, Π°ΠΊΠΎ сС сринС.

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

Π’Π΅Ρ‡Π΅ спомСнах, Ρ‡Π΅ Π² зависимост ΠΎΡ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° Jira, Π±ΠΎΡ‚ΡŠΡ‚ стартира Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π·Π° ΠΈΠ³Ρ€Π°.

ΠŸΡŠΡ€Π²ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-лСсно Π΅ Π΄Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π²Ρ…ΠΎΠ΄Π°.
Π’Ρ‚ΠΎΡ€ΠΎ, Π² някои случаи Π΅ просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ смСнятС систСмния диск, ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π² систСмата Π·Π° внСдряванС, Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‡Π° ΠΈ слСд ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Ρ‰Π΅ станС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Ρ‡Ρ€Π΅Π· ssh ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ. Ако Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ всичко Ρ‚ΠΎΠ²Π° Π² Π΅Π΄Π½Π° ΠΈΠ³Ρ€Π°, Ρ‚ΠΎΠ³Π°Π²Π° Ansible няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ изпълни ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ Π½Π° хоста.

ИзползвамС Ansible Ρ€ΠΎΠ»ΠΈ Π·Π° всяка Π³Ρ€ΡƒΠΏΠ° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ. Π’ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠ°ΠΊ са ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΊΠ½ΠΈΠ³ΠΈΡ‚Π΅-ΠΈΠ³Ρ€ΠΈ Π² Π΅Π΄Π½Π° ΠΎΡ‚ тях.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

Π’ΠΎΠ²Π° Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π²Π΅Π΄Π½Π°Π³Π° става ясно къдС ΠΊΠΎΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚. Π’ main.yml, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π²Ρ…ΠΎΠ΄ Π·Π° ролята Π½Π° Ansible, ΠΌΠΎΠΆΠ΅ΠΌ просто Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ статуса Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° всички, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° идСнтификация ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½.

РазслСдванС.yml

ΠŸΡƒΡΠ½Π°Ρ‚ Π·Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈ Π² статуси РазслСдванС ΠΈ ΠžΡ‚Π²ΠΎΡ€Π΅Π½ΠΎ. Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π·Π° Ρ‚Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡ‚ΠΎ устройство. Π’Π°Π·ΠΈ информация Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π°.

Π—Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π΅Π·ΡŽΠΌΠ΅Ρ‚ΠΎ Π½Π° Jira, послСдната стойност ΠΎΡ‚ Ρ‚Ρ€ΠΈΠ³Π΅Ρ€Π° Π½Π° Zabbix. МоТС Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡ‚ΠΎ устройство - ΠΊΡŠΡΠΌΠ΅Ρ‚. И ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½Π΅ - Ρ‚ΠΎΠ³Π°Π²Π° трябва Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΈ изчислитС нСобходимия диск. ОсвСн Ρ‚ΠΎΠ²Π° Ρ‚Ρ€ΠΈΠ³Π΅Ρ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ scsi адрСс ΠΈΠ»ΠΈ някаква Π΄Ρ€ΡƒΠ³Π° информация. Но ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС случва, Ρ‡Π΅ няма ΡƒΠ»ΠΈΠΊΠΈ ΠΈ трябва Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡ‚ΠΎ устройство, ΠΎΡ‚ Π½Π΅Π³ΠΎ ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ информация Π·Π° Ρ‚ΠΈΠΏΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° диска, Π·Π° Π΄Π° попълним ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Π² Jira. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ информация Π·Π° доставчика, ΠΌΠΎΠ΄Π΅Π»Π°, Ρ„ΡŠΡ€ΠΌΡƒΠ΅Ρ€Π°, ID, SMART ΠΈ поставямС всичко Ρ‚ΠΎΠ²Π° Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ Π² Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° Jira. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π²Π΅Ρ‡Π΅ Π½Π΅ трябва Π΄Π° Ρ‚ΡŠΡ€ΡΡΡ‚ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. πŸ™‚

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ2change.yml

Π—Π°Π΄Π²ΠΈΠΆΠ²Π°Π½Π΅ извън ротация, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π·Π° смяна. Най-трудният, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π΅Π½ Π΅Ρ‚Π°ΠΏ. Π’ΠΎΠ²Π° Π΅ мястото, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° спрСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС спряно. Или ΠΈΠ·Π²Π°Π΄Π΅Ρ‚Π΅ диск, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ липсват Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΈ ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ ΠΈΠΌΠ° Π΅Ρ„Π΅ΠΊΡ‚ Π²ΡŠΡ€Ρ…Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, губят някои Π΄Π°Π½Π½ΠΈ. Π’ΡƒΠΊ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ извСстия Π² Ρ‡Π°Ρ‚Π°.

Π’ Π½Π°ΠΉ-простия случай Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° диск ΠΎΡ‚ HW/MD RAID.

Π’ ΠΏΠΎ-слоТни ситуации (Π² Π½Π°ΡˆΠΈΡ‚Π΅ систСми Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅), ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, трябва Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· API, Π΄Π° ΡΡŠΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° диска, Π΄Π° Π³ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅Ρ‚ΠΎ.

Π‘Π΅Π³Π° масово ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΌΠ΅ към ΠΎΠ±Π»Π°ΠΊ, ΠΈ Π°ΠΊΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΅ ΠΎΠ±Π»Π°Ρ‡Π΅Π½, Ρ‚ΠΎΠ³Π°Π²Π° Diskobot ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ облачния API, ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚ΠΎΠ·ΠΈ миньон – ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ работят ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ – ΠΈ ΠΏΠΈΡ‚Π° β€žΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ всички ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΈΠ½ΡŒΠΎΠ½β€œ. И Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° подсвСтката Π½Π° диска, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠΎΠΉ трябва Π΄Π° бъдС ΠΈΠ·Π²Π°Π΄Π΅Π½.

ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½.yml

Π‘Π»Π΅Π΄ смяна Π½Π° диск, ΠΏΡŠΡ€Π²ΠΎ провСрявамС Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° наличност.

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ инсталират Π½ΠΎΠ²ΠΈ дисковС, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° SMART стойности, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ смС Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ.

Какви Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅Π‘Ρ€ΠΎΠΉ ΠΏΡ€Π΅Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ сСктори (5) < 100
Π’Π΅ΠΊΡƒΡ‰ Π±Ρ€ΠΎΠΉ Ρ‡Π°ΠΊΠ°Ρ‰ΠΈ сСктори (107) == 0

Ако устройството Π½Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ тСста, Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° сС ΠΊΠ°Π·Π²Π° Π΄Π° Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ. Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄, подсвСтката сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°, нанасят сС ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Π΄ΠΈΡΠΊΡŠΡ‚ сС Π²ΡŠΡ€Ρ‚ΠΈ.

Π³ΠΎΡ‚ΠΎΠ².yml

Най-простият случай: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° синхронизацията Π½Π° HW / SW raid ΠΈΠ»ΠΈ края Π½Π° синхронизиранСто Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

API Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ

Π‘ΠΏΠΎΠΌΠ΅Π½Π°Ρ… няколко ΠΏΡŠΡ‚ΠΈ, Ρ‡Π΅ чСсто Π±ΠΎΡ‚ΡŠΡ‚ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ API Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ всички прилоТСния ΠΈΠΌΠ°Ρ…Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ. Π•Ρ‚ΠΎ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅:

  • ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ диск, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ Π΅ възмоТно Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с Π½Π΅Π³ΠΎ;
  • старт/стоп. АктивиранС-Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° диска;
  • ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅/Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ слСд подмяна.

Π Π΅Π½Π΄ΠΈΡ€Π°Π½ ΠΎΠΏΠΈΡ‚ ΠΎΡ‚ Ansible

Наистина ΠΎΠ±ΠΈΡ‡Π°ΠΌ Ansible. Но чСсто, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π³Π»Π΅Π΄Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌ ΠΊΠ°ΠΊ Ρ…ΠΎΡ€Π°Ρ‚Π° ΠΏΠΈΡˆΠ°Ρ‚ ΠΊΠ½ΠΈΠ³ΠΈ-ΠΈΠ³Ρ€ΠΈ, ΠΌΠ°Π»ΠΊΠΎ сС плаша. Π‘Π»ΠΎΠΆΠ½ΠΎ логичСско ΠΏΡ€Π΅ΠΏΠ»ΠΈΡ‚Π°Π½Π΅ Π½Π° when / Ρ†ΠΈΠΊΡŠΠ», липса Π½Π° Π³ΡŠΠ²ΠΊΠ°Π²ΠΎΡΡ‚ ΠΈ идСмпотСнтност ΠΏΠΎΡ€Π°Π΄ΠΈ чСстото ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° shell / ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° опростим всичко възмоТно Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ, възползвайки сС ΠΎΡ‚ прСдимството Π½Π° Ansible – модулността. На Π½Π°ΠΉ-високо Π½ΠΈΠ²ΠΎ са ΠΊΠ½ΠΈΠ³ΠΈΡ‚Π΅ Π·Π° ΠΈΠ³Ρ€ΠΈ, Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ написани ΠΎΡ‚ всСки администратор, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Π΅ ΠΌΠ°Π»ΠΊΠΎ Π·Π° Ansible.

- name: Blink disk
  become: True
  register: locate_action
  disk_locate:
      locate: '{{ locate }}'
      devname: '{{ devname }}'
      ids: '{{ locate_ids | default(pd_id) | default(omit) }}'

Ако някаква Π»ΠΎΠ³ΠΈΠΊΠ° Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Π° Π·Π° внСдряванС Π² ΠΊΠ½ΠΈΠ³ΠΈΡ‚Π΅ Π·Π° ΠΈΠ³Ρ€ΠΈ, Π½ΠΈΠ΅ я прСмСствамС Π² Ansible ΠΌΠΎΠ΄ΡƒΠ» ΠΈΠ»ΠΈ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€. Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ написани Π½Π° Python ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ Π΅Π·ΠΈΠΊ.

ΠŸΠΈΡˆΠ°Ρ‚ сС лСсно ΠΈ Π±ΡŠΡ€Π·ΠΎ. НапримСр, ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ Π·Π° освСтяванС Π½Π° диска, ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΠΎ-Π³ΠΎΡ€Π΅, ΠΈΠΌΠ° 265 Ρ€Π΅Π΄Π°.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

На Π½Π°ΠΉ-Π΄ΠΎΠ»Π½ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°. Π—Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ написахмС ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ абстракция Π½Π°Π΄ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΈ софтуСрни RAID, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ заявки.

АвтоматизиранС Π½Π° подмяната Π½Π° диск с Ansible

Най-силнитС страни Π½Π° Ansible са Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° простота ΠΈ лСсни Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΊΠ½ΠΈΠ³ΠΈ-ΠΈΠ³Ρ€ΠΈ. Мисля, Ρ‡Π΅ трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ²Π° ΠΈ Π΄Π° Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚Π΅ уТасни yaml Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ΅Π½ Π±Ρ€ΠΎΠΉ условия, шСл ΠΊΠΎΠ΄ ΠΈ Ρ†ΠΈΠΊΠ»ΠΈ.

Ако искатС Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ нашия ΠΎΠΏΠΈΡ‚ с Ansible API, ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π΄Π²Π΅ Π½Π΅Ρ‰Π°:

  • Playbook_executor ΠΈ playbook ΠΊΠ°Ρ‚ΠΎ цяло Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. Има Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ Π·Π° ssh сСсията, Π½ΠΎ няма Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ Π·Π° playbook. Ако сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Π΄Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ диск, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π² систСмата, ΠΏΠ»Π΅ΠΉΠ±ΡƒΠΊΡŠΡ‚ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΎΠΏΠ°ΠΊΠΎΠ²Π°ΠΌΠ΅ стартиранСто ΠΌΡƒ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° ΠΈ Π΄Π° Π³ΠΎ ΡƒΠ±ΠΈΠ΅ΠΌ слСд ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅.
  • Ansible Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° fork процСси, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ нСговият API Π½Π΅ Π΅ бСзопасСн Π·Π° нишки. ΠŸΡƒΡΠΊΠ°ΠΌΠ΅ всички наши ΠΊΠ½ΠΈΠ³ΠΈ-ΠΈΠ³Ρ€ΠΈ Π² Π΅Π΄Π½Π° нишка.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° успяхмС Π΄Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ подмяната Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 80% ΠΎΡ‚ дисковСтС. ΠšΠ°Ρ‚ΠΎ цяло ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° замСстванС сС Π΅ ΡƒΠ΄Π²ΠΎΠΈΠ». ДнСс Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ само Π³Π»Π΅Π΄Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° ΠΈ Ρ€Π΅ΡˆΠ°Π²Π° Π΄Π°Π»ΠΈ Π΄Π° смСни диска ΠΈΠ»ΠΈ Π½Π΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ Π΅Π΄Π½ΠΎ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅.

Но сСга Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° сС Π½Π°Ρ‚ΡŠΠΊΠ²Π°ΠΌΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: някои Π½ΠΎΠ²ΠΈ администратори Π½Π΅ знаят ΠΊΠ°ΠΊ Π΄Π° смСнят устройства. πŸ™‚

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€