Я работал над сценарием для запуска резервного копирования TeamCity по расписанию, так как по умолчанию у него нет такой опции, а затем скопировал его в учетную запись хранения Azure.
Этот сценарий работает, но я хочу внести некоторые улучшения.
- Я хочу, чтобы Powershell проверял доступность файла резервной копии для загрузки (Test-Path или et c.) На данный момент для этого просто требуется сон на 360 секунд.
- Я хочу настроить политику хранения для учетной записи хранения Azure.
#API key for TeamCity as TC parameter
$key = "%key%"
$date = Get-Date -Format "yyyy-MM-dd"
$file = "TeamCity-Backup-$date.zip"
#URI for initialize backup
$uri = "https://teamcity.test.com/app/rest/server/backup?addTimestamp=false&includeConfigs=true&includeDatabase=true&includeBuildLogs=false&fileName=$file"
#URI for downloading backup
$uri1 = "https://teamcity.test.com/get/file/backup/$file"
$header = @{ "Authorization"="Bearer $key" }
#Initialize
Invoke-RestMethod -Method Post -Uri $uri -Header $header
#Wait for backup
sleep -Seconds 360
#
#Need function or method for checking file availibility
#
#Download
Invoke-RestMethod -Method Get -Uri $uri1 -Header $header -OutFile "$file"
#Key to BLOB
$key_storage = "%key_storage%"
#Copy to Azure
azcopy.exe copy $file "https://myblob.blob.core.windows.net/teamcity-backups$key_storage"
#
#Funtion for retention Azure Blob
#