Azure目前有两种工作模式:ASM和ARM。

在国内的Azure,我们都是使用ASM的模式。但这种模式有很多限制,比如每个VM必须有一个公网地址,部署不能批量部署等等。ARM对Azure的整体架构做了巨大的修改。在ASM中的很多限制都去掉了。下图是两种模式主要的差别:

今年中Azure在中国将全面支持ARM的模式。目前需要注意的是,在China Azure上需要采用PowerShell的版本是1.2.2。最新版的1.3.2和1.4.0有一些服务不能创建。具体的下载地址是:

https://github.com/Azure/azure-powershell/releases/download/v1.2.2-March2016/azure-powershell.1.2.2.msi

本文将介绍一些简单的基于ARM模式的Azure资源的创建和管理方式。

1.创建Resource Group

首先要添加ARM的账户:

Add-AzureRmAccount -EnvironmentName AzureChinaCloud

选择这个账号:

Select-AzureSubscription -SubscriptionName "xxxx" -Account xxxx@xxxx.partner.onmschina.cn

创建Resouce Group

New-AzureRmResourceGroup -Name hwarm01 -Location "China East"

ResourceGroupName : hwarm01
Location : chinaeast
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/42e8b20d-29ec-40a5-b020-b2229f3dda56/resourceGroups/hwarm01

2. 创建网络相关内容

2.1 创建VNet

$subnet1 = New-AzureRmVirtualNetworkSubnetConfig -Name Subnet-1 -AddressPrefix 172.17.1.0/24
$subnet2 = New-AzureRmVirtualNetworkSubnetConfig -Name Subnet-2 -AddressPrefix 172.17.2.0/24
$subnet3 = New-AzureRmVirtualNetworkSubnetConfig -Name Subnet-3 -AddressPrefix 172.17.3.0/24
$vnet = New-AzureRmVirtualNetwork -Name hwarmvnet01 -ResourceGroupName hwarm01 -Location "China East" -AddressPrefix 172.17.0.0/16 -Subnet $subnet1,$subnet2,$subnet3

2.2 创建保留IP

$piplb = New-AzureRmPublicIpAddress -ResourceGroupName hwarm01 -Name hwpiplb01 -Location "China East" -AllocationMethod Static

2.3创建HASet

$has = New-AzureRmAvailabilitySet -ResourceGroupName hwarm01 -Name hwarmhas01 -Location "China East"

2.4 创建负载均衡

$fendip = New-AzureRmLoadBalancerFrontendIpConfig -Name fendip -PublicIpAddressId $piplb.Id
$bendip = New-AzureRmLoadBalancerBackendAddressPoolConfig -Name bendip
$inboundNATRule1 = New-AzureRmLoadBalancerInboundNatRuleConfig -name ssh1 -FrontendIpConfigurationId $fendip.Id -Protocol Tcp -FrontendPort 22122 -BackendPort 22
$inboundNATRule2 = New-AzureRmLoadBalancerInboundNatRuleConfig -name ssh2 -FrontendIpConfigurationId $fendip.Id -Protocol Tcp -FrontendPort 22222 -BackendPort 22
$lbprobe = New-AzureRmLoadBalancerProbeConfig -Name hwlbprobe -Protocol Tcp -Port 80 -IntervalInSeconds 15 -ProbeCount 2
$lbrule = New-AzureRmLoadBalancerRuleConfig -Name hwlbrule -FrontendIpConfigurationId $fendip.Id -BackendAddressPoolId $bendip.Id -ProbeId $lbprobe.Id -Protocol Tcp -FrontendPort 80 -BackendPort 80 -LoadDistribution SourceIP
$lb = New-AzureRmLoadBalancer -Name hwlb -ResourceGroupName hwarm01 -Location "China East" -FrontendIpConfiguration $fendip -BackendAddressPool $bendip -Probe $lbprobe -InboundNatRule $inboundNATRule1 -LoadBalancingRule $lbrule

2.5 创建网卡

$nic1 = New-AzureRmNetworkInterface -Name nic1 -ResourceGroupName hwarm01 -Location "China East" -PrivateIpAddress 172.17.1.4 -SubnetId $vnet.Subnets[0].Id -LoadBalancerBackendAddressPoolId $lb.BackendAddressPools[0].id -LoadBalancerInboundNatRuleId $lb.InboundNatRules[0].Id
$nic2 = New-AzureRmNetworkInterface -Name nic2 -ResourceGroupName hwarm01 -Location "China East" -PrivateIpAddress 172.17.1.5 -SubnetId $vnet.Subnets[0].Id -LoadBalancerBackendAddressPoolId $lb.BackendAddressPools[0].id -LoadBalancerInboundNatRuleId $lb.InboundNatRules[1].Id

3. 创建存储相关的

3.1. 创建存储账号

New-AzureRmStorageAccount -ResourceGroupName hwarm01 -Name hwarmsa01 -Type Standard_LRS -Location "China East"

3.2创建container

$sa = Get-AzureRmStorageAccount -ResourceGroupName hwarm01 -Name hwarmsa01
$sa | New-AzureStorageContainer -Permission Off vhds

3.3 定义OSDisk, DataDisk的URI

$OSdiskName = "hwarmvm01-osdisk.vhd"
$OSDiskURI = $sa.PrimaryEndpoints.Blob.AbsoluteUri + "vhds/" + $OSdiskName
$dataDiskName = "hwarmvm01-datadisk.vhd"
$dataDiskURI = $sa.PrimaryEndpoints.Blob.AbsoluteUri + "vhds/" + $dataDiskName

4. 定义VM的属性

4.1 定义VM基本属性

$vmname = "hwarmvm01"
$vmsize = "Standard_A1"
$cred = Get-Credential -UserName hengwei -Message hwarmvm01
$vm = New-AzureRmVMConfig -VMName $vmname -VMSize $vmsize -AvailabilitySetId $has.Id

4.2定义VMImage的信息

Get-AzureRmVMImage -Location "China East" -PublisherName OpenLogic -Offer CentOS -Skus 6.5

Version FilterExpression Skus Offer PublisherName Location Id

------- ---------------- ---- ----- ------------- -------- --

6.5.20150904 6.5 CentOS OpenLogic chinaeast /Subscriptions/42e8b20d-29ec-40a5-b020-b22...

6.5.20160329 6.5 CentOS OpenLogic chinaeast /Subscriptions/42e8b20d-29ec-40a5-b020-b22...

$vmimage = Get-AzureRmVMImage -Location "China East" -PublisherName OpenLogic -Offer CentOS -Skus 6.5 -Version 6.5.20160329

4.3定义VM操作系统信息

$vm = Set-AzureRmVMOperatingSystem -Linux -VM $vm -Credential $cred -ComputerName $vmname

4.4定义VM磁盘信息

$vm = Set-AzureRmVMSourceImage -VM $vm -PublisherName $vmimage.PublisherName -Offer $vmimage.Offer -Skus $vmimage.Skus -Version $vmimage.Version
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $OSdiskName -VhdUri $OSDiskURI -CreateOption fromImage
$vm = add-AzureRmVMDataDisk -VM $vm -Name $dataDiskName -VhdUri $dataDiskURI -CreateOption empty -DiskSizeInGB 100

4.5定义VM网卡信息

$vm = Add-AzureRmVMNetworkInterface -VM $vm -id $nic1.Id

5. 创建虚拟机

New-AzureRmVM -ResourceGroupName hwarm01 -Location "China East" -VM $vm

用PowerShell在China Azure创建ARM虚拟机的更多相关文章

  1. Java 创建 ARM 虚拟机磁盘类型选择的问题

    问题描述 在Azure 门户创建 ARM 虚拟机时,我们直接可以选择虚拟机的磁盘类型,但是在 Azure Management Libraries for Java 的 API 中我们无法找到直接设置 ...

  2. Azure Powershell使用已有特殊化非托管磁盘创建ARM虚拟机

    生成已有特殊化非托管磁盘的方法主要有如下两种: 1.使用StorageExplorer存储管理工具,复制特殊化磁盘到一个新的容器下 2.New Portal中删除虚拟机,默认vhd文件会保留在存储账号 ...

  3. Python 基于固定 IP 来命名 ARM 虚拟机的实现

    问题描述 希望通过 Python 批量创建 ARM 虚拟机,并且在虚拟机命名时加入固定 IP 信息,方便管理维护. 问题分析 在创建 ARM 虚拟机之前,先创建固定 IP,然后获取固定 IP 地址,创 ...

  4. 通过Azure Powershell获取asm及arm虚拟机的配置信息

    1.asm虚拟机可以使用类似如下Azure Powershell命令获取虚拟机的基本信息,包括发行版本,虚拟机名称及size[备注:虚拟机需要是使用平台image创建的] PS C:\Users\he ...

  5. Azure ARM (15) 根据现有VHD文件,创建ARM VM

    <Windows Azure Platform 系列文章目录> 在很多时候,我们需要根据现有VHD文件,创建ARM VM.在这里笔者简单介绍一下相关的Azure PowerShell 这里 ...

  6. Azure ARM (4) 开始创建ARM Resource Group并创建存储账户

    <Windows Azure Platform 系列文章目录> 好了,接下来我们开始创建Azure Resource Group. 1.我们先登录Azure New Portal,地址是: ...

  7. Azure ARM虚拟机部署反恶意软件-安全扩展

    Azure虚拟机,默认情况下没有安装杀毒软件.如果您有此需求可以通过Azure 扩展进行安装,有关Azure反恶意软件的官方说明请参考:https://docs.azure.cn/zh-cn/secu ...

  8. 使用 Azure CLI 创建 Windows 虚拟机

    Azure CLI 用于从命令行或脚本创建和管理 Azure 资源. 本指南详细介绍如何使用 Azure CLI 部署运行 Windows Server 2016 的虚拟机. 部署完成后,我们连接到服 ...

  9. 使用 Azure 门户创建 Windows 虚拟机

    可以通过 Azure 门户创建 Azure 虚拟机. 此方法提供一个基于浏览器的用户界面,用于创建和配置虚拟机和所有相关的资源. 本快速入门介绍了如何创建虚拟机并在 VM 上安装 webserver. ...

随机推荐

  1. 使用JDK将tomcat变成https访问

    1,今日JDK目录,执行命令 keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore " ...

  2. CSS3透明背景表单

    在线演示 本地下载

  3. 图片的另一种展现—将后台图片编码直接展现为图片

    1.应用场景            开发过程中,遇到这样的需求:需要将服务器上的图片展现在页面上,但是图片所在服务器不是对外的,图片所在服务器与应用服务器也不在同一台机器上,这时候就需要在开发中先将图 ...

  4. 【转载】Android端百度地图API使用详解

    转载地址:http://www.cnblogs.com/rocomp/p/4994110.html 百度地图API简介 百度地图移动版API(Android)是一套基于Android设备的应用程序接口 ...

  5. Spring之rmi实例演示

    环境介绍:本文中服务端客户端使用的都是ssm框架,配置文件分为spring_servlet.xml,spring_service.xml,mybatis.xml 在spring里面使用rmi完成远程调 ...

  6. 【bzoj1036】树的统计[ZJOI2008]树链剖分+线段树

    题目传送门:1036: [ZJOI2008]树的统计Count 这道题是我第一次打树剖的板子,虽然代码有点长,但是“打起来很爽”,而且整道题只花了不到1.5h+,还是一遍过样例!一次提交AC!(难道前 ...

  7. php-fpm docker 容器 搭建

    继续上一篇文章(centos 7 容器的搭建) 下面构建一个php-fpm镜像: dockerfile 文件如下: # # MAINTAINER # DOCKER-VERSION # # Docker ...

  8. HBase-建表(普通建表及预分区建表)

    package com.hbase.HBaseAdmin; import java.io.IOException; import org.apache.hadoop.conf.Configuratio ...

  9. 被人遗忘的MAX_FILE_SIZE文件上传限制大小参数

    在文件上传中,我们经常会要求显 示用户上传文件大小,超过上传限制的文件就会不允许用户上传.虽然我们可以用程序去判断上传文件是否超过限制,但是其实我们的PHP程序是无法判断用户本 地文件大小的.所以等到 ...

  10. SharedPreferences概述

    SharedPreferences概述 一.简介 SharedPreferences简介 上图紫色标注的部分为使用方法. SharedPreferences成员(属性和方法) 二.核心函数及使用实例 ...