#此脚本用于 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. nagios对windows流量的检测

    windows下用于和 nagios 整合监控的方式主要有三种:nsclient++ .nrpe_nt.SNMP.三者各自的特点主要如下: 1.nsclient++比较成熟稳定,文档也丰富,内置很多了 ...

  2. heartbeat3.x部署安装

    使用Heartbeat构建Linux双机热备系统 本文档版本号: V1.0 版 本 历 史 版本号 更新时间 说 明 创建者 V1.0 2013-3-23 修改版 金桥 1 部署环境 OS: Red ...

  3. CentOS 6.5远程连接工具x shell

    安装X shell 在Window系统下远程连接Linux,x shell只是一种远程连接工具,类似工具还有CRT.VNC.putty. 以下是安装X shell的注意事项 此选项中,如不把——初始数 ...

  4. 你忘记的java运算符

    当整数被0除时会得到一个无穷大,或者nan, 所以会抛出数据溢出的异常.

  5. java中有关socket通信的学习笔记

    最近做的项目中使用到了一些基于java的socket长连接的一些功能,用来穿透有关行业的网闸.用到了也就学习了一下,下面是对学习内容的一个笔记,记录一下也希望有兴趣的同学可以参考一下,加深对javas ...

  6. 1.16 sqoop options-file参数进行运行任务

    sqoop的options-file参数可以像hive的-f 参数那样,执行一个脚本文件,而不是直接在命令行执行: 其中,此脚本文件要遵循一定的格式:参考链接:http://sqoop.apache. ...

  7. Flutter实战视频-移动电商-02.Flutter实战建立项目和编写入口文件

    02.Flutter实战建立项目和编写入口文件 创建项目: flutter create flutter_shop 创建完成之后呢,它会提示我们, 进入flutter_shop的目录,然后执行flut ...

  8. (3)ASP.NET Core 服务生命周期

    1.前言 在ConfigureServices方法中的容器注册每个应用程序的服务,Asp.Core都可以为每个应用程序提供三种服务生命周期:●Transient(暂时):每次请求都会创建一个新的实例. ...

  9. 阿里云的opensearch

    官方文档:https://help.aliyun.com/document_detail/29104.html?spm=a2c4g.11186623.6.544.5215187be2TnnD

  10. CF954I Yet Another String Matching Problem(FFT+并查集)

    给定两个字符串\(S,T\) 求\(S\)所有长度为\(|T|\)子串与\(T\)的距离 两个等长的串的距离定义为最少的,将某一个字符全部视作另外一个字符的次数. \(|T|<=|S|<= ...