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
How to create a batch of VMs with PowerShell的更多相关文章
- How to remove a batch of VMs and related Disks
Foreword Need to remove a batch of VMs, which named with same prefix or belong to same Cloud Service ...
- Azure Functions + Azure Batch实现MP3音频转码方案
客户需求 客户的环境是一个网络音乐播放系统,根据网络情况提供给手机用户收听各种码率的MP3歌曲,在客户没购买歌曲的情况下提供一个三十秒内的试听版本.这样一个系统非常明确地一个需求就是会定期需要将一批从 ...
- run commands in linux shell using batch file
adb shell as root after device rooted once device rooted, we must perform "su" before we g ...
- Spring Batch(0)——控制Step执行流程
Conditional Flow in Spring Batch I just announced the new Learn Spring course, focused on the fundam ...
- 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...
- SalesForce 入门
标签: Salesforce.com 一开始是一个云端的销售自动化(Sales Force Automation, SFA)以及客户关系管理工具(Customer Relationship Manag ...
- ContentProvider官方教程(7)3种访问形式:批处理、异步访问、intent间接访问(临时URI权限)
Alternative Forms of Provider Access Three alternative forms of provider access are important in app ...
- 通过SCVMM分配SMB 3.0 文件共享
1.创建SMB群集共享,赋予Hyper-V主机. Hyper-V群集名称.Hyper-V管理员.Hyper-V服务账户完全控制权限 2.VMM提供程序导入 文件服务器(运行方式账户要对文件服务器群集的 ...
- [转]Reducing script compile time or a better workflow to reduce excessive recompiling
http://forum.unity3d.com/threads/148078-Reducing-script-compile-time-or-a-better-workflow-to-reduce- ...
随机推荐
- activiti入门
一.Activiti简介 Activiti 是一个针对商务人士. 开发人员和系统管理员的轻量级的工作流和业务流程管理 (BPM) 平台.它的核心是Java的高速和可靠的 BPMN 2 流程引擎.它是开 ...
- Linux磁盘管理之设备文件详解04
Linux一切接文件,除了普通文件和目录文件,还包括一些其它的特殊文件:块设备文件.字符设备文件.套接字文件.链接文件等.今天这里主要说一下常见的块设备文件和字符设备文件,这2类是最常见的设备文件类. ...
- union all 与order by的连用
昨天工作过程中发现一个奇怪的地方: 代码段A: 1---select * from table1 2---order by no 3---union all 4---select * ...
- 深入理解TCP(二)
上一篇http://www.cnblogs.com/whc-uestc/p/4715334.html中已经讲到TCP跟踪一个拥塞窗口来(cwnd)提供拥塞控制服务,通过调节cwnd值以控制发送速率.那 ...
- Linux 下从头再走 GTK+-3.0 (一)
原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK . 这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门 ...
- Android Studio中使用android:src="@drawable/ic_launcher"报错
今天尝试着安装了Android Studio,界面确实不错,列表什么的也改了很多. 然后新建工程,习惯性在activity_main那里加上一段代码测试看看: <ImageView androi ...
- RCC BUCK-BOOST变压器设计
电路处于Buck-Boost DCM模式,最恶劣情况为输入电压最低时.取频率为f 以下图为例: 1.MOS耐压选择: Vmos≥Vinmax+Vout+80 2.保证磁芯不饱和且始终工作在DCM模式 ...
- No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案
No resource found that matches the given name 'Theme.AppCompat.Light 的完美解决方案 首先这个问题的产生是由于缺少Theme.App ...
- JAVA中关于并发的一些理解
一,JAVA线程是如何实现的? 同步,涉及到多线程操作,那在JAVA中线程是如何实现的呢? 操作系统中讲到,线程的实现(线程模型)主要有三种方式: ①使用内核线程实现 ②使用用户线程实现 ③使用用户线 ...
- 通过Hander进行界面刷新
Timer timer; TimerTask task; Handler handler;//先声明这3个变量 //在onCreate方法内 handler = new Handler(){ @Ove ...