🛡 Бэкап DevSecOps-лаборатории — не «для бедных», а базовый минимум Автор завершил сборку конвейера безопасности и упёрся в реальность, знакомую каждому сисадмину: виртуалки GitLab, Vault и DefectDojo легко превращаются в тыкву после неудачного обновления или отказавшего диска. Вместо «ничего страшного, пересоберём» появился PowerShell-скрипт `backup_vms.ps1`, который последовательно выключает пять машин через `acpipowerbutton`, копирует каталоги `.vdi` на отдельный 500-гигабайтный NTFS-диск и оставляет только последние пять ежедневных копий. Решение умышленно консольное: `VBoxManage.exe`, `Copy-Item -Recurse -Force`, никаких агентов внутри гостевых систем. Такой подход не требует ни грана бюджетных вливаний, но закладывает фундамент для восстановления в пределах часа — если кто-то регулярно проверяет восстановление, а не просто любуется списком папок. Схема остановки всех машин до начала копирования снимает проблему краш-консистентности снапшотов VirtualBox, но плата — простой всего конвейера на время бэкапа. Для лаборатории, где сборки не идут 24/7, это допустимая жертва. В продакшене, где Nexus и GitLab работают без окон, пришлось бы городить согласованные с приложением снимки через pre-freeze скрипты или скриптовые снапшоты самого гипервизора. Статья же честно фиксирует грань: это лабораторный минимум, а не промышленный план аварийного восстановления. Кстати, команда `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` выбрана не случайно — она блокирует запуск загруженных извне скриптов и не требует прав администратора. Так же можно защитить Windows-хост, на котором крутятся агенты сборки. При переносе на организации, где уже освоили Veeam или хранилища с неизменяемыми копиями, скрипт смотрится архаично. Но стоит вспомнить, как часто небольшие команды вообще не делают бэкапы инструментов DevSecOps, полагаясь только на Git-репозитории и «я же всё конфигурировал в Ansible, просто не запушил». Ровно после первой потери Vault с непродублированными секретами или Dependency-Track с историей сканирований приходит понимание: без отдельного диска и примитивного `Copy-Item` восстановление затянется на дни. По данным habr_infosec, через планировщик задач скрипт запускается с `-ExecutionPolicy Bypass` — грязноватый, но надёжный способ не зависеть от политик выполнения PowerShell. В этом месте хочется добавить логирование: без него успешное копирование неотличимо от упавшего скрипта, который молча пропустил упавшую машину. Статья напоминает: «без бэкапа ты не царь», но я бы добавил — восстановление всей лаборатории из одной папки `.vdi` чревато тем, что ты восстанавливаешь и кривой плагин, и просроченный сертификат заодно. Самый опасный бэкап — тот, что ни разу не разворачивали. Проверка отказа диска в тестовом окружении даст больше, чем ещё один скрипт. #PowerShell #VirtualBox #DevSecOps #бэкап