zoukankan      html  css  js  c++  java
  • How to create a batch of VMs with PowerShell

    Foreword

    When we do some test that need several VMs, we can use PowerShell script or CmdLets to implement what we want.

    Keywords

    PowerShell, New-AzureVMConfig, New-AzureProvisioningConfig, New-AzureVM, Get-AzureVM, Add-AzureDataDisk, Update-AzureVM

    Summary

    Detailed

    # Name of subscription

    $SubscriptionName = "CIETest01"

    # Name of storage account (where VMs will be deployed)

    $StorageAccount = "portalvhdstpb7xn5sd8cck"

    $VmNames=New-Object System.Collections.ArrayList

    $VmNames.Add("erictest001")

    $VmNames.Add("erictest002")

    function Provision-VM( [string]$VmName ) {

    Start-Job -ArgumentList $VmName {

    param($VmName)

    $Location = "China North"

    $InstanceSize = "Small" # You can use any other instance, such as Large, A6, and so on

    $AdminUsername = "ericwen" # Write the name of the administrator account in the new VM

    $Password = "Passw0rd" # Write the password of the administrator account in the new VM

    $Image = "0c5c79005aae478e8883bf950a861ce0__Windows-Server-2012-Essentials-20131018-enus" #Copy the ImageName property you get from Get-AzureVMImage

    # You can list your own images using the following command:

    # Get-AzureVMImage | Where-Object {$_.PublisherName -eq "User" }

    New-AzureVMConfig -Name $VmName -ImageName $Image -InstanceSize $InstanceSize |

    Add-AzureProvisioningConfig -Windows -Password $Password -AdminUsername $AdminUsername|

    New-AzureVM -Location $Location -ServiceName "$VmName" -Verbose

    }

    }

    # Set the proper storage - you might remove this line if you have only one storage in the subscription

    Set-AzureSubscription -SubscriptionName $SubscriptionName -CurrentStorageAccount $StorageAccount

    # Select the subscription - this line is fundamental if you have access to multiple subscription

    # You might remove this line if you have only one subscription

    Select-AzureSubscription -SubscriptionName $SubscriptionName

    # Every line in the following list provisions one VM using the name specified in the argument

    # You can change the number of lines - use a unique name for every VM - don't reuse names

    # already used in other VMs already deployed

    foreach($VmName in $VmNames)

    {

    Provision-VM $VmName

    }

    # 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"

    echo "Attach new data disk to VM"

    foreach($VmName in $VmNames){

    Get-AzureVM -ServiceName $VmName -Name $VmName -Verbose | Add-AzureDataDisk -CreateNew -DiskSizeInGB 10 -DiskLabel "main" -LUN 1 -Verbose | Update-AzureVM -Verbose

    }

    Conclusion

    Reference

    http://sqlblog.com/blogs/marco_russo/archive/2013/10/29/powershell-script-to-deploy-multiple-vm-on-azure-in-parallel-azure-powershell.aspx

  • 相关阅读:
    用python2和python3伪装浏览器爬取网页
    详解python2 和 python3的区别[附实例]
    两种判断(抓取)网页编码的方法【python版】
    python用两种方法实现url短连接
    2013年1月编程语言排行榜榜单: ObjectiveC继续增长
    年初给力!教你自己动手做手机APP应用!!
    [原创]用python求第1000个质数的值
    linux下如何安装配置redis及主从配置
    第四次博客作业结对项目
    2sat的一些总结
  • 原文地址:https://www.cnblogs.com/ericwen/p/3714823.html
Copyright © 2011-2022 走看看