我有几个.NET应用程序在Azure上托管在虚拟机IIS上。我想直接从我的机器或visual studio自动化部署过程,而不使用Azure门户,因为我们每天都在进行多次交付。我现在面临的最大挑战是在部署之前进行备份。所以我需要远程备份VM上的特定文件夹。有人能告诉我怎么做吗? 从visual studio到Azure VM有自动交付的最佳实践吗?需要备份应用程序。
答案 0 :(得分:1)
首先,我假设您要将VM中的某些特定文件夹备份到Azure Blob或Azure文件存储。完成持续部署需要两部分:
方法#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
Start-AzureAutomationRunbook
cmdlet。我必须提供多个参考资料,因为您可能不熟悉CICD和DevOps概念,以及Azure和VSTS中支持您持续部署的一些有用工具。市场上有一些很棒的CICD解决方案,你也应该探索,比如Chef,Ansible,Puppet。他们非常支持CICD。以下是一些关于Azure上DevOps入门的参考资料: