Pre-requisite :
- Windows XP or more later version of Windows OS.
- Powershell 2.0 installed
- PowerShell for Azure installed
- Azure Project compiled and packaged
Steps :
- Open PowerShell for Azure
- Initialize PowerShell with Azure Libraries :
import-module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
- Retrieve Azure Publish Settings Files :
Get-AzurePublishSettingsFile
- Fill in account credentials used for publishing in web browser
- Copy .publishsettings file into your deployment directory, in this example C:\dev\Azure_Deployment\settings_cert
- Rename publish settings files to myFirstAzurePSDeployment.publishsettings
- Use publishsettingsfile to associate the Azure Account with your current machine or computer
Import-AzurePublishSettingsFile C:\dev\Azure_Deployment\settings_cert\myFirstAzurePSDeployment.publishsettings
- Once the import is completed, the following output will be shown in the PowerShell command prompt :
Success : Setting: LV Cloud Core Development Account as the default and current subscription.
- To view other subscriptions use Get-AzureSubscription
- To confirm the Azure account association is successful run the following, command
Get-AzureSubscription
to get the similar output :SubscriptionName : My Azure Deployment PS SubscriptionId : 067b7777-1234-abcd-4567-1234c38e5dcb Certificate : [Subject] CN=Windows Azure Tools[Issuer] CN=Windows Azure Tools[Serial Number] 089DDDD7F56E118B46FEEEEEA7118E97 [Not Before] 1/10/2013 7:35:23 AM [Not After] 1/10/2014 7:35:23 AM [Thumbprint] 1234525D89DA9F6844C665228FFFFFFF440FDC7F ServiceEndpoint : https://management.core.windows.net/ SqlAzureServiceEndpoint : CurrentStorageAccount : MyFirstAzureDeploymentPSBLOB IsDefault : True SubscriptionName : MyAzureDeploymentPS SubscriptionId : 9fa79dac-3569-4154-b1d9-7863259b8bef Certificate : [Subject] CN=Windows Azure Tools [Issuer] CN=Windows Azure Tools [Serial Number] 5555552DFA7444444D7ABE120163949F [Not Before] 3/22/2013 11:05:06 AM [Not After] 3/22/2014 11:05:06 AM [Thumbprint] 12345029C22A42B871234567F06794D8CB75 ServiceEndpoint : https://management.core.windows.net/ SqlAzureServiceEndpoint : CurrentStorageAccount : IsDefault : False
- Select the correct Azure subscription which will be used as the targeted to be deployed.
Select-AzureSubscription “My First Azure Deployment PS” - Initialize Azure subscription with the correct BLOB storage, the BLOB storage will be used by Azure during deployment as a temporary upload location before Azure will install your software project into Azure Instances (Web Role or Worker Role).
Set-AzureSubscription "My First Azure Deployment PS" - CurrentStorageAccount MyFirstAzureDeploymentPSBLOB
- Confirm your Azure ServiceName which will be used to have your Azure Application deployed, use the following command to list the Hosted Services.
Get-AzureService
Example of output :Label : MyAzureDeploymentPS Description : description of the subsystem AffinityGroup : 9bf5714d-3c8e-44e0-985f-c4626c495284 Location : Status : Created DateModified : 2012-12-04T03:14:12Z DateCreated : 2012-11-06T22:37:59Z Url : https://management.core.windows.net/9fa79dac-3569-4154-b1d9-7863259b8bef/services/hostedservices/MyAzureDeploymentPS ServiceName : MyAzureDeploymentPS OperationDescription : Get-AzureService OperationId : ea0dd11d-e3f2-46ec-8fd1-a2e472d07b85 OperationStatus : Succeeded
- Once everything is in order from step 1 to step 12, use the following command to deploy your Azure Project. It is important to ensure there are no existing Service running in the Azure ServiceName staging slot.
New-AzureDeployment -ServiceName MyAzureDeploymentPS -Package C:\dev\VS-TFS\MyExamples\MyAzureDeploymentPS\bin\Release\app.publish\MyAzureDeploymentPS.cspkg -Configuration C:\dev\VS-TFS\MyExamples\MyAzureDeploymentPS\bin\Release\app.publish\MyAzureDeploymentPS.cscfg -Slot staging -Label "My Azure Deployment PS" -Name MyAzureDeploymentPS
- Check the temporary URL in the staging environment, make sure your application is able to behaves as expected.
- Lastly, to perform Virtual IP Swap; swapping the application from staging slot to production slot of Azure, make sure that the production slot of the ServiceName is empty. Then run :
Move-AzureDeployment -ServiceName "MyAzureDeploymentPS"
- If there is no error until Step 16, you are done deploying Azure Package into Azure account using PowerShell.