2015-12-31 39 views
0

我已經做了一些挖掘,我還沒有找到任何最近的文檔:是否可以將Azure Cloud Service部署到需要不帶ccproj的啓動腳本?

我有一個.NET 4.6解決方案,包括我現在希望部署到雲中的許多項目 - 特別是作爲Azure雲服務。

最好不要創建Cloud Service項目作爲我的解決方案的一部分,因爲我相信這是一個部署詳細信息,因此與我的解決方案無關,可以輕鬆託管在本地IIS計算機上,或者甚至IIS Express。因此,我發現的所有文件都需要在我的解決方案中增加一個雲服務項目,這隻會讓人覺得......髒。

我有Jenkins和Octopus Deploy用於我的部署工具,我想如果可能讓他們直接部署項目 - 看起來Octopus開箱即用,除了一個細節,我有一個啓動腳本將需要在Azure雲服務上運行:

  • 要確保安裝了正確版本的.NET Framework,並且如果需要,請安裝它。
  • 安裝與我的其他服務器通信所需的SSL客戶端證書。

用於本地或本地安裝IIS,這將不會是一個問題,因爲章魚觸手可以在服務器上運行一個腳本來確保的.NET Framework和安裝的正確版本存在的SSL證書,但我無法理解如何在Azure雲服務上對此任務進行鏡像。

回答

0

首先,您必須從章魚腳本中自動部署雲服務。例如,在PowerShell中,你可以用這種方式編寫它:

function CreateNewDeployment() 
{ 
write-progress -id 3 -activity "Creating New Deployment" -Status "In progress" 
Write-Output "$(Get-Date –f $timeStampFormat) - Creating New Deployment: In progress" 

$opstat = New-AzureDeployment -Slot $slot -Package $packageLocation -Configuration $cloudConfigLocation -label $deploymentLabel -ServiceName $serviceName 

$completeDeployment = Get-AzureDeployment -ServiceName $serviceName -Slot $slot 
$completeDeploymentID = $completeDeployment.deploymentid 

write-progress -id 3 -activity "Creating New Deployment" -completed -Status "Complete" 
Write-Output "$(Get-Date –f $timeStampFormat) - Creating New Deployment: Complete, Deployment ID: $completeDeploymentID" 

#StartInstances 
} 

$packageLocation = "$currentDirectory/$packagefile" 
$cloudConfigLocation = "$currentDirectory/$cloudConfigFile" 

Import-AzurePublishSettingsFile $publishsettings 
Set-AzureSubscription -SubscriptionName $azureSubscription -CurrentStorageAccount $storageAccount 

CreateNewDeployment 

其次,你將不得不以運行你的啓動腳本與提高的執行上下文來配置啓動任務。

啓動任務是雲服務,使您可以進行配置更改到虛擬機的角色實例的角色開始之前
啓動任務是在雲服務定義中定義的一個獨特的功能(.csdef)文件使用<WebRole><WorkerRole>元素中的<Task>元素。一個<Task>元素包含可以用來影響該任務的權限和行爲,它有三個屬性:

  • 命令行標識要執行程序或腳本。
  • executionContext設置腳本所需的權限級別,並且可以限制或提高 。配置更改(例如更改IIS設置的 )將要求該任務以提升模式運行於 。
  • taskType可以是簡單,前景或 背景。一個簡單的任務在角色 開始之前同步執行。與該角色並行執行前臺和後臺任務 。前臺任務可以保持運行 的角色並阻止其關閉或回收。如果角色需要關閉或者被回收

    任務的命令行=「啓動\ STARTUP.CMD」的ExecutionContext =「架空」任務類型=「簡單」

參考文檔後臺任務將 停止在這裏 https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks/ 希望這會有所幫助 新年快樂! 致以問候 Stéphane

+0

所以,如果我理解正確這一點,我需要部署PowerShell腳本(類似於你提供的示例),包文件時, .csdef文件,publishsettings文件(可以通過Octopus從環境/帳戶/ Azure訂閱中提供嗎?可以從Octopus設置它的方式假設它),以及csdef需要引用的任何其他腳本。 ..所有這些工作意味着雲服務項目仍然是正確的路要走? – BenAlabaster

0

本質上,Cloud Service Project可幫助您創作所需的文件,打包解決方案並進行部署。這些步驟可以分解爲單個任務,其中創作和部署由stephgou和Lister先生描述。

要打包,您需要使用CSPack.exe。 https://azure.microsoft.com/en-us/documentation/articles/cloud-services-model-and-package/#servicepackagecspkg

另外看看這裏瞭解過程。在對方的回答提供的PowerShell的將在本文中替代GUI指導:https://azure.microsoft.com/en-us/documentation/articles/cloud-services-how-to-create-deploy-portal/

相關問題