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

  • 相关阅读:
    背景图像固定(背景附着)
    css背景图片位置
    2.使用第三种方式做一个多线程操作 3. 使用线程池做一个1到100的偶数之和 4.写一遍生产者与消费者模式 5 写一个字符串的单例设置模式(未完成) 6. 写一个简单工厂着模式
    简单写写
    说说JSON和JSONP区别
    web前端常见的面试题,基础知识点
    优秀网页设计_优秀Web设计的69条设计原则
    PostCSS_自动处理css3属性前缀
    用lnmp架构部署wordpress网站详细步骤
    使用html+css+js实现简易计算器
  • 原文地址:https://www.cnblogs.com/ericwen/p/3714823.html
Copyright © 2011-2022 走看看