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

  • 相关阅读:
    EasyUI左边树菜单和datagrid分页
    Linux上安装Redis教程
    TreeMap和TreeSet的区别与联系
    将Map<String, List<Map<String,Object>>>进行排序
    Linux系统安装JDK和Tomcat
    点击添加按钮,使用ajax动态添加一行和移除一行,并且序号重新排序和数据不重复操作判断
    23种设计模式汇总整理
    SSH架构BaseDao实现
    双击Table表格td变成text修改内容
    用户找回密码功能JS验证邮箱通过点击下一步隐藏邮箱输入框并修改下一步按钮的ID
  • 原文地址:https://www.cnblogs.com/new0801/p/6176142.html
Copyright © 2011-2022 走看看