2
我想從我們的Jenkins服務器使用從Powershell腳本調用的MSDeploy工具部署到Azure的web應用程序的zip包。如何使用PowerShell中的MSDeploy將Web應用程序壓縮包部署到Azure?
怎麼辦?
我想從我們的Jenkins服務器使用從Powershell腳本調用的MSDeploy工具部署到Azure的web應用程序的zip包。如何使用PowerShell中的MSDeploy將Web應用程序壓縮包部署到Azure?
怎麼辦?
使用下面的腳本:
$PackagePath = "c:\temp\package.zip"
$ResourceGroupName = "resource-group-where-my-app-resides"
$AppName = "my-cool-web-app"
if (!(Test-Path $PackagePath)) {
throw "Package file $PackagePath does not exist"
}
echo "Getting publishing profile for $AppName app"
$xml = Get-AzureRmWebAppPublishingProfile -Name $AppName `
-ResourceGroupName $ResourceGroupName `
-OutputFile temp.xml -Format WebDeploy -ErrorAction Stop
$username = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@userName").value
$password = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@userPWD").value
$url = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@publishUrl").value
$siteName = ([xml]$xml).SelectNodes("//publishProfile[@publishMethod=`"MSDeploy`"]/@msdeploySite").value
del temp.xml
echo "Got publishing profile XML."
$msdeployArguments =
'-verb:sync ' +
"-source:package='$PackagePath' " +
"-dest:auto,ComputerName=https://$url/msdeploy.axd?site=$siteName,UserName=$username,Password=$password,AuthType='Basic',includeAcls='False' " +
"-setParam:name='IIS Web Application Name',value=$siteName"
$commandLine = '&"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" --% ' + $msdeployArguments
Invoke-Expression $commandLine
msdeploy.exe很脆,在命令行參數空間,請參閱https://stackoverflow.com/a/25198222