managing windows azure virtual machines from powershell speaker title organization
TRANSCRIPT
![Page 1: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/1.jpg)
Managing Windows Azure Virtual Machines from PowerShellSpeakerTitleOrganization
![Page 2: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/2.jpg)
Agenda
Getting Started
Virtual Machine Management
Disk and Image Repository
Configuring Virtual Networks
![Page 3: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/3.jpg)
What can you do with PowerShell?
AutomationQuery, Manage and Configure Virtual Machines across multiple subscriptions, cloud services and storage accounts.
Virtual NetworkingCompletely Configure VNETs from a Script
Provision Fully Configured Virtual MachinesDomain JoinedStorage and Networking Configured
![Page 4: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/4.jpg)
Setting up your Subscription
Use: Get-AzurePublishSettingsFile and Import-AzurePublishSettingsFileTo Import Downloaded Publish Profile (.publishsettings) http://windows.azure.com/download/publishprofile.aspx
Automatically configures Subscription ID, Certificate, Service Endpoint and Subscription Name.
![Page 5: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/5.jpg)
Manual Configuration of Subscription
Associate Certificate and Subscription ID$cert = Get-Item cert:\CurrentUser\My\CERTTHUMBPRINTSet-AzureSubscription 'mysub' -Certificate $cert -SubscriptionID $id
![Page 6: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/6.jpg)
Subscription Management
Subscription Settings Persisted C:\Users\user\AppData\Roaming\Windows Azure Powershell
Subscription Example<Subscription name="somesub1"> <SubscriptionId>13d83b03-6d06-4770-943c-3d46766c3a35</SubscriptionId>
<Thumbprint>2AC8112B34CC840A30B9C2716AE840D5DC107510</Thumbprint> <ServiceEndpoint>https://management.core.windows.net/</ServiceEndpoint> </Subscription>
![Page 7: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/7.jpg)
Switching Between Subscription Settings
Multiple Subscription Support Get-AzureSubscription | foreach { Select-AzureSubscription $_.SubscriptionName # Perform Management Operation Against Each Subscription}
![Page 8: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/8.jpg)
Setting the current storage account
Returns Storage AccountGet-AzureStorageAccount | Select StorageAccountName
Cmdlets like New-AzureQuickVM will use this Account
Sets the Current Storage AccountSet-AzureSubscription 'somesub1' -CurrentStorageAccount 'mystorage‘
![Page 9: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/9.jpg)
Information Needed to create a VM
Image NameGet-AzureVMImage | select ImageName
Disk NameGet-AzureDisk | select DiskName
Data Center LocationGet-AzureLocation
![Page 10: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/10.jpg)
Virtual Machine Management
Quick VM Provisioning ModeSupports VM Creation in a Single Cmdlet
Create Multiple Pre-Defined VMs in a BatchNew-AzureVM -VMs $vm1, $vm2, $vm3
Advanced Provisioning Configuration ModeProvision With: Endpoints, Data DisksConfigure: Cache Settings for OS/Data Disks and Subnet Names
![Page 11: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/11.jpg)
Simple VM Creation
First Virtual Machine in a NEW Cloud Service (-Location specified)New-AzureQuickVM -Windows -ServiceName $svc -Name $vm1 -ImageName $wimg -Location $location -Password $pwd
New Virtual Machine in an Existing Cloud Service (no –Location)New-AzureQuickVM -Windows -ServiceName $svc -Name $vm2 -ImageName $wimg -Password $pwd
Creating a Linux Virtual Machine in an Existing Cloud ServiceNew-AzureQuickVM -Linux -ServiceName $svc -Name $vm3 -ImageName $limg -LinuxUser $lu -Password $pwd
![Page 12: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/12.jpg)
Configuring VM at Provisioning
Create Configuration Object with New-AzureVMConfigModify with Add-* cmdletsAdd with New-AzureVM
New-AzureVMConfig -Name $vm1 -InstanceSize Medium -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd | Add-AzureDataDisk -CreateNew -DiskLabel 'data' -DiskSizeInGB 10 -LUN 0 | Add-AzureEndpoint -Name 'web' -PublicPort 80 -LocalPort 80 -Protocol tcp | New-AzureVM -ServiceName $newSvc -Location $location
![Page 13: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/13.jpg)
VM Batch Creation
Create Multiple Configured VMs and Pass to New-AzureVM
$vm1 = New-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd
$vm2 = New-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd $vm3 = New-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd New-AzureVM -CreateService -ServiceName $cloudSvcName -VMs $vm1,$vm2,$vm3 -Location $dc
![Page 14: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/14.jpg)
VM Batch Creation (using an array)
Create Multiple Configured VMs and Pass to New-AzureVM
$vmcount = 5$vms = @()for($i = 0; $i -lt 5; $i++){ $vmn = 'myvm' + $i $vms += New-AzureVMConfig -Name $vmn -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd | Add-AzureDataDisk -CreateNew -DiskLabel 'data' -DiskSizeInGB 10 -LUN 0 | Add-AzureDataDisk -CreateNew -DiskLabel 'logs' -DiskSizeInGB 10 -LUN 1 }
New-AzureVM -ServiceName $cloudSvcName -VMs $vms -Location $dc
![Page 15: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/15.jpg)
Common Settings
NameThe name of the Virtual Machine
InstanceSizeExtraSmall, Small, Medium, Large, ExtraLarge
AvailabilitySetNameThe availability set (used for high availability)
![Page 16: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/16.jpg)
Windows Provisioning Options
Add-AzureProvisioningConfig Options-Windows -Password $pwd-WindowsDomain -Password $pwd -Domain $dom, -JoinDomain $fqdn, -DomainUser $domUser -DomainPassword $domPwd -MachineObjectOU $ou-DisableAutomaticUpdates-NoRDPEndpoint, -TimeZone, Certificates
![Page 17: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/17.jpg)
Linux Provisioning Options
Add-AzureProvisioningConfig OptionsLinux -LinuxUser $user -Password $pwd -DisableSSH , -NoSSHEndpoint -SSHKeyPairs, -SSHPublicKeys installed from certificates deployed in cloud service
![Page 18: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/18.jpg)
Deploying into a Virtual Network
Virtual Machine SettingsSet Subnet on VM with Set-AzureSubnet
Deployment SettingsSet Virtual Network -VNetName Set DNS Servers - New-AzureDns and -DNSSettings
![Page 19: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/19.jpg)
Provisioning into a VNET and Active Directory$dom = 'contoso'$jdom = 'contoso.com'$onPremDNS = New-AzureDns -IPAddress '192.168.1.4' -Name 'OnPremDNS'$cloudDNS = New-AzureDns -IPAddress '10.1.1.4' -Name 'CloudDNS'$computerOU = $advmou = 'OU=AzureVMs,DC=contoso,DC=com‘
New-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -WindowsDomain -Password $pwd -Domain $dom ` -DomainUserName $domUser -DomainPassword $dpwd -JoinDomain $jdom ` -MachineObjectOU 'AzureVMs' | Set-AzureSubnet -SubnetNames 'AppSubnet' | New-AzureVM –ServiceName $svc -AffinityGroup 'adag' ` -VNetName 'ADVNet' -DnsSettings $onPremDNS, $cloudDNS
![Page 20: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/20.jpg)
Virtual Machine Discovery
Retrieve Cloud Services Get-AzureService
Retrieve Virtual Machines for Service Get-AzureVM -ServiceName $cloudSvcName
Retrieve Status for All VMs in SubsriptionGet-AzureService | foreach { $_ | Get-AzureVM | ft ServiceName, Name, InstanceStatus}
![Page 21: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/21.jpg)
Virtual Machine Storage
Data DisksAdd/Remove data disks at boot or while runningCreate blank or attach existing disks
Modify Cache Settings of OS Disk or Data DiskModifying OS Disk while running requires reboot
![Page 22: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/22.jpg)
Data Disk Creation
New Virtual Machine Creation with Data DiskNew-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd | Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel 'myddisk' -LUN 0 | New-AzureVM -ServiceName $cloudSvcName
Add new Data Disk to existing Virtual MachineGet-AzureVM -ServiceName 'myvm1' | Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel 'myddisk' -LUN 1 | Update-AzureVM
![Page 23: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/23.jpg)
Modifying Cache Settings
Set Host Caching on OS Disk During ProvisioningNew-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd | Set-AzureOSDisk -HostCaching 'ReadOnly' | New-AzureVM -ServiceDescription $cloudSvcName
Set Host Caching on Existing Data Disk in running VMGet-AzureVM -ServiceName $cloudSvcName -Name 'myvm1' | Set-AzureDataDisk -HostCaching 'ReadWrite' -LUN 0 | Update-AzureVM
![Page 24: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/24.jpg)
Configuring Endpoints
Add Endpoints at CreationNew-AzureVMConfig -Name 'myvm1' -InstanceSize 'Small' -ImageName $img | Add-AzureProvisioningConfig -Windows -Password $pwd | Add-AzureEndpoint -LocalPort 80 -PublicPort 80 -Name http -Protocol tcp | Add-AzureEndpoint -LocalPort 443 -PublicPort 443 -Name https -Protocol tcp | New-AzureVM -ServiceDescription $cloudSvcName
Modify Endpoints at RuntimeGet-AzureVM -ServiceName $cloudSvcName -Name 'myvm1' Add-AzureProvisioningConfig -Windows -Password $pwd | Add-AzureEndpoint -LocalPort 53 -PublicPort 53 -Name dns -Protocol udp | Remove-AzureEndpoint -Name https | New-AzureVM -ServiceDescription $cloudSvcName
![Page 25: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/25.jpg)
Disk and Image Repository
OS Images
Get-AzureVMImage # Return all Get-AzureVMImage | Where { $_.Category -eq 'Microsoft' } # Return Microsoft Get-AzureVMImage | Where { $_.Category -eq 'User' } # Return CustomGet-AzureVMImage | Where { $_.Category -eq 'Partner' } # Return Partner ImagesGet-AzureVMImage | Where { $_.OS -eq 'Windows' } # Return only Windows OS imagesRemove-AzureVMImage -ImageName 'myimg' -DeleteVHD # Delete image and storageAdd-AzureVMImage -OS 'Windows' -ImageName 'MyWinImage' -MediaLocation 'http://storageaccount/vhds/winimage.vhd' # Add Existing VM Image from Storage
Disks
Get-AzureDisk # Return all Get-AzureDisk | Where { $_.AttachedTo -eq $null } # Return all not attached to a VMGet-AzureDisk | Where { $_.OS -eq $null } # Return only data disks Get-AzureDisk | Where { $_.OS -eq 'Windows' } # Return only Windows OS disksRemove-AzureDisk -DiskName 'mydisk' -DeleteVHD # Delete disk and storageAdd-AzureDisk -OS 'Windows' -DiskName 'MyWinDisk' -MediaLocation 'http://storageaccount/vhds/winosdisk.vhd‘ # Add Existing OS Disk from Storage Add-AzureDisk -DiskName 'MyDataDisk' -MediaLocation 'http://storageaccount/vhds/datadisk.vhd‘# Add Existing Data Disk from Storage
Microsoft, Partner and User
OS Disks or Data Disks
![Page 26: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/26.jpg)
Batch Updates to Running VMs
Remove RDP and Add New Storage Across all Web Front Ends
Get-AzureVM -ServiceName $svc | Where { $_.Name -match 'wfe' } | foreach { $_ | Remove-AzureEndpoint -Name 'rdp' | Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -LUN 1 -DiskLabel 'newstorage' | Update-AzureVM}
![Page 27: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/27.jpg)
Capturing a Virtual Machine as a new ImageCapture Sys-Prepped VM into a new Image (Deletes the Source VM)
Save-AzureVMImage -ServiceName $cloudSvcName -Name 'myvm1' -NewImageName 'Image Name'
![Page 28: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/28.jpg)
Virtual Network Operations
View and Set Virtual Network ConfigurationGet-AzureVNetConfig | Select -Expand XMLConfigurationSet-AzureVNetConfig -ConfigurationPath 'c:\Network\MyNetCFG.xml'
Start and Stop Virtual Network Gateway Set-AzureVNetGateway -Disconnect -VNetName 'MyVNet' -LocalNetworkSiteName 'MySite'Set-AzureVNetGateway -Connect -VNetName 'MyVNet' -LocalNetworkSiteName 'MySite'
View Virtual Network StatusGet-AzureVNetConnection -VNetName 'MyVNet'
![Page 29: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/29.jpg)
Summary
Virtual Machine Management
Disk and Image Repository
Configuring Virtual Networks
![Page 30: Managing Windows Azure Virtual Machines from PowerShell Speaker Title Organization](https://reader035.vdocuments.mx/reader035/viewer/2022070306/5517a5f35503460e6e8b5f26/html5/thumbnails/30.jpg)
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to
be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.