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

  1. New-AzureRmResourceGroup -Name hwarm01 -Location "China East"
  2.  
  3. ResourceGroupName : hwarm01
  4. Location : chinaeast
  5. ProvisioningState : Succeeded
  6. Tags :
  7. ResourceId : /subscriptions/42e8b20d-29ec-40a5-b020-b2229f3dda56/resourceGroups/hwarm01

2. 创建网络相关内容

2.1 创建VNet

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

2.2 创建保留IP

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

2.3创建HASet

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

2.4 创建负载均衡

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

2.5 创建网卡

  1. $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
  2. $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. 创建存储账号

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

3.2创建container

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

3.3 定义OSDisk, DataDisk的URI

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

4. 定义VM的属性

4.1 定义VM基本属性

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

4.2定义VMImage的信息

  1. Get-AzureRmVMImage -Location "China East" -PublisherName OpenLogic -Offer CentOS -Skus 6.5
  2.  
  3. Version FilterExpression Skus Offer PublisherName Location Id
  4.  
  5. ------- ---------------- ---- ----- ------------- -------- --
  6.  
  7. 6.5.20150904 6.5 CentOS OpenLogic chinaeast /Subscriptions/42e8b20d-29ec-40a5-b020-b22...
  8.  
  9. 6.5.20160329 6.5 CentOS OpenLogic chinaeast /Subscriptions/42e8b20d-29ec-40a5-b020-b22...
  10.  
  11. $vmimage = Get-AzureRmVMImage -Location "China East" -PublisherName OpenLogic -Offer CentOS -Skus 6.5 -Version 6.5.20160329

4.3定义VM操作系统信息

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

4.4定义VM磁盘信息

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

4.5定义VM网卡信息

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

5. 创建虚拟机

  1. 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. HAproxy 配置参数详解

    HAproxy 配置参数详解 /etc/haproxy/haproxy.cfg # 配置文件 ----------------------------------------------------- ...

  2. [RK3288][Android6.0] USB OTG模式及切换【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/78620960 Platform: RK3288 OS: Android 6.0 Kerne ...

  3. mongodb index 的background 及集群的索引建立

    在数据库建立索引时,默认时"foreground" 也就是前台建立索引,但是,当你的数据库数据量很大时,在建立索引的时会读取数据文件,大量的文件读写会阻止其他的操作,此时在建立索引 ...

  4. JDBC的一些代码

    import java.sql.*; public class jdbc { //JDBC 驱动名及数据库名 URL static final String JDBC_DRIVE = "co ...

  5. css 相对绝对定位

    用Div+CSS进行网站布局时,做一些浮动层等特殊特殊效果时要考虑到定位问题.这就要用到Position属性等.Position属性有四个值:static.fixed.absolute和relativ ...

  6. maven 内置属性有哪些?该如何使用?

    maven 共有6类内置属性: 内置属性(maven预定义,用户可以直接使用的) ${basedir}表示项目的根目录,既包含pom.xml文件的目录: ${version}表示项目版本: ${pro ...

  7. HDFS-文件读取API

    package com.zhen.hdfs; import java.io.IOException; import java.io.InputStream; import java.net.URI; ...

  8. 使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,log4j和logj2,idea控制台信息乱码(文末)

    说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置 ...

  9. shell学习之常用技巧

    cut 切割,-d分隔符,-f指定段号,-c指定第几个字符.d,f用的多些. sort排序,-n按照数字排序,-r反排序. wc -l 查看文件行数. 大道至简,掌握常用的命令就可以了. uniq去重 ...

  10. 在Silverlight中使用SESSION

    首先Session是运行在服务器上的,而Silverlight运行在客户端.因此在Silverlight中使用SESSION的说法并不准确, 只因大家经常这样搜索才起这个名字.   首先Session ...