Azure
文章平均质量分 80
远行的风
喜欢写生 编程 音乐 设计 喜欢把自己的想法变成实实在在的东西 喜欢安静的做一些事情,网易Blog:http://khome.blog.163.com
展开
-
[Azure]Azure Storage Access Policy使用小实验
Azure Storage的Container除了可以设置Public Access Level之外:还可以定义一些Stored Access Policy:Stored Access Policy是属于单个容器的,不同容器之间的Stored Access Policy是互相独立的。Stored Access Policy可以用于生成SAS Token(Shared Access Signatur...原创 2018-03-06 18:22:06 · 988 阅读 · 0 评论 -
[Azure]ARM模式托管磁盘的快照与还原[2]——删除与恢复
本文中包含两个脚本,一个是删除托管磁盘快照的脚本,一个是使用托管磁盘快照还原磁盘的脚本。比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:删除快照的脚本:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Man原创 2017-08-21 17:44:16 · 729 阅读 · 0 评论 -
[Azure]ARM模式托管磁盘的快照与还原[1]——创建与查看
本文中包含两个脚本,一个是托管磁盘的快照创建脚本,一个是托管磁盘查看快照的脚本。比较简单,只是几个命令的调用,这里就不详细解释具体的语句意义了,大家直接看脚本吧:创建快照的脚本:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory原创 2017-08-21 17:11:31 · 439 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[4]——从快照还原虚拟机
这个还原脚本有一个小前提,就是原虚拟机不能先删除,原因是为了简化操作和参数,脚本会从原来虚拟机的属性中读取资源组,虚拟网络,可用性集等属性,然后直接利用原虚拟机的某个时间点的快照在和原虚拟机同一子网下面创建出一台类似的虚拟机。新的虚拟机由于不能使用原来的网络接口和IP地址,所以会重新生成这些对象。如果希望将原虚拟机删除,可以在这个脚本的基础上进行酌情修改,比如可以先记录原虚拟机的各种信息,然后原创 2017-08-05 12:55:39 · 1276 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[3]——清空虚拟机快照
继续上一小节,清空快照比删除某组虚拟机磁盘快照要更容易一些,不需要进行区分或者分区,我们遍历所有虚拟机的磁盘,列出全部快照删除即可,脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionName, [Parameter(Mandatory = $true)] [string]$Re原创 2017-08-05 12:42:57 · 442 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[2]——删除快照
前面说到整机快照,这一节做一下快照的删除。分为两个脚本,删除单个快照和删除全部快照,思路稍有不同,所以分别来做。删除单个快照相对比较复杂,我们在前面说过,制作整机快照的时候,我们会先做 OS Disk 的快照,做好后再做 Data Disk 的快照,这样我们就可以从 OS Disk 的时间作为基准点来把 Data Disk 的快照找到。脚本中的 FindMatchSnapshot 方法就是原创 2017-08-05 12:36:48 · 534 阅读 · 0 评论 -
[Azure]ARM虚拟机整机磁盘快照[1]——创建快照
这一篇分为三个部分,创建整机快照,删除虚拟机快照,从快照还原虚拟机。第一部分先介绍快照功能,创建快照的思路比较简单,利用 Microsoft.WindowsAzure.Storage 库中的方法来获取 Blob 并为其创建快照。由于是对虚拟机进行整机磁盘快照,所以做的时候先要获取虚拟机的 OS Disk 和 Data Disk 的信息,获取出来后,再针对这些磁盘全部做一遍快照就好了。需要注意的原创 2017-08-05 12:18:24 · 1331 阅读 · 0 评论 -
[Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(非托管磁盘)
使用Azure虚拟机经常会遇到无法连接的问题,比如我们修改了虚拟机防火墙,修改了注册表,修改了配置文件,系统磁盘文件系统挂掉了等等。遇到这种问题的时候,由于Azure没有开放控制台登录虚拟机的功能,所以只能将原来的虚拟机以保留磁盘的方式删除掉,然后将系统磁盘挂载到其他机器上修复各种问题,再使用修复后的磁盘重新创建出虚拟机来。对于经典虚拟机(ASM)来说,挂盘后的重建可以通过界面完成原创 2017-08-18 09:29:36 · 481 阅读 · 0 评论 -
[Azure]使用Microsoft Azure Storage Explorer制作快照并恢复
Microsoft Azure Storage Explorer的下载地址:http://storageexplorer.com/ 下载安装后,在View->Account Management中添加Azure存储账号: 选择Add anaccount…: 选择Azure China: 登陆后,从加载出来的订阅中选择需要连接的订阅,会原创 2017-08-03 20:22:45 · 2331 阅读 · 0 评论 -
[Azure]ARM模式下删除虚拟机挂盘修复后恢复的脚本(托管磁盘)
使用Azure虚拟机经常会遇到无法连接的问题,比如我们修改了虚拟机防火墙,修改了注册表,修改了配置文件,系统磁盘文件系统挂掉了等等。遇到这种问题的时候,由于Azure没有开放控制台登录虚拟机的功能,所以只能将原来的虚拟机以保留磁盘的方式删除掉,然后将系统磁盘挂载到其他机器上修复各种问题,再使用修复后的磁盘重新创建出虚拟机来。对于经典虚拟机(ASM)来说,挂盘后的重建可以通过界面完成,但原创 2017-08-17 20:15:28 · 650 阅读 · 0 评论 -
[Azure]使用Powershell调整ARM虚拟机的系统磁盘和数据磁盘大小
要调整ARM虚拟机的磁盘大小,首先需要将虚拟机在管理界面关闭掉。 关闭虚拟机后,使用下面的命令获取虚拟机对象:$vm= Get-AzureRmVm -ResourceGroupName -Name 查看系统盘和数据盘:PSC:\Users\DanielHX> $vm.StorageProfile.OsDiskOsType : Windows原创 2017-08-17 13:57:14 · 976 阅读 · 0 评论 -
[Azure]使用Powershell将ARM虚拟机(托管磁盘)加入可用性集
前面一篇Blob说明了非托管磁盘虚拟机如何使用Powershell通过重建的方式加入可用性集,这一篇给大家提供托管磁盘的版本。托管磁盘其实与非托管磁盘的代码几乎一样,区别仅仅在于托管磁盘添加磁盘的方式以及可用性集的类型稍有不同,思路是一样的,话不多说,我们直接看代码:param( [Parameter(Mandatory = $true)] [string]$Subscr原创 2017-08-16 19:54:48 · 674 阅读 · 1 评论 -
[Azure]使用Powershell将ARM虚拟机加入可用性集
Azure ARM模式下创建的虚拟机只有一次机会加入可用性集,也就是在这台虚拟机新创建的时候,创建完成后,就不能变更可用性集的设置了。而偏偏可用性集又与负载均衡等功能密切相关,只有加入同一可用性集的虚拟机才能配置负载均衡等功能,所以这就尴尬了,只能删除虚拟机保留磁盘,然后再重建虚拟机将其加入可用性集。下面的脚本可以帮助自动完成这个过程,首先脚本会收集当前虚拟机的信息(基本信息,磁盘,网络等原创 2017-08-15 16:41:00 · 578 阅读 · 1 评论 -
[Azure]为ARM虚拟机配置Powershell侦听(HTTP和HTTPS)
ARM虚拟机默认只有RDP 的远程连接方式,我们可以在机器创建好后,手动为虚拟机配置 Powershell的侦听。这里只是使用Azure ARM 虚拟机进行一个简单的演示,对于Windows Server下面的方法其实是通用的。 首先我们创建一台Windows Server 2012 R2 的虚拟机,可以在防火墙中添加 TCP 5985和 TCP59原创 2017-08-02 15:59:13 · 1103 阅读 · 1 评论 -
[Azure]如何定位虚拟机内部附加的数据磁盘
转载自https://docs.azure.cn/zh-cn/articles/compute/aog-virtual-machines-howto-loc-data-disk现象描述在很多场景下,客户会挂载多个数据磁盘到虚拟机上,为了提高性能和易扩展性,会使用到 raid 或者 lvm 逻辑卷来组合磁盘使用,在进行数据迁移和备份时,会涉及到数据磁盘的管理,由于数据磁盘在虚拟机转载 2017-08-25 12:34:23 · 531 阅读 · 0 评论 -
[Azure]使用Powreshell跨区域拷贝托管磁盘
针对托管磁盘目前还没有提供直接的API或者任何借口可以进行跨区域拷贝,所以暂时只能通过一个相对取巧的方法,就是先使用托管磁盘“导出”这个功能生成一个可访问的Uri,然后将这个Uri作为源拷贝到目标区域,然后在目标区域使用拷贝得到的vhd文件创建一个托管磁盘。完成后,将过程中创建的一些临时的存储等数据都清除掉即可。需要注意的问题是,经过实际测试,通过Powershell使用vhd创建得到托管原创 2017-08-22 15:27:43 · 444 阅读 · 0 评论 -
[Azure]ARM中使用Azure Powershell批量规划虚拟网络
ARM模式中为虚拟网络和子网的创建提供了相关的命令,因此可以很方便地根据具体的拓扑来使用命令创建,节约人力时间。涉及到的两条命令:New-AzureRmVirtualNetworkAdd-AzureRmVirtualNetworkSubnetConfig刨去网络安全组的配置,我们单纯利用上面两条命令做了一个简单的脚本用于批量创建虚拟网络:Function Cre原创 2017-09-05 15:02:06 · 335 阅读 · 0 评论 -
[Azure]通过waagent代码找到临时磁盘的设备名
Azure的Linux虚拟机默认会有一个临时磁盘,正常情况下设备名是/dev/sdb,但是由于设备识别顺序是随机的,所以重启的时候,临时磁盘的设备名可能未必是/dev/sdb,那么waagent是如何将/dev/sdb挂在到/mnt/resource下的呢?waagent相关代码都在/usr/lib/python2.7/site-packages/azurelinuxagent目录下(具体分析过程...原创 2018-02-28 17:51:23 · 1010 阅读 · 0 评论 -
[Azure]使用Powershell导出所有订阅下的ARM虚拟机的信息
针对脚本中涉及到的知识点说明:1. 脚本输出结果调用office的excel模块输出到一个excel的sheet中2. 脚本中包含了通过powershell控制excel的cell格式,例如对齐方式,边框样式等等,行列宽度高度自适应(autofit),以及锁定(freeze)首行首列的方法3. 由于ARM模式下虚拟机,IP,网卡这些资源都是独立的,互相之间引用,如果拿到每一台虚拟机信息原创 2018-02-07 16:32:35 · 903 阅读 · 0 评论 -
[Azure]Azure虚拟机代理服务(waagent)代码简单分析
我们在Azure中创建一台CentOS7.4的虚拟机,首先我们看一下/sbin/waagent这个执行文件:import osimport impimport sys if __name__ == '__main__' : import azurelinuxagent.agent as agent """ Invoke main原创 2018-01-23 17:59:32 · 1295 阅读 · 0 评论 -
[Azure]使用Powershell获取ASM和ARM存储的实际使用量
在下面两篇的基础上修改了一点脚本,加入了统计Blob实际大小的部分:http://blog.csdn.net/qwertyupoiuytr/article/details/77527998http://blog.csdn.net/qwertyupoiuytr/article/details/77527951针对ASM下存储账号的脚本:param( [Pa原创 2017-08-30 17:24:58 · 440 阅读 · 0 评论 -
[Azure] 使用azure cli 2.0 利用Key Vault创建自签名证书导入nginx
链接参考:https://docs.azure.cn/zh-cn/virtual-machines/linux/tutorial-secure-web-server安装cli 2.0 的步骤这里略去。首先创建一个新的资源组:az group create --name dantstrg --location chinanorth需要注意一点:上面创建的资源组的名称一定要使用原创 2017-11-24 14:56:20 · 708 阅读 · 0 评论 -
[Azure] Azure负载均衡后的MySQL服务的一次TroubleShooting
工作中遇到的一个具体案例,拿出来简单分析一下,帮助大家了解一下MySQL相关的机制以及Azure平台负载均衡探测的原理。客户环境是在Azure环境中搭建了一个内部负载均衡,后端有2台MySQL服务器做了主从。从后端MySQL服务器上使用show processlist查看发现有一个168.63.129.16的IP进行MySQL的连接:168.63.129.16这个IP实际上是平原创 2017-11-29 16:23:05 · 578 阅读 · 0 评论 -
[Azure]ARM模式下批量清理未使用的托管磁盘
Azure ARM模式下提供了托管磁盘这种磁盘管理方式,虚拟机不用了之后删除掉,磁盘会残留下来造成资源浪费,可以使用下面的脚本进行批量清理。脚本调用 Invoke-Parallel 来实现并发操作,提高清理效率。内容和思路比较简单,脚本内容如下:$scriptSrc = "http://danielnorthstorage.blob.core.chinacloudapi.cn/fordow原创 2017-10-11 16:06:25 · 395 阅读 · 0 评论 -
[Azure]使用Powershell重新生成ARM虚拟机网卡
Azure ARM 的 Windows 虚拟机如果将网卡禁用会直接导致无法连接。解决方法是将网卡的内网IP地址设置为静态地址,将地址的值修改为子网下的另外一个未使用的地址即可。保存设置后,这个操作会为虚拟机分配一个新的网卡。除了上面简单的方法外,还可以使用下面的脚本进行网卡重置,脚本本身相对于上面的操作要复杂的多,之所以写出来,主要是方便更为深入的理解 ARM 模式下各个功能组件互相之间的原创 2017-03-14 19:57:50 · 892 阅读 · 0 评论 -
[Azure]ARM虚拟机更换网络接口(Network Interface)
目前只能使用Azure Powershell进行这个操作,主要涉及到的操作步骤如下:首先,我们需要使用下面的命令在虚拟网络的子网下新添加一个新的网络接口:#获取虚拟网络对象$vnet = Get-AzureRmVirtualNetwork -Name虚拟网络名称> -ResourceGroupName资源组名称>#获取子网对象原创 2017-01-08 21:47:11 · 1917 阅读 · 0 评论 -
[Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(托管磁盘)
对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNam原创 2017-09-08 19:33:39 · 495 阅读 · 0 评论 -
[Azure]使用Powershell删除ARM模式下单台虚拟机及相关资源(非托管磁盘)
对于ARM虚拟机,删除后,默认会保留磁盘文件,以及网络接口,IP地址等资源。所以如果不手工删除,这些垃圾资源会占用账号的资源,产生额外的话费,因此整理了一个脚本用于删除虚拟机的同时将这些垃圾资源清理掉。本脚本针对非托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true)] [string]$SubscriptionNa原创 2017-09-08 19:31:55 · 432 阅读 · 0 评论 -
[Azure]使用Powershell克隆ARM虚拟机(托管磁盘)
ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对托管磁盘虚拟机。脚本如下:param( [Parameter(Mandatory = $true原创 2017-09-08 19:19:47 · 671 阅读 · 0 评论 -
[Azure]使用Powershell克隆ARM虚拟机(非托管磁盘)
ARM模式下对多磁盘虚拟机捕获映像再批量创建需要对磁盘进行一般化操作,然后使用模板进行创建,整个过程比较复杂,因此为了简化操作,整理了一个用于克隆虚拟机的脚本。特别针对多网卡虚拟机以及网卡多IP的情况进行了逻辑处理。但是对于诊断等设置没有进行克隆。注意这个脚本针对非托管磁盘的虚拟机。脚本如下:param( [Parameter(Mandatory = $true)]原创 2017-09-08 19:06:06 · 531 阅读 · 0 评论 -
[Azure]使用Powershell统计ARM存储账号下容器中Blob的使用情况
脚本比较简单,不做过多介绍,唯一需要注意的是考虑到存储账号下文件数量过多的情况(例如十万或者百万级的文件数),为了避免单次Query过多文件数导致卡死或者超时,因此脚本中使用了一个$tokenStop变量限制每次Query Blob的上线(脚本中定义的是5000一次,如果觉得有需要可以改成10000,不要太多)。脚本如下:param( [Parameter(Mandatory原创 2017-08-24 11:30:55 · 447 阅读 · 0 评论 -
[Azure]使用Powershell统计经典存储账号下容器中Blob的使用情况
脚本比较简单,不做过多介绍,唯一需要注意的是考虑到存储账号下文件数量过多的情况(例如十万或者百万级的文件数),为了避免单次Query过多文件数导致卡死或者超时,因此脚本中使用了一个$tokenStop变量限制每次Query Blob的上线(脚本中定义的是5000一次,如果觉得有需要可以改成10000,不要太多)。脚本如下:param( [Parameter(Mandatory原创 2017-08-24 11:30:50 · 488 阅读 · 0 评论 -
Powershell导入并调用公网的ps1脚本中的方法
貌似 Powershell 无法直接导入公网上的一些 “ps1” 文件中的函数,所以测试了一下一个比较鸡贼的方法,分享一下。我们举个例子,之前的 Blog 里面介绍过 Invoke-Parallel 这个方法(http://blog.csdn.net/qwertyupoiuytr/article/details/54142403),但是这个方法非常非常长,如果把这个方法扔到自己的 “ps1”原创 2017-07-13 17:30:04 · 4526 阅读 · 0 评论 -
[Azure]ARM模式下制作映像并创建虚拟机
在操作前需要明确一点:目前ARM模式下只能制作一般化(Generalized)的映像。 我们以一台Windows Server 2012的虚拟机为模板,首先在虚拟机内使用Sysprep进行一般化操作(对于Linux虚拟机,使用waagent -deprovision命令进行相应地一般化操作):一般化完成后,虚拟机会按照我们选择的Shutdown Options变为关机状态:原创 2017-07-13 14:29:04 · 1579 阅读 · 0 评论 -
[Azure]Azure Powershell导出虚拟机及对应磁盘
这里发两个脚本,用于获取某个账号下的所有订阅中的虚拟机的磁盘信息,分ASM和ARM两部分。ASM版本:$Cred= New-Object System.Management.Automation.PSCredential("XXXXXX@XXXXXXXXXXX.partner.onmschina.cn",(ConvertTo-SecureStri原创 2017-02-24 14:39:41 · 977 阅读 · 0 评论 -
[Azure]获取当前订阅下所有ARM虚拟机的PublicIP
functionGetVMIP($vmName,$rgName){ # get VM $vm =Get-AzureRmVM -Name$vmName -ResourceGroupName$rgName-ErrorActionSilentlyContinue # get nic name from nic原创 2017-02-15 14:58:13 · 751 阅读 · 0 评论 -
[Azure]ARM模式下使用Powershell找出订阅中没有被使用的vhd
此脚本通过Powershell来找到ARM订阅中没有被使用的VHD,脚本如下:$storages= Get-AzureRmStorageAccount;foreach ($storagein $storages){ # get storage context $context = $storage.Context; #get p原创 2017-01-17 17:17:15 · 509 阅读 · 0 评论 -
[Azure]Azure经典模式中单个云服务下的虚拟机开机脚本
脚本实现了对于单个云服务中的虚拟机批量开机的功能,并通过循环检测虚拟机状态来判断是否有未成功开机的情况,针对这种情况会再次尝试开机,最终保证虚拟机全部成功开启。脚本内容如下;$cloudServiceName = "";$VMNames="VM Name 1","VMName 2","VM Name 3","VM Name 4","VM Name n";$C原创 2017-01-16 23:39:55 · 853 阅读 · 0 评论 -
[Azure]经典模式下关于云服务配置多个VIP的使用说明
配置方法和使用概述请参考链接:https://azure.microsoft.com/zh-cn/documentation/articles/load-balancer-multivip/ 关于其中的一些说明:要使用多个VIP,云服务中的虚拟机必须要在区域虚拟网络中,否则会报下面这个错误: 默认情况下,云服务会有原创 2017-01-08 23:03:18 · 1903 阅读 · 0 评论 -
[Azure]使用Powershell获取ARM模式下可用的虚拟机平台映像信息
使用下面的Powershell脚本获取可用的Publisher, Offer, Sku,Image:$images= New-Object System.Collections.ArrayList;$location= "China North";$publishers= Get-AzureRmVMImagePublisher-Locat原创 2017-01-08 22:59:04 · 969 阅读 · 0 评论