通过PowerShell自动部署Azure网站

时间:2014-11-04 14:30:48

标签: powershell azure msbuild

我正在忙着编写一些部署脚本。此脚本需要做的一件事是发布一个新的Azure网站。 为此,我已经编写了一些在Azure中创建新网站的行。之后,我的网站必须部署。阅读此问题,可以使用msbuildDeployOnBuild参数来完成此操作。

到目前为止,脚本看起来有点像这样(简化):

New-AzureResourceGroup -Location $locationWestEUDataCenter -Name $resourceGroupNameEU
New-AzureResource -ApiVersion 2014-04-01 -Name $hostingPlanNameEU -ResourceGroupName $resourceGroupNameEU `
                        -ResourceType Microsoft.Web/serverFarms -Location $locationWestEUDataCenter `
                        -PropertyObject $hostingPlanParametersEU -Verbose -Force
$siteWestEUProperties = @{name = $siteNameEU; sku = "Basic"; webHostingPlan = $hostingPlanNameEU}
New-AzureResource  -Name $siteNameEU -ResourceType Microsoft.Web/sites `
                         -ResourceGroupName $resourceGroupNameEU -Location $locationWestEUDataCenter `
                         -ApiVersion $apiVersion -PropertyObject $siteWestEUProperties
Switch-AzureMode AzureServiceManagement

MSBuild发布目前看起来像这样(http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/automate-everything的副本):

& "$env:windir\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" $websiteProjectFileAnalytics `
    /p:VisualStudioVersion=11.0 `
    /p:DeployOnBuild=true `
    /p:PublishProfile=$publishingFileAnalytics `
    /p:Password=$publishSettings.publishData.publishProfile.userPWD.get(0)

我对这行代码的问题是Password属性。必须从PublishSettings文件中检索密码。订阅PublishSettings文件中不存在此通行证。 PublishSettings文件中提供了此密码(以及许多其他属性),您可以从Azure门户网站的网站管理页面下载该文件。

在这里查看我的问题?

我希望完全自动部署完整的软件套件。有没有办法可以设置我创建的特定网站的密码?如果可以,我可以在PowerShell中管理密码并在发布时使用密码。

或者是否有一种不同/更好的方式来自动部署Azure网站?

旁注:我是PowerShell的新手,但已成功自动部署云服务,服务总线,数据库,流量管理器,存储。

1 个答案:

答案 0 :(得分:1)

总是一样的,在问了一些问题之后你会读到一些可能解决问题的方法。

blog post of Kaushal Kumar Panday中正在阅读以下内容:

  

现在让我们点击“重置您的部署凭据”选项。这个   将使用以下弹出窗口提示用户:

     

图像

     

现在,这个选项是不言自明的。它允许用户更改   部署凭证,即用户名和密码。不过这个   选项不是特定于网站,因为用户正在更改   部署帐户的密码,会影响所有网站。   这些凭据直接绑定到Microsoft帐户   (Outlook.com或Live.com)。所以更改这些凭据将是   更改与Microsoft帐户绑定的所有订阅

这意味着我可以为订阅更改一次部署凭据,并在我的脚本中使用这些凭据。这样做会产生以下命令:

& "$env:windir\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" $websiteProjectFileAnalytics `
    /p:VisualStudioVersion=12.0 `
    /p:DeployOnBuild=true `
    /p:PublishProfile=$publishingFileAnalytics `
    /p:Password=$azureDeploymentPassword `
    /p:UserName=$azureDeploymentUsername `
    /p:MSDeployServiceURL=mywebsite.scm.azurewebsites.net:443

要使其正常工作,您需要从pubxml文件中删除UserNameMSDeployServiceURL元素。我也删除了_SavePWD元素,因为它不再做任何事情(我猜)。

我的网站现已成功部署到Azure。