码迷,mamicode.com
首页 > Windows程序 > 详细

在世纪互联版的Microsoft Azure上做windows虚拟机的批量部署--用powershell做部署

时间:2016-04-07 01:41:36      阅读:598      评论:0      收藏:0      [点我收藏+]

标签:批量创建 虚拟机 windows azure powershell

在Azure上我们有两种部署方法:资源管理器(ARM)和用powershell部署,也就是我们常说的,经典模型。截至2016/4/6,世纪互联版本的Azure 还没有ARM,需要用powershell做批量虚拟机部署。


如果需要批量建立VM,通过portal一台一台的加上去,无疑,是件很傻很傻的事情。这时候就要用到powershell啦。

第一步,你得先有个Microsoft powershell.顺道登陆到你的Azure 订阅,这里步骤就不详细写出了。

键入:Get-AzurePublishSettingsFile,将配置文件下载。

随后键入:Import-AzurePublishSettingsFile "文件完整路径"

第二步,开始创建Windows虚拟机,指定当前存储账号。

键入:

Set-AzureSubscription -SubscriptionName ‘<SubscriptionName>‘ -CurrentStorageAccount ‘<StorageAccount>‘

技术分享第三步,找到我要建立的Windows VM的镜像。这里我们假设建的机器是windows server 2012,

先键入找找看官方镜像:

$imageList = Get-AzureVMImage `
| where {$_.ImageName -like "*Windows-Server-2012-Datacenter*"}
$image=$imageList[0]

找到之后,设置镜像,键入:

$imageList = Get-AzureVMImage `
| where {$_.ImageName -eq "a699494373c04fc0bc8f2bb1389d6106__Windows-Server-2012-Datacenter-201407.01-en.us-127GB.vhd"}
$image=$imageList[0]

第四步,创建虚拟机,键入:

New-AzureVMConfig -Name ‘SHADOW001‘ -InstanceSize ‘Small‘ -ImageName $image.ImageName -AvailabilitySetName ‘AvbSet‘ ` | Add-AzureProvisioningConfig -Windows -AdminUsername ‘Shadow‘ -Password ‘Pass@word01!‘ ` | New-AzureVM -ServiceName ‘Shadow‘ -Location ‘East Asia‘

di第五步,批量创建。批量创建,需要写一个循环创建的语句。

以下是一个已经写好的例子。需要你自己做些改动。

$ScriptBlock = {

                   param( [string]$ServiceName, [string]$prefix, [int]$VMnumber)   

                   $SubscriptionName = "Windows Azure 企业"

                   $image=get-azurevmimage|where{$_.Label -eq "Windows Server 2012 R2 Datacenter, August 2015 (zh-cn)"} 

                   $imageName=$image[0].ImageName

                   $adminName="***"

                   $adminPwd="****"

                   $vnetName="****"

                   Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccount $ServiceName

            

                   $vmArray=@() 

                   for($i=1;$i -le $VMnumber;$i++)

                       {

                          $instanceSize="Small"

                          $newName=""

                          if($i -lt 10)

                            {

                               $newName=$prefix+"{0:00}" -f $i

                            }

                          else

                            {

                                $newName=$prefix+"{0:0}" -f $i

                            }

            

                           $vm=New-AzureVMConfig -ImageName $imageName -Name $newName -InstanceSize $instanceSize -AvailabilitySetName "CTtest"

                           Set-AzureSubnet -VM $vm -SubnetNames "Subnet-2"

                           $vm=Add-AzureProvisioningConfig -VM $vm -Windows -AdminUsername $adminName -Password $adminPwd 

                           $vmArray+=$vm

                        }

                            New-AzureVM -ServiceName $ServiceName -VMs $vmArray -VNetName $vnetName -WaitForBoot

                  }


      [String]$Array = read-host "请输入想创建VM的cloudservice, 输入仅限于service1...service20,请用 ‘,‘ 分割输入"

      $ServicArray = @()

      $ServicArray += $Array.Split(‘,‘)

      [String]$prefix = read-host "请输入主机名称前缀,以英文开头,可以为英文+数字"

      [int]$VMnumber = [int](read-host "请输入需要创建的主机台数 ,只允许输入数字")


        

    

      foreach ($ServiceName in $ServicArray)


        {       

           Start-Job -ScriptBlock $ScriptBlock -ArgumentList $ServiceName , $prefix , $VMnumber

        } 


$start = Get-Date

# Wait for all to complete

 

While (Get-Job -State "Running") { 

 

Get-Job -State "Completed" | Receive-Job

 

Start-Sleep 1

 

}

 

# Display output from all jobs

 

Get-Job | Receive-Job

 

# Cleanup of jobs

 

Remove-Job *

 

# Displays batch completed

 

echo "Provisioning VM Completed"



$end =Get-Date

$timespan= $end - $start

$seconds = $timespan.TotalSeconds

 

Write-Host "总耗时 $seconds 秒."




本文出自 “Shadow的Azure小栈” 博客,转载请与作者联系!

在世纪互联版的Microsoft Azure上做windows虚拟机的批量部署--用powershell做部署

标签:批量创建 虚拟机 windows azure powershell

原文地址:http://shadowxyj.blog.51cto.com/11142118/1761073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!