Скрипт, который вырубил всё: история одного оп-па

Один неверный параметр — и IT-инфраструктура компании легла спать досрочно.
Знаете то чувство, когда пишешь скрипт для автоматизации и чувствуешь себя властелином мира? А потом оказывается, что ты случайно нажал кнопку «армагеддон». Именно это произошло с администратором на Reddit, чей скрипт для обновлений решил, что «выключить все компьютеры» — это отличная идея.
Классика жанра: забытая проверка на if или не тот флаг в команде shutdown — и вот уже вся компания, от бухгалтерии до отдела разработки, дружно смотрит на потухшие мониторы. Как вам такое утро понедельника? А ведь планировалось всего лишь тихое обновление конфигурации.
На самом деле, это отличный повод вспомнить про принцип наименьших привилегий и тестирование на тестовой среде. Но кто же будет тестировать, когда дедлайн горит? Разработчики, знакомая боль: ваш CI/CD тоже иногда ведёт себя как слон в посудной лавке.
Комментарий студии METABYTE: Мы тоже любим автоматизацию, но предпочитаем, чтобы наши скрипты не устраивали внезапные корпоративные вечеринки с отключением света. Если хотите избежать таких сюрпризов — давайте напишем код, который выключает только то, что нужно. И да, мы всегда ставим --dry-run.