体验Azure的 Automation “自动化” 服务预览版
一直想要实现对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 “自动化” 服务预览版的更多相关文章
- 微软发布Azure Stack第一个技术预览版
为了提升商业灵敏度和加快创新步伐,各个企业都在迅速地转向云服务.在微软,我们已经见到微软智能云Azure的飞速发展和使用,每月我们都有近十万的新增订阅量.然而,我们也了解到还有很多企业在完全移到公有云 ...
- Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集
Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集 继去年 10 月推出 Windows Azure HDInsight 之后,我们宣布 Windows Az ...
- 宣布发布 Windows Azure 导入/导出服务的预览版以及 Web 和移动解决方案场景的若干增强功能
客户评估基于云的存储解决方案时,面临的挑战之一是以经济高效.安全快速的方式从 Blob 存储区移进和移出大量数据.今天,我们很高兴地宣布发布 Windows Azure 导入/导出的预览版,这款新服务 ...
- 微软推出首个Microsoft Azure Stack技术预览版
Mike Neil,微软公司企业云副总裁 怀着对于提高业务灵活性.加速创新的期待,很多企业正在向云平台迅速迁移.伴随着这样的趋势,我们也见证了微软智能云Azure业务在全球市场的快速增长--每个月近1 ...
- 宣布发布全新的 Windows Azure 缓存预览版
全新 Windows Azure 缓存的预览版现已发布.此托管服务可以提供闪电般的数据访问速度,以帮助您构建更具可伸缩性.响应更快的应用程序. 详情如下: · 托管式缓存:这一全新的托管服务为需 ...
- 宣布发布 Windows Azure SDK 2.2,正式发布 Windows Azure Backup 和 Hyper-V 恢复管理器预览版
开发人员正逐渐转向云计算,因为它具有众多优势,包括成本.自动化和让开发人员专注于应用程序逻辑的能力.我们很高兴地宣布,继推出 Visual Studio 2013 之后,今天将发布 Windows A ...
- Azure SQL 数据库最新版本现已提供预览版
Tiffany Wissner 数据平台营销高级总监 我们之前在11月宣布将提供新的预览版,在该预览版中我们引入了接近完整的 SQL Server 引擎兼容性和更为高级的性能,这些都代表了下一代的 ...
- Azure SQL 数据库的灵活缩放预览版简介
Eron Kelly SQL Server 产品管理部门产品市场营销总经理 几天前,我们宣布了发布 Azure SQL 数据库的灵活缩放公共预览版.新增的灵活缩放功能通过简化开发和管理,简化了扩展和缩 ...
- WSL2(预览版)体验笔记
WSL2安装 WSL2在今年5月份Microsoft Build大会上发布了,但至今Windows10一直没收到更新推送,我想这么久过去就算没进入正式,至少也到了RC版了吧,于是开始折腾准备体验一把. ...
随机推荐
- 为cocos2d-x实现安卓输入框。非全屏,无dialog,绑定到lua
cocos2d-x官方自带的输入框,简直惨不忍睹,在ios还好,在安卓简直了..用过的都知道... 所以为了用户体验,我们自己搞一个吧.输入框这种东西比较特殊,不像按钮.列表框之类的很容易实现,因为涉 ...
- iOS 开发一年总结
收获很多 1. 一个人包办从构思, 设计, 实现, 推广的全过程, 对自己的能力, 特别是能力范围有很大的提升. 以前在公司上班仅仅局限在实现的局域内, 现在在做自己的产品时, 在设计时的取舍, 对工 ...
- 【BZOJ 3098】 Hash Killer II
Description 这天天气不错,hzhwcmhf神犇给VFleaKing出了一道题:给你一个长度为N的字符串S,求有多少个不同的长度为L的子串.子串的定义是S[l].S[l + 1].... S ...
- MyEcpilise引入Maven项目目录不正常,无JRE,无Maven Dependencies
右键项目--> Maven4MyEclipse --> Update Project Configuration
- 我的PHP之旅--XML初步
什么是XML? XML是可拓展标记语言,它和XHTML很像.但它和XHTML的目的性不一样,XHTML负责展示数据,而XML负责保存或交换传输数据. 而且XML可拓展,它没有固定的标签.它的标签可以自 ...
- IOS调用相机相册
#import "SendViewController.h" //只能打开,没有加载图片的代码,老代码,供参考 #import <MobileCoreServices/UT ...
- 反射自动填充model
public static T FillModel<T>(DataRow dr) { ) return default(T); T model = Activator.CreateInst ...
- Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)
远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是 ...
- spoj 390
简单题 记得uva上有个一样的 画个图就好了 #include <cstdio> #include <cmath> const double pi = acos(-1); ...
- java中线程池的使用方法
1 引入线程池的原因 由于线程的生命周期中包括创建.就绪.运行.阻塞.销毁阶段,当我们待处理的任务数目较小时,我们可以自己创建几个线程来处理相应的任务,但当有大量的任务时,由于创建.销毁线程需要很大的 ...