Azure - 在提供新更改之前在vm上备份应用程序

时间:2018-03-18 21:52:08

标签: azure deployment backup azure-virtual-machine

我有几个.NET应用程序在Azure上托管在虚拟机IIS上。我想直接从我的机器或visual studio自动化部署过程,而不使用Azure门户,因为我们每天都在进行多次交付。我现在面临的最大挑战是在部署之前进行备份。所以我需要远程备份VM上的特定文件夹。有人能告诉我怎么做吗? 从visual studio到Azure VM有自动交付的最佳实践吗?需要备份应用程序。

1 个答案:

答案 0 :(得分:1)

首先,我假设您要将VM中的某些特定文件夹备份到Azure Blob或Azure文件存储。完成持续部署需要两部分:

  1. 自动备份虚拟机中的某些文件夹。
  2. 将任务#1集成到CICD(持续集成持续部署)工具中,我建议您使用VSTS(Visual Studio Team Services)。
  3. 方法#1

    您可以公开公开Windows远程管理(WinRM)端点,并使用PowerShell执行文件夹备份任务。您还需要调用一些脚本来将备份写入/复制到Azure Blob存储。您的脚本必须以静默方式进行身份验证,因此您无需键入Azure订阅管理员或VM管理员。

    拥有PowerShell脚本后,您可以在PowerShell task中创建新的Build or Release definition来调用此PowerShell。我建议在Release定义中定义。

    方法#2

    它更像是云原生的,您不必公开虚拟机的WMI,这会导致安全威胁。相反,您可以使用Azure自动化工作程序来自动执行完全备份&复制到另一个Azure服务(Blob,文件,另一个备份/文件服务器虚拟机..)。在您的运行手册中,您需要使用PowerShell DSC(所需状态配置)到interact with resources inside your virtual machine

    在VSTS中,您有两种方法可以启动Runbook

    1. 调用Runbook的webhook:您可以create a webhook for your runbook通过创建Http Task
    2. 来调用此webhook
    3. 通过PowerShell启动Runbook:类似于方法#1,只需创建PowerShell任务,然后使用带有示例hereStart-AzureAutomationRunbook cmdlet。
    4. 构建ARM template for your Runbook,然后在Build定义中定义。 Here是在VSTS中部署ARM模板的示例参考,
    5. 我必须提供多个参考资料,因为您可能不熟悉CICD和DevOps概念,以及Azure和VSTS中支持您持续部署的一些有用工具。市场上有一些很棒的CICD解决方案,你也应该探索,比如Chef,Ansible,Puppet。他们非常支持CICD。以下是一些关于Azure上DevOps入门的参考资料: