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

  • 相关阅读:
    【类似N^N做法的斐波那契数列】【HDU1568】 Fibonacci
    【取对数+科学计数法】【HDU1060】 N^N
    【枚举+数学】【HDU1271】整数对 难度:五颗星
    【欧拉函数】【HDU1286】 找新朋友
    【筛素数表证明】【O[n]】
    【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor
    【gcd+数学证明】【HDU1722】 CAKE
    【贪心】【HDU3177】 搬家问题
    HDU2093 字符串2种不错的读入思路
    tf.argmax()
  • 原文地址:https://www.cnblogs.com/ericwen/p/3714823.html
Copyright © 2011-2022 走看看