Automating-and-Managing-Windows-Azure-Solutions

advertisement
2 Years as MVP,
5 Years as
Microsoft Field
Engineer,
recently took
role as Azure
specialist
12 years in dev
focused roles
like architect,
web developer
lots of work with
large enterprises
in the US
I lived in Buffalo,
NY until I left for
college and yes,
I am still a
Buffalo Bills fan
but no, I do not
miss the snow
In 2010,
the family
moves to
Atlanta,
GA from
Tampa, FL
Active speaker, writer,
blogger developertofu.com
or @DeveloperTofu
A fun challenge, coaching
a 5 and under girls team
Cloud
Computing
Patterns
Comprehensive set of
services that enable you
to quickly build, deploy
and manage applications
across a global network of
Microsoft-managed
datacenters
99.95%
compute
application
building blocks
infrastructure for building and
running your applications
Manage SQL Databases, Configuration, Diagnostics, Deployments, and Azure assets (Affinity Groups,
Storage Accounts, Keys, etc..)
Query, Manage and Configure Virtual Machines across multiple subscriptions,
cloud services and storage accounts.
http://windows.azure.com/download/publishprofile.aspx
# Perform Management Operation Against Each Subscription
Supports VM Creation in a Single Cmdlet
Provision With: Endpoints, Data Disks
Configure: Cache Settings for OS/Data Disks and Subnet Names
Get-AzureStorageAccount | Select StorageAccountName
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 Service
New-AzureQuickVM -Linux -ServiceName $svc -Name $vm3 ImageName $limg -LinuxUser $lu -Password $pwd
Retrieve Cloud Services
Get-AzureService
Retrieve Virtual Machines for Service
Get-AzureVM -ServiceName $cloudSvcName
Retrieve Status for All VMs in Subsription
Get-AzureService | foreach {
$_ | Get-AzureVM | ft ServiceName, Name, InstanceStatus
}
The name of the Virtual Machine
The availability set (used for high availability)
Create Configuration Object with New-AzureVMConfig
Modify with Add-* cmdlets
Add 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
New Virtual Machine Creation with Data Disk
New-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 Machine
Get-AzureVM -ServiceName 'myvm1' |
Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel 'myddisk' -LUN 1 |
Update-AzureVM
$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
Update a running role to have more or less instances
Set-AzureRole –ServiceName "MySvc1" –Slot "Production" –RoleName
"MyTestRole3" –Count 3
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
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
}
Download