Подружим между собой Netbox и Veritas Backup Exec 20. Symantec Backup Exec 15 тоже удалось подружить.
Задача
- В Netbox внесены виртуальные машины.
- В Veritas Backup Exec 20 настроено резервное копирование виртуальных машин.
Задача простая, в Netbox в кастомное поле "Backup" у виртуальной машины нужно внести расписание, по которому производится резервное копирование.
Нам понадобится:
- Powershell скрипт, который будет всё за нас делать.
- BEMCLI модуль PS, который устанавливается вместе с Backup Exec.
- API Netbox, из коробки. Сгенерируем токен в админке.
- Task Scheduler поможет автоматизировать процесс.
Решение
Алгоритм работы скрипта:
- Пробегаем циклом по всем виртуальным машинам, которые обработали в прошлый раз. Пишем в Netbox в кастомное поле "<сервер бэкапа> <дата> — отменено". Тем самым мы подстраховываемся на тот случай, если виртуальная машина перестала бэкапиться, а запись о расписании в Netbox есть. Чистим за собой. Список обработанных виртуалок храним в файле.
- Получаем список расписаний резервного копирования для виртуальных машин из Backup Exec и вносим данные в Netbox.
Скачать скрипт: scripts.zip
Здесь:
- $workdir = "C:\scripts\"
Путь к рабочей директории. - $filevmlistname = "vmlist.txt"
Имя файла для хранения имён виртуальных машин. - $netbox = "https://netbox.example.local"
URL к Netbox. - $token = "b67b67b67b67b67b67b67b67b67b67b67b67b67b"
Токен, генерируется в админке Netbox. - $vcenter = "vcenter.example.local"
Имя vCenter в Backup Exec. - $custom_field = "Backup"
Имя кастомного поля в Netbox.
Сохраняем скрипт в папку C:\scripts на сервере Backup Exec. Рядом создаём пустой файл vmlist.txt, здесь будет храниться список виртуальных машин.
Работу скрипта можно протестировать вручную в PowerShell. Убедитесь, что модуль BEMCLI у вас присутствует.
После отработки скрипта у виртуальной машины в кастомном поле появился запись:
Если резервное копирование отменится, то запись станет такой:
В web-интерфейсе это выглядит так:
Расписание
Настроим расписание для ежедневного запуска скрипта. Воспользуемся Планировщиком Заданий — Task Scheduler.
Создаём новое задание.
Укажем любое имя. Запускаем с максимальными привилегиями и без логина.
Переходим к триггерам, создаём новый.
Выбираем желаемое расписание. Я запускаю ежедневно в 6:30 утра. OK.
Расписание создано.
Переходим к действиям, создаём новое. Для запуска PowerShell скрипта выполним программу:
powershell.exe -file "C:\scripts\netbox_vm_backup_schedule.ps1"
Настраиваем условия. Например, разбудим компьютер для выполнения скрипта.
Указываем настройки. Например, "Do not start a new instance".
OK.
Укажем имя пользователя для запуска скрипта. Естественно, он должен иметь права для доступа к Backup Exec. OK.
Расписание создано.
Заключение
Мы создали скрипт, который вытаскивает расписание резервного копирования виртуальной машины и записывает его в кастомное поле той же виртуальной машины в Netbox.
Минусы решения
- Хотелось бы, конечно, внести дату последней резервной копии, но мне не удалось докопаться до списка резервных копий, поэтому я пока ограничился расписанием.
- Если виртуальная машина бэкапится по нескольким расписаниям, то в Netbox записывается только одно.
- Для Symantec Backup Exec 15 пришлось кое-где убрать "-UseBasicParsing" из кода, вероятно, это зависит от версии Powershell и операционной системы Windows Server.
Плюсы решения
- Шарманка работает, автоматизация!
- Если машина перестала бэкапиться, то расписание в Netbox заменяется текстом "<сервер бэкапа> <дата> — отменено".
- Для работы не пришлось устанавливать дополнительное ПО.
Цены
Источник:
https://internet-lab.ru/netbox_backup_exec
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.