В то же время, у пользователей VMware vCSA есть запрос на автоматизацию процесса резервного копирования средствами PowerCLI через механизм vSphere RESTful API. На блогах VMware появилась интересная статья, описывающая данный процесс, приведем ниже основные его моменты.
Взаимодействие с механизмом резервного копирования vCSA происходит через модуль CIS, который взаимодействует с компонентами инфраструктуры на низком уровне. Первым шагом как раз и является подключение к службе CIS:
Connect-CisServer -Server vcsa01.corp.local
Затем нужно найти сервис, для которого нужно сделать резервную копию:
Get-CisService -Name *backup*
Из вывода видно, что нам нужен сервис com.vmware.appliance.recovery.backup.job. Сохраняем его в переменую и передаем в Get-Member:
В выводе мы видим метод create, который позволяет создать задачу резервного копирования, а также свойство help, которое помогает сформировать входные параметры для задачи РК:
$backupJobSvc.Help.create.piece
Теперь можно заполнить поля задачи данными из нашего окружения. Параметр parts ожидает на вход тип массив, также в параметре password нужно передать специальный тип, чтобы он был принят:
# Login to the CIS Service of the desired VCSA
Connect-CisServer -Server vcsa01.corp.local
# Store the Backup Job Service into a variable
$backupJobSvc = Get-CisService -Name com.vmware.appliance.recovery.backup.job
# Create a specification based on the Help response
$backupSpec = $backupJobSvc.Help.create.piece.CreateExample()
# Fill in each input parameter, as needed
$backupSpec.parts = @("common")
$backupSpec.location_type = "FTP"
$backupSpec.location = "ftp01.corp.local"
$backupSpec.location_user = "backup"
[VMware.VimAutomation.Cis.Core.Types.V1.Secret]$backupSpec.location_password = "VMware1!"
$backupSpec.comment = "PowerCLI Backup Job"
# Create the backup job
$backupJobSvc.create($backupSpec)
Чтобы создать запланированную задачу резервного копирования, надо использовать сервис com.vmware.appliance.recovery.backup.schedules. Тут нам надо задать schedule ID (это строковый параметр по вашему выбору, задается опционально) и заполнить спецификацию аналогично предыдущему сценарию.
Периодичность бэкапа задается через свойство days, которое можно оставить неустановленным (бэкап будет делаться каждый день), либо задать конкретные дни в виде массива.
Ну и, собственно сам сценарий запланированного бэкапа VMware vCSA на уровне файлов через PowerCLI:
# Store the Backup Job Service into a variable
$backupSchedSvc = Get-CisService -Name com.vmware.appliance.recovery.backup.schedules
# Create a Schedule ID specification based on the Help response
$schedSpec = $backupSchedSvc.Help.create.schedule.Create()
$schedSpec = 'weekly'