Quantcast
Channel: BizTalkGurus
Viewing all articles
Browse latest Browse all 2977

Blog Post: Sample Windows Azure Virtual Machines PowerShell Scripts

$
0
0

I sometimes show a platform that requires a bunch of Windows Azure virtual machines. It has 1 Active Directory domain controller (n123dc1), 3 SQL Server VMs for database mirroring (n123sql1, n123sql2, and n123sp20131 which also happens to have a SharePoint Server 2013 installed), and 2 members of a SharePoint 2012 Web Front End.

image

Between two demo sessions, I keep the VHD files in Windows Azure blob storage, as well as the virtual network because they don’t cost too much, but I don’t let the virtual machines deployed so that they don’t cost anything.

In order to restart the whole platform I use the following script (I slightly obfuscated one or two values).

 

#region init  Import-Module 'c:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1'    $subscription = 'Azdem169B44999X'  Set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount 'storrageazure2'  Set-AzureSubscription -DefaultSubscription $subscription    $cloudSvcName = 'n123'#endregion#region DC  $vmName='n123dc1'  $disk0Name = 'n123dc1-n123dc1-0-20120912092405'  $disk1Name = 'n123dc1-n123dc1-0-20120912105309'  $vNetName = 'Network123'  $subNet = 'DCSubnet'    $vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize ExtraSmall -Name $vmName -Label $vmName |      Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50101    New-AzureVM -ServiceName $cloudSvcName -VMs $vm1 -VNetName $vNetName  #endregion#region SQL Server  $vmName='n123sql1'  $disk0Name = 'n123dc1-n123sql1-0-20120912170111'  $disk1Name = 'n123dc1-n123sql1-0-20120913074650'  $disk2Name = 'n123dc1-n123sql1-1-20120913080403'  $vNetName = 'Network123'  $subNet = 'SQLSubnet'  $availabilitySetName = 'SQL'    $sqlvms = @()    $vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Medium -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |      Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |      Add-AzureDataDisk -DiskName $disk2Name -Import -LUN 1 |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50604 |      Add-AzureEndpoint -LocalPort 1433 -Name 'SQL' -Protocol tcp -PublicPort 14330    $sqlvms += ,$vm1    $vmName='n123sql2'  $disk0Name = 'n123-n123sql2-0-20121120105231'  $disk1Name = 'n123-n123sql2-0-20121120144521'  $disk2Name = 'n123-n123sql2-1-20121120145236'  $vm2 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Small -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |      Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |      Add-AzureDataDisk -DiskName $disk2Name -Import -LUN 1 |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50605 |      Add-AzureEndpoint -LocalPort 1433 -Name 'SQL' -Protocol tcp -PublicPort 14331    $sqlvms += ,$vm2    New-AzureVM -ServiceName $cloudSvcName -VMs $sqlvms  #endregion#region SharePoint  $vmNamesp1='n123sp1'  $vmNamesp2='n123sp2'  $disk0Namesp1 = 'n123-n123sp1-2012-09-13'  $disk0Namesp2 = 'n123-n123sp2-2012-09-13'  $vNetName = 'Network123'  $subNet = 'SharePointSubnet'  $availabilitySetName = 'WFE'    $spvms = @()    $vm1 = New-AzureVMConfig -DiskName $disk0Namesp1 -InstanceSize Small -Name $vmNamesp1 -Label $vmNamesp1 -AvailabilitySetName $availabilitySetName |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50704 |      Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 80 -LBSetName "SPFarm" -ProbePort 80 -ProbeProtocol "http" -ProbePath "/probe/"  $spvms += ,$vm1    $vm2 = New-AzureVMConfig -DiskName $disk0Namesp2 -InstanceSize Small -Name $vmNamesp2 -Label $vmNamesp2 -AvailabilitySetName $availabilitySetName |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50705 |      Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 80 -LBSetName "SPFarm" -ProbePort 80 -ProbeProtocol "http" -ProbePath "/probe/"  $spvms += ,$vm2    New-AzureVM -ServiceName $cloudSvcName -VMs $spvms  #endregion#region SharePoint 2013 and SQL Server witness  $vmName='n123sp20131'  $disk0Name = 'n123-n123sp20131-0-20121120104314'  $disk1Name ='n123-n123sp20131-0-20121120220458'  $vNetName = 'Network123'  $subNet = 'SP2013Subnet'  $availabilitySetName = 'SQL'    $vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Small -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |      Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |      Set-AzureSubnet $subNet |      Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50804 |      Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 8080    New-AzureVM -ServiceName $cloudSvcName -VMs $vm1  #endregion

In order to stop the whole platform, I use the following script:

 

#region init  Import-Module 'c:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1'    $subscription = 'Azdem169B44999X'  Set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount 'storrageazure2'  Set-AzureSubscription -DefaultSubscription $subscription    $cloudSvcName = 'n123'#endregion#region shutdown and delete  echo 'will shut down and remove the following'  Get-AzureVM -ServiceName $cloudSvcName | select name  Get-AzureVM -ServiceName $cloudSvcName | Stop-AzureVM  Get-AzureVM -ServiceName $cloudSvcName | Remove-AzureVM  #endregion

 

In order to get started, I read Michael Washam’s blog.

 

Smile

Benjamin


Blog Post by: Benjamin GUINEBERTIERE

Viewing all articles
Browse latest Browse all 2977

Trending Articles