#此脚本用于 Azure 存储账户中已有 vhd 镜像文件创建虚拟机,一般用于做好镜像测试

#-----------------------------------------------------------------Blob中指定vhd创建虚拟机----------------------------------------
#vhd所在blob存储的信息
$destStorageAccountName ="ygwhxstg" #存储账户名称
$destContainerName ="test0115" #VHD所在容器名称
$destStorageAccountKey ="{key}" #key
$fileName="redhat-resourceImage.vhd" #容器中vhd名称 -xxxxxx.vhd

#资源组名称
$resourceGroupName="whxrdtest1" 

#虚拟机信息
$vmname = "retest1" #虚拟机名称 小写
$vmUser="azureuser"#虚拟机用户名
$vmSize="Standard_A4_v2"#虚拟机大小
$osType=1   #0-windows  1-Linux

#订阅登录信息
$subscLogin="{登录名}"
$subscPwd="{密码}"
$securePassword = ConvertTo-SecureString $subscPwd -AsPlainText -Force  #此密码也将作为虚拟机登录密码
$credlogin = New-Object System.Management.Automation.PSCredential ($subscLogin, $securePassword)

$endpoint="core.chinacloudapi.cn"
$fileAbsoluteUri="https://"+$sourceStorageAccountName+".blob."+$endpoint+"/"+$sourceContainerName+"/"+$fileName
$locationStr="China North"
$osdiskurl = "https://"+$destStorageAccountName+".blob."+$endpoint+"/"+$destContainerName+"/" 

#登录并创建指定资源组
Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $credlogin
 #选择要使用的订阅
 Get-AzureRmSubscription | select Name, SubscriptionId
 $subscriptionId=Read-Host "请选择上面列出的订阅ID"
 Write-Host "Selecting subscription '$subscriptionId'";
 Select-AzureRmSubscription -SubscriptionID $subscriptionId;
New-AzureRmResourceGroup -Name $resourceGroupName -Location $locationStr -Force

# Create a subnet configuration
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $resourceGroupName -Location $locationStr -Name MyVNet -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig -Force

#创建一个公网IP地址:
$publicIP=New-AzureRmPublicIpAddress -Name createstfromPIP -ResourceGroupName $resourceGroupName -Location $locationStr -AllocationMethod Dynamic -IpAddressVersion IPv4 -Force  #新建
Get-AzureRmPublicIpAddress -Name createstfromPIP -ResourceGroupName $resourceGroupName #查看刚刚创建的公网IP信息

#创建可用性集:
#$Availabilityset = New-AzureRmAvailabilitySet -Name cranetestAV -ResourceGroupName crane -Location $locationStr

#创建网卡:
$nic=New-AzureRmNetworkInterface -Name VHDNIC -ResourceGroupName $resourceGroupName -Location $locationStr -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIP.Id -Force

#配置要使用的存储账号以及系统盘名称:
$osdiskname = $vmname + "_OSDisk"
$vmOsDisk =$osdiskurl+$osdiskname+".vhd"
$cred = New-Object System.Management.Automation.PSCredential ($vmUser, $securePassword)
$osdiskAbsoluteUri=$osdiskurl+$fileName

#生成虚拟机的配置,将新建的虚拟机放在虚拟网络:

if($osType.Equals(1))#linux创建
{
$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize $vmSize
$vmconfig =Set-AzureRmVMOperatingSystem -VM $vmconfig -Linux -ComputerName $vmname -Credential $cred
$vmconfig =Set-AzureRmVMOSDisk -VM $vmconfig -Name $osdiskname -VhdUri $vmOsDisk  -SourceImageUri $osdiskAbsoluteUri -CreateOption FromImage -Linux
$vmconfig =Add-AzureRmVMNetworkInterface -VM $vmconfig -Id $NIC.Id
}
if($osType.Equals(0)) #windows创建
{
$vmconfig = New-AzureRmVMConfig -VMName $vmname -VMSize $vmSize
$vmconfig =Set-AzureRmVMOperatingSystem -VM $vmconfig  -Windows -ComputerName $vmname -Credential $cred
$vmconfig =#-ProvisionVMAgent -EnableAutoUpdate
$vmconfig =Set-AzureRmVMOSDisk -VM $vmconfig  -Name $osdiskname -VhdUri $vmOsDisk -SourceImageUri $osdiskAbsoluteUri -Caching "ReadWrite" -CreateOption FromImage -Windows
$vmconfig =Add-AzureRmVMNetworkInterface -VM $vmconfig  -Id $nic.Id -Primary
}

#创建虚拟机:
New-AzureRmVM -ResourceGroupName $resourceGroupName -Location $locationStr -VM $vmconfig 

#获得创建信息
$vmList = Get-AzureRmVM -ResourceGroupName $resourceGroupName
$vmList.Name

Azure Powershell blob中指定的vhd创建虚拟机的更多相关文章

  1. Azure ARM (11) ARM模式下,创建虚拟机并配置负载均衡器

    <Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 在前几章中,我们做了准备工作: 1.创建ARM Resouce Group,叫Lei ...

  2. 关于Aazure 使用以前保留的vhd创建虚拟机的基本步骤

    1. 删除vm保留vhd(只删除虚拟机记录,不删除磁盘)2. 拷贝vhd以及status文件到指定的存储账号3. 使用拷贝的VHD创建disk4. 从disk创建vm,指定指定vnet以及cloud ...

  3. Azure PowerShell 在ARM环境下使用指定 vhd(本地化后的磁盘) 来创建虚拟机

    #此脚本用于 Azure 存储账户中已有 vhd 镜像文件创建虚拟机,一般用于做好镜像测试 #----------------------------------------------------- ...

  4. Azure上采用Powershell从已有的VHD创建VM

    刚刚的一篇Blog采用Json Template的方式从已有的VHD创建了一台新的VM.由于Json Template封装的比较好,可以改的内容不多. 下面将介绍通过用Powershell来从已有的V ...

  5. Azure 基础:使用 powershell 创建虚拟机

    在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure ...

  6. Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP

    <Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...

  7. [New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 注:本章内容和之前的[New Portal]Windows Azure Virtual Machine (12) 在本地制作 ...

  8. Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob

    <Windows Azure Platform 系列文章目录> 请读者在参考本文之前,预习相关背景知识:Windows Azure Storage (1) Windows Azure St ...

  9. Azure 中的虚拟网络和虚拟机

    创建 Azure 虚拟机 (VM) 时,必须创建虚拟网络 (VNet) 或使用现有的 VNet. 此外,还需要确定如何在 VNet 上访问 VM. 在创建资源之前必须做好规划,确保了解网络资源的限制. ...

随机推荐

  1. JS-React:React.js

    ylbtech-JS-React:React.js react (软件行业名词) React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意 ...

  2. 【221】◀▶ IDL GUI 函数说明

    参考:GUI - Dialogs Routines参考:GUI - Widgets Routines参考:GUI - Compound Widgets Routines 01   DIALOG_MES ...

  3. 招聘.Net中高级软件研发工程师

    岗位职责: 1.参与国土不动产系列软件需求分析.系统架构分析与设计: 2.为产品中的复杂功能编写产品开发需求文档: 3.根据设计文档或需求说明完成代码编写.调试.测试和维护: 4.配合上级进行技术决策 ...

  4. 反射invoke()方法

    invoke()方法: 主要是为了类反射,可以在不知道具体类的情况下,根据配置字符串去调用一个类的方法.最简单的方法是可以把方法参数化.    main.invoke():     比如Test类里有 ...

  5. java集合框架之比较器Comparator、Comparable

    参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name ...

  6. ASP.NET页面执行顺序

    原文地址:http://blog.csdn.net/a497785609/article/details/4510335 1.对象初始化(OnInit方法) 页面中的控件(包括页面本身)都是在它们最初 ...

  7. 萌新笔记之堆(heap)

    前言(萌新感想): 以前用STL的queue啊stack啊priority_queue啊,一直很想懂原理,现在终于课上到了priority_queue,还有就是下周期中考,哈哈,所以写几篇blog总结 ...

  8. Telnet 命令格式

    Telnet host 端口 如:Telnet 127.0.0.1 11211 执行命令进入后 ctr +] ,打开回显,并回车即可

  9. 2018ccpc_hn

    A. Easy h-index #include <iostream> #include <algorithm> #include <cstring> #inclu ...

  10. 统一入口&DB代理思想

    参考 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=2650764278&idx=2&sn=b7801fb0780 ...