【问题标题】:Azure - backup app on vm before delivering new changesAzure - 在交付新更改之前在 vm 上备份应用程序
【发布时间】:2018-03-19 12:42:52
【问题描述】:

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

【问题讨论】:

    标签: azure deployment backup azure-virtual-machine


    【解决方案1】:

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

    1. 自动备份虚拟机中的一些文件夹。
    2. 将任务 #1 集成到 CICD(持续集成持续部署)工具中,我建议您首先使用 VSTS(Visual Studio 团队服务)。

    方法#1

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

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

    方法 #2

    它更加云原生,您不必暴露虚拟机的 WMI,这会导致安全威胁。相反,您使用 Azure Automation Worker 将完全备份和复制到另一个 Azure 服务(Blob、文件、另一个备份/文件服务器虚拟机......)。在你的运行手册中,你需要使用 PowerShell DSC(期望状态配置)来interact with resources inside your virtual machine

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

    1. 调用 Runbook 的 webhook:您可以 create a webhook for your runbook 并通过创建 Http Task 来调用此 webhook
    2. 通过 PowerShell 启动 runbook:与方法 #1 类似,只需创建 PowerShell 任务,然后使用 Start-AzureAutomationRunbook cmdlet 和示例 here
    3. 构建一个ARM template for your Runbook,然后在构建定义中定义。 Here 是在 VSTS 中部署 ARM 模板的示例参考,

    之所以必须给出几个参考,是因为您可能不熟悉 CICD 和 DevOps 概念,以及 Azure 和 VSTS 中支持您持续部署的一些有用工具。您还应该探索市场上一些很棒的 CICD 解决方案,例如 Chef、Ansible、Puppet。他们非常支持CICD。下面是一些在 Azure 上开始使用 DevOps 的参考资料:

    【讨论】:

    • 您好,感谢您的回答,但很遗憾,我们现在没有使用 VSTS。目前我们正在使用 SVN 并通过 rdp 登录手动部署到 azure vm。我进行了很多调查,现在我可以得出结论,迁移到 VSTS 会给我们带来好处,我将立即开始这个过程。可能您的解决方案对我有用,但我会在尝试时得到结果。
    • @Roman VSTS 不是必需的。事实上,您可以使用具有 WMI 暴露的复杂 PowerShell 脚本来执行整个任务。 VSTS 只是为 CICD 提供友好和更多附加值的好工具。
    猜你喜欢
    • 2016-03-22
    • 2021-04-10
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多