我有几个.NET应用程序托管在虚拟机IIS上的Azure中。我想要直接从我的机器或visual studio自动化部署过程,而不是使用Azure门户,因为我们每天都要进行几次交付。现在对我来说最大的挑战是在部署之前做备份。所以我需要远程备份虚拟机上的特定文件夹。有人能告诉我怎么做吗?是否有从visual studio到Azure VM的自动化交付的最佳实践?需要备份应用程序。
发布于 2018-03-19 12:34:29
首先,我假设您希望将VM中的某些特定文件夹备份到Azure Blobs或Azure文件存储中。要完成连续部署,您需要两个部分:
方法#1
您可以公开公开Windows Remote Management (WinRM)终结点,并使用PowerShell执行文件夹备份任务。你还需要调用一些脚本来将你的备份写入/复制到Azure Blobs存储。你的脚本必须以静默方式进行身份验证,因此你不需要键入Azure订阅管理员或VM管理员。
一旦有了PowerShell脚本,就可以通过在PowerShell中创建新的PowerShell task来调用此Build or Release definition。我建议在发布定义中进行定义。
方法#2
它更多的是云原生的,你不必暴露你的虚拟机的WMI,这会导致安全威胁。相反,您可以利用Azure Automation Worker将完整的备份和复制自动化到另一个Azure服务(Blobs、文件、另一个备份/文件服务器虚拟机..)。在run中,您需要使用PowerShell DSC (Desired State Configuration)来interact with resources inside your virtual machine。
在VSTS中,有两种方法可以启动runbook
Start-AzureAutomationRunbook cmdlet,然后在构建定义中定义。Here是在VSTS、中部署ARM模板的示例参考
我之所以要给出几个参考资料,是因为你可能不熟悉CICD和DevOps的概念,以及Azure和VSTS中一些支持你持续部署的有用工具。市场上有一些很棒的CICD解决方案,你也应该探索一下,比如Chef,Ansible,Puppet。它们很好地支持CICD。下面是在Azure上开始使用DevOps的一些参考资料:
https://stackoverflow.com/questions/49353192
复制相似问题