一直想要实现对Azure上跑的虚机进行定期的自动备份。在网上搜了一下有关的解决方案,发现一个不错的帖子,是基于国外的Azure服务做的。基本原理就是利用Azure的Automation(自动化)服务来写PowerShell脚本完成关机、备份、开机。最近发现国内Azure也有了“自动化”服务,便决定把这个贴子里说到的方法搬到国内Azure上试一试。

首先,你会看到在左侧菜单里有“自动化”的服务。

选择“新建”>>“自动化”>>“运行手册”>>“快速创建”。这里有几项信息要填。

  • RUNBOOK名称:这里需要给你的脚本取个名字,比如“MyTestRunbook”,这里我用了“BackupMoodleVM”这个名字
  • 说明:可以不填
  • 自动管理账户:第一次用“自动化”服务必须要建一个管理账户,也需要取个名字,比如“MyAutomationAccount”,这里我用了“automation4mcai”这个名字
  • 订阅:选择目标订阅
  • 区域:选择中国北部或东部

建完服务后,需要上传几个额外的脚本。

首先,打开服务,点击上面菜单里的“资产”,这里已经有了不少缺省的模块,都是PowerShell和Azure基础功能有关的。

在屏幕下方点击“导入模块”,上传 AzureBackupFunction.zip 这个文件。这个文件是在 QNDAzureBackup.zip 的基础上略作修改的。打开这个zip文件里面有一个文件夹和两个PowerShell文件。我修改了.PSM1这个文件里两行命令,让它可以在国内Azure上工作。

$dstContext = new-azurestoragecontext -StorageAccountName $backupStorageAccountName -StorageAccountKey (Get-AzureStorageKey -StorageAccountName $backupStorageAccountName).Primary -environment
"AzureChinaCloud"

$srcContext = new-azurestoragecontext -StorageAccountName $srcStgAccountName -StorageAccountKey (Get-AzureStorageKey -StorageAccountName $srcStgAccountName).Primary -environment
"AzureChinaCloud"

上传完成后,可以在“资产”列表里看到这个“AzureBackupFunction”模块。点击这个新的模块,确认下面的“活动”有“Backup-AzureVM”这个命令的名字。

然后,点击上面菜单里的“RUNBOOKS”,这里可以看到我新建的“BackupMoodleVM”这个名字。这里还有一个文件要上传,点击屏幕下面的“导入”,上传 Connect-AzureVM.ps1 这个文件。这个脚本内容是从这个博客帖子里得到的,但也略作修改,为了可以在国内Azure上工作。

Add-AzureAccount -Credential $AzureOrgIdCredential -environment "AzureChinaCloud" | Write-Verbose


上传完成后,可以开始写我们自己的脚本了。点击“BackupMoodleVM”,在上面的菜单选择“创作”,会进入“草稿”编辑器。粘贴一下脚本内容。

workflow BackupMoodleVM

{

param

(

[Parameter(Mandatory=$true)]

[String] $password

)



# Set up variables

$AzureSubscriptionName = "CaiLang Subscription"

$AzureOrgId = "user@cailang.partner.onmschina.cn"

$AzurePassword = $password | ConvertTo-SecureString -AsPlainText -Force

$AzureOrgIdCredential = New-Object System.Management.Automation.PSCredential($AzureOrgId,$AzurePassword)

$ServiceName = "moodle-cloudservice"

$VMName = "moodlevm"

$StorageAccountName = "cailangstorage"

$backupContainerName = "vm-backup"



# Set up Azure connection by calling the Connect-Azure runbook

$Uri = Connect-AzureVM -AzureSubscriptionName $AzureSubscriptionName -AzureOrgIdCredential $AzureOrgIdCredential -serviceName $ServiceName -VMName $VMName



# Stop Azure VM

Stop-AzureVM -ServiceName $ServiceName -Name $VMName -StayProvisioned



# Backup Azure VM

Backup-AzureVM -serviceName $ServiceName -VMName $VMName -backupContainerName $backupContainerName -backupStorageAccountName $StorageAccountName –includeDataDisks



# Start Azure VM

Start-AzureVM -ServiceName $ServiceName -Name $VMName

}

解释一下需要配置的对象。

  • AzureSubscriptionName:这个是虚机所在订阅的名字
  • AzureOrgId:这个是Azure的登陆用户名
  • ServiceName:这个是虚机挂靠的云服务名字
  • VMName:目标虚机的名字
  • StorageAccountName:用来备份虚机硬盘的存储账号
  • backupContainerName:用来备份虚机硬盘的容器名字

大家也可以根据自己的需求将这些对象都放到参数配置里,就像password那样,在运行时在输入。编辑完成后,点击屏幕下方的“测试”,确保脚本可以跑起来,最后点击“发布”。别忘了发布刚才导入的Connect-AzureVM脚本。

在运行时,我遇到以下的错误。这是来自于Connect-AzureVM脚本中尝试去那虚机的证书的操作,个人认为可以忽略这个错误,我备份的是Ubuntu系统。

Error: Get-AzureCertificate : Cannot validate argument on parameter 'Thumbprint'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

At Connect-AzureVM:63 char:63



+ CategoryInfo : InvalidData: (:) [Get-AzureCertificate], ParameterBindingValidationException

+ FullyQualifiedErrorId : 

ParameterArgumentValidationError,Microsoft.WindowsAzure.Commands.ServiceManagement.Certificates.GetAzureCertificate

之后就可以配置“计划日程”来定期备份虚机了。

如果你有任何疑问,欢迎访问MSDN社区,由专家来为您解答Windows
Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。

本文转载自: http://blog.csdn.net/u014296016/article/details/44920687

体验Azure的 Automation “自动化” 服务预览版的更多相关文章

  1. 微软发布Azure Stack第一个技术预览版

    为了提升商业灵敏度和加快创新步伐,各个企业都在迅速地转向云服务.在微软,我们已经见到微软智能云Azure的飞速发展和使用,每月我们都有近十万的新增订阅量.然而,我们也了解到还有很多企业在完全移到公有云 ...

  2. Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集

     Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...

  3. 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能

    客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...

  4. 微软推出首个Microsoft Azure Stack技术预览版

    Mike Neil,微软公司企业云副总裁 怀着对于提高业务灵活性.加速创新的期待,很多企业正在向云平台迅速迁移.伴随着这样的趋势,我们也见证了微软智能云Azure业务在全球市场的快速增长--每个月近1 ...

  5. 宣布发布全新的 Windows Azure 缓存预览版

    全新 Windows Azure 缓存的预览版现已发布.此托管服务可以提供闪电般的数据访问速度,以帮助您构建更具可伸缩性.响应更快的应用程序. 详情如下: ·    托管式缓存:这一全新的托管服务为需 ...

  6. 宣布发布 Windows Azure SDK 2.2,正式发布 Windows Azure Backup 和 Hyper-V 恢复管理器预览版

    开发人员正逐渐转向云计算,因为它具有众多优势,包括成本.自动化和让开发人员专注于应用程序逻辑的能力.我们很高兴地宣布,继推出 Visual Studio 2013 之后,今天将发布 Windows A ...

  7. Azure SQL 数据库最新版本现已提供预览版

     Tiffany Wissner  数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...

  8. Azure SQL 数据库的灵活缩放预览版简介

    Eron Kelly SQL Server 产品管理部门产品市场营销总经理 几天前,我们宣布了发布 Azure SQL 数据库的灵活缩放公共预览版.新增的灵活缩放功能通过简化开发和管理,简化了扩展和缩 ...

  9. WSL2(预览版)体验笔记

    WSL2安装 WSL2在今年5月份Microsoft Build大会上发布了,但至今Windows10一直没收到更新推送,我想这么久过去就算没进入正式,至少也到了RC版了吧,于是开始折腾准备体验一把. ...

随机推荐

  1. Python垃圾回收机制详解

    一.垃圾回收机制 Python中的垃圾回收是以引用计数为主,分代收集为辅.引用计数的缺陷是循环引用的问题. 在Python中,如果一个对象的引用数为0,Python虚拟机就会回收这个对象的内存. #e ...

  2. select&pselect/poll&ppoll/epoll

    select/pselect, poll和epoll的区别 select,epoll,poll比较 select,poll,epoll进化 Handling of asynchronous event ...

  3. excle,aspose.cells 公式字段值取不到 xmls转xml

    问题: 一,单元格如果是公式的,读出值为0 aspose.cells 4.4.0.5版本 由于太低,读xmls后缀的excel文件时,发现如果此列是公式算出来的,值是获取不到的.获取到的值一直是0 二 ...

  4. POJ 2151 概率DP

    主要的子问题是每一个队伍有一个做出题目的概率,求做出k个题目的概率.简单的简单的组合数DP.想清楚即可. 1: #include <iostream> 2: #include <cs ...

  5. C#学习笔记---基础入门(二)

    枚举 枚举是被命名的整型常数的集合:枚举类型的变量只有赋值后才能使用:不同枚举中的枚举值可以重名:可以自定义枚举值. enum Playstates {            跑, 跳,下滑,左转,右 ...

  6. 常见的仿Flash图片轮播效果

    现在基本在很多网站上都能看到轮播效果,虽然有点烂大街的赶脚,但是这个效果确实很好看,很时尚,今天分享下代码相对较少的轮播框架,望采纳 . ①向左滑动: 思路: 将几个图片用分别用几个 li 包住,并且 ...

  7. EL表达式中如何截取字符串

    EL表达式中如何截取字符串 可以截取,用fn函数:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/ ...

  8. [转载]C#中各种计时器

    1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...

  9. Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesian methods?

    Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesia ...

  10. 团体程序设计天梯赛-练习集L1-007. 念数字

    L1-007. 念数字 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 翁恺 输入一个整数,输出每个数字对应的拼音.当整数为负数时,先 ...