On a newly installed OnCommand Workflow Automation 2.2
box, I was setting up scheduled backups of the database using the provided
Backup.ps1, but was encountering difficulties:
PS D:\Program Files\NetApp\WFA\bin>
.\Backup.ps1
-User backup -Password backup
Invalid credentials specified,
cannot take a backup!
Note: By default WFA takes daily backup at 2 am, and retains the latest 2 in the {INSTALL_DRIVE}:\Program Files\NetApp\WFA-Backups.
I knew the credentials were definitely correct as could
log into - http://localhost/rest/backups
- with the same credentials and download the backup file with no issue. Also, I’d
used this process before when upgrading from WFA 2.2RC1 to WFA 2.2 GA and it
had worked fine, so maybe something changed in the WFA 2.2 GA release!?
After a while scratching my head ... I was looking at the
Backup.ps1 script, and it occurred to me that we can do this in another way
with PowerShell 3’s Invoke-WebRequest (Windows 2012+ come with PowerShell 3
pre-installed.)
Backup-WFA.ps1
We’re going to supply the username, password, and backup
location in the script, for ease of getting the script setup on an Enterprise
Scheduled Task Management system (backup can only do backup anyway!) Also, we
know we’re using the default port 80 for HTTP and the backup folder already
exists - which makes our script super simple! Copy the content below into a
text editor and save as say Backup-WFA.ps1
in the WFA\bin folder.
## START COPYING HERE ##
# Handle credentials
$User
= "backup"
$Pass
= "backup"
$SecP
= $Pass | ConvertTo-SecureString -AsPlainText -Force
$Cred
= New-Object System.Management.Automation.PsCredential($User,$SecP)
# Handle Backup Folder, File and Path
$Folder = "D:\Backups\"
$File = "wfa_backup." +
(Get-Date -Format "yyyyMMddHHmmss") + ".sql.gz"
$FilePath =
$Folder + $File
# Invoke-WebRequest
[Void](Invoke-WebRequest
-Uri http://localhost/rest/backups -OutFile $FilePath -Credential
$Cred)
## STOP COPYING HERE ##
Note: Backup.ps1
also uses System.Management.Automation.PsCredential
The Proof that
the Backups Work!
After running a backup using Backup-WFA.ps1:
PS D:\Program
Files\NetApp\WFA\bin>
.\Backup-WFA.ps1
We login to http://localhost/wfa/
> Administration > Backup & Restore
Image: WFA >
Backup & Restore
Browse to our
newly backed up WFA database file, and hit the Restore button. If all is good we are greeted with “Successfully restored WFA’s database”!
Image: Successfully
restoring the WFA database
Running Backup-WFA.ps1
from the Command Prompt
Before getting this to run as a scheduled task, we first
check this will run via the DOS Command Prompt:
C:\Users\Administrator>
powershell.exe -File
"D:\Program Files\NetApp\WFA\bin\Backup-WFA.ps1" -ExecutionPolicy
Bypass
Running
Backup-WFA.ps1 from Task Scheduler
Pretty much as above, with:
Program/script =
powershell.exe
Arguments =
-File
"D:\Program Files\NetApp\WFA\bin\Backup-WFA.ps1" -ExecutionPolicy
Bypass
Image: Task
Scheduler Action to run Backup-WFA.ps1
And test it runs!
THE END
Comments
Post a Comment