zoukankan      html  css  js  c++  java
  • 体验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

  • 相关阅读:
    对象池使用时要注意几点
    Flash3D学习计划(一)——3D渲染的一般管线流程
    714. Best Time to Buy and Sell Stock with Transaction Fee
    712. Minimum ASCII Delete Sum for Two Strings
    647. Palindromic Substrings(马拉车算法)
    413. Arithmetic Slices
    877. Stone Game
    338. Counting Bits
    303. Range Sum Query
    198. House Robber
  • 原文地址:https://www.cnblogs.com/new0801/p/6176142.html
Copyright © 2011-2022 走看看