PowerShell创建ARM虚拟机6合1脚本
来源:互联网 发布:pr淘宝主图视频比特率 编辑:程序博客网 时间:2024/06/03 06:55
PowerShell创建ARM虚拟机6合1脚本
【1】 从平台镜像创建Windows虚拟机
【2】 从平台镜像创建Linux虚拟机
【3】 从通用化镜像创建Window虚拟机
【4】 从通用化镜像创建Linux虚拟机
【5】 从专有VHD创建Windows虚拟机
【6】 从专有VHD创建Linux虚拟机
#------------------------------------------------------------------------------ # User own the risk, otherwise exit.# # Azure PowerShell Version: 3.6.0## Create by Zeno. #------------------------------------------------------------------------------ <###########脚本说明#############################################################1.运行前需创建好资源组、存储账号、虚拟网络、子网2.运行前需在脚本中定义虚拟机大小3.【3】【4】虚拟机默认创建在镜像相同的存储账号4.默认不使用可用性集,如果有需要,请提前创建好可用性集并解锁以下定义 69行 $myAvaSet = Get-AzureRmResourceGroup | Get-AzureRmAvailabilitySet | Select Name,ResourceGroupName,id | Out-GridView -PassThru -Title "Select your AvailibilitySet" 91行 $vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetID $myAvaSet.Id5.默认设置新虚拟机用户名azureuser,密码az.trig.c0m6.默认创建虚拟机操作系统【1】Windows Server 2012 R2 DataCenter,【2】CentOS 7.27.继续创建默认选择相同的资源组、存储账号、子网8.获取镜像参数命令:Get-AzureRmVMImagePublisher -Location "chinanorth" | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku | Get-AzureRmVMImage | Select Version,Skus,Offer,PublisherName,Location |Out-GridView###############################################################################>#登录订阅Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $(Get-Credential -UserName admin@xxx.partner.onmschina.cn -Message Login_AzureChinaCloud) |Out-Null#[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')#用户定义参数$vmSize = "Standard_A2" #定义虚拟机大小############################默认定义虚拟机用户名和密码$user="azureuser"$pwd=ConvertTo-SecureString "az.trig.c0m" -AsPlainText -Force$cred=New-Object System.Management.Automation.PSCredential($user,$pwd)#选择执行操作$Select = Read-Host -prompt "【1】 Create Windows VM from AzureImage【2】 Create Linux VM from AzureImage【3】 Create Windows VM from your Template VHD【4】 Create Linux VM from your Template VHD【5】 Create Windows VM from Upload VHD【6】 Create Linux VM from Upload VHD`n`tPlease Select" If ($Select -gt 6 -or $Select -lt 1){write-host "`n Please select number 1/2/3/4/5/6 then Enter!" -ForegroundColor Yellow;Exit}#选择虚拟机资源组、子网$ResourceGroup = Get-AzureRmResourceGroup | Select ResourceGroupName,Location | Out-GridView -PassThru -Title "Select your ResourceGroup"if(! $ResourceGroup){Write-Host "`n`tFAILED: Resource Group must be needed!" -ForegroundColor Red;Exit}$Subnet = Get-AzureRmVirtualNetwork | Get-AzureRmVirtualNetworkSubnetConfig | Select Name,Id,AddressPrefix| Out-GridView -PassThru -Title "Select your Subnet"if(! $Subnet){Write-Host "`n`tFAILED: You must select a subnet" -ForegroundColor Red;Exit}#存储账号定义if ($Select -eq 1 -or $Select -eq 2){$StorageAccount = (Get-AzureRmStorageAccount | Select StorageAccountName,ResourceGroupName,Location | Out-GridView -PassThru -Title "Select your Storage Account").StorageAccountNameif(! $StorageAccount){Write-Host "`n`tFAILED: You must select a storage account" -ForegroundColor Red;Exit}}if ($Select -ge 3){#输入VHD文件完整路径$vhdURI = Read-Host -prompt "`n`tPlease input the VHD URi"#$vhdURI = [Microsoft.VisualBasic.Interaction]::InputBox("Enter your VHD file path like: https://demo.blob.core.chinacloudapi.cn/vhds/myos.vhd", "VHD Image File")if(!$vhdURI -or !($vhdURI.StartsWith("https") -and $vhdURI.EndsWith("vhd"))) {Write-Host "`n`tFAILED: VHDimage File Path is Wrong" -ForegroundColor Red;Exit}$storage = $vhdURI.Split(‘/’)[2]}do{#$myAvaSet = Get-AzureRmResourceGroup | Get-AzureRmAvailabilitySet | Select Name,ResourceGroupName,id | Out-GridView -PassThru -Title "Select your AvailibilitySet"#默认定义参数$vmName = Read-Host -prompt "`n`tPlease input new VM name"if (! $vmName){ Write-Host "`n`tFAILED: You must input a VM name" -ForegroundColor Red;Exit}if ((Get-AzureRmVM).Name -contains $vmName){ Write-Host "`n`tFAILED: You have the same VM already!" -ForegroundColor Red;Exit}$rg = $ResourceGroup.ResourceGroupName$location = $ResourceGroup.Location$publicIpName = "$vmName" + "-ip"$NICName = ("$vmName" + "-nic").ToLower()$diskname = "$vmName" + "-$(Get-Date -Format "yyyyMMddHHmm")" + "-osDisk"#创建公共IPwrite-host "`n`tCreate Public Ip: $publicIpName!" -ForegroundColor Green$myPublicIp = New-AzureRmPublicIpAddress -Name $publicIpName -ResourceGroupName $rg -Location $location -AllocationMethod Dynamic#创建虚拟机网络接口write-host "`n`tCreate Newwork Interface: $NICName!" -ForegroundColor Green$myNIC = New-AzureRmNetworkInterface -ResourceGroupName $rg -Name $NICName -Location $location -SubnetId $Subnet.Id -PublicIpAddressId $myPublicIp.Id#虚拟机通用配置write-host "`n`tCreate VM: $vmName!" -ForegroundColor Green$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize #-AvailabilitySetID $myAvaSet.Id$vmConfig = Add-AzureRmVMNetworkInterface -VM $vmConfig -Id $myNIC.Idif ($Select -eq "1"){ $osDiskUri = "https://$StorageAccount.blob.core.chinacloudapi.cn/vhds/$diskname.vhd"#Windows虚拟机配置(使用Windows平台镜像)$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $osDiskUri -CreateOption fromImage$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2012-R2-Datacenter" -Version "latest"} elseif ($Select -eq "2") { $osDiskUri = "https://$StorageAccount.blob.core.chinacloudapi.cn/vhds/$diskname.vhd"#Linux虚拟机配置(使用Linux平台镜像)$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $osDiskUri -CreateOption fromImage$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred$vmConfig = Set-AzureRmVMSourceImage -VM $vmConfig -PublisherName "OpenLogic" -Offer "CentOS" -Skus "6.8" -Version "latest"} elseif ($Select -eq "3") { $osDiskUri = "https://$storage/vhds/$diskname.vhd"#Windows虚拟机配置$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $osDiskUri -CreateOption fromImage -SourceImageUri $vhdURI -Windows$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate} elseif ($Select -eq "4") {$osDiskUri = "https://$storage/vhds/$diskname.vhd"#Linux虚拟机配置$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $osDiskUri -CreateOption fromImage -SourceImageUri $vhdURI -Linux$vmConfig = Set-AzureRmVMOperatingSystem -VM $vmConfig -Linux -ComputerName $vmName -Credential $cred} elseif ($Select -eq "5") { #Windows虚拟机配置$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $vhdURI -CreateOption Attach -Windows} elseif ($Select -eq "6") { #Linux虚拟机配置$vmConfig = Set-AzureRmVMOSDisk -VM $vmConfig -Name $diskname -VhdUri $vhdURI -CreateOption Attach -Linux} #创建Azure虚拟机$myvm = $null$myvm = New-AzureRmVM -VM $vmConfig -Location $location -ResourceGroupName $rgIf (! $myvm.IsSuccessStatusCode){ Write-Host "`n`tFAILED: Create Failed" -ForegroundColor Red;Exit}write-host "`n`t【$vmName】 Create Successful!" -ForegroundColor Green$input = Read-Host -Prompt "`n`tEnter to continue? (Y/n)"} until($input -eq "N")"–END OF EXECUTION–"
阅读全文
0 0
- PowerShell创建ARM虚拟机6合1脚本
- 使用 PowerShell 创建 Linux 虚拟机
- 使用 PowerShell 创建 Linux 虚拟机
- Powershell脚本检测Azure账号是否登陆,资源组是否创建,并部署ARM template
- 创建PowerShell脚本数字签名认证
- 使用Azure powershell 创建Azure虚拟机
- 通过powershell来创建Azure虚拟机
- Windows PowerShell 2.0创建调用脚本文件
- libvirt创建虚拟机脚本
- [Azure]使用Powershell输出某台ARM虚拟机的NSG
- [Azure]使用Powershell重新生成ARM虚拟机网卡
- [Azure]使用Powershell将ARM虚拟机加入可用性集
- [Azure]使用Powershell克隆ARM虚拟机(非托管磁盘)
- [Azure]使用Powershell克隆ARM虚拟机(托管磁盘)
- 通过 Powershell 来调整 ARM 模式下虚拟机的尺寸
- 通过 Powershell 来调整 ARM 模式下虚拟机的尺寸
- vMware 5.5 利用vcenter的powershell 批量创建虚拟机
- [Azure]使用Powershell为ASM虚拟机创建快照
- LinearLayout源码简单查看
- RBTree的插入算法
- 传纸条[C++ DP]
- gulp使用分享
- Canvas API
- PowerShell创建ARM虚拟机6合1脚本
- 深入理解Java并发之synchronized实现原理
- properties配置文件+DAO模式记事本案例
- Android RadioButton按钮,点击换图片。
- 手机通过WiFi连接adb
- 在jquery 1.11.1版本中,如何实现jquery 1.9以下版本里面的toggle功能?
- 内网通过nginx请求外网
- Spring MVC 多语言
- ubuntu16.04编译android5.1环境配置