繁体   English   中英

如何将软件构建从 Azure DevOps 部署到内部服务器?

[英]How to deploy software builds from Azure DevOps to internal servers?

我们的软件托管在 Azure DevOps 上的 Git 中,并使用构建管道(主要使用 Cake 脚本)构建。 我们现在正在寻求使用 Azure DevOps 发布管道部署此软件。 但是,我们所有的应用程序服务器都在我们的防火墙后面,在我们的网络内部,除了 web 应用程序的 80 和 443 端口之外,没有任何端口开放。 我们的应用程序有开发、登台和生产服务器(包括一些用于负载平衡的服务器)。 我真正需要的是复制工件,将当前代码备份到服务器上的单独文件夹,在根部署文件夹中部署和解压缩工件文件,然后在这些服务器上重新启动 IIS。

我的公司相当大而且官僚,所以在我们尝试这个新流程之前,我们必须跳过一些尽职调查。 本着这种精神,我正在努力寻找最佳解决方案。 如果您能提供您的建议,特别是提供我们没有想到的任何其他解决方案,那将很有帮助:

  1. 显而易见的解决方案是在 Azure 云上建立服务器并完全迁移到云上。 我知道这是一个解决方案,这可能是我们 go 的地方,但我的要求是针对非云解决方案选项,所以我可以正确地提出这个问题并提出建议。
  2. 使用 Hyper VPN 隧道安全地传输文件并重新启动 IIS。 就我们已经在 AzDO 上构建的构建过程而言,这可能是最简单和最简单的方法。 从技术上讲,这是我最不满意的一个。
  3. 在网络内使用构建代理,从 AzDO 连接到它们,让他们构建软件,然后让他们部署它或其他代理。 设置它的工作量很大,但到目前为止对我们的安全性干扰最小。 我也不是粉丝,因为我希望 AzDO 处理构建和部署。
  4. 打开每个服务器的 SFTP 和 SSH 端口并以这种方式传输文件。 也许是最不安全但非常简单的方法?

如果您对此问题有更好的解决方案或更常见的解决方案,请告诉我。 如果您认为我应该是上述 4 个解决方案之一,请告诉我。 如果您可以扩展上述任何选项,请执行此操作。

您可以使用环境。 为每个 VM 创建环境(包括在您的机器上创建代理),然后在 YAML 管道部署作业中使用environment参数。 然后,部署作业可以在您的目标机器上执行您需要的任何操作(部署 webapp、移动文件、备份等),无论它是否在专用网络上。

更多阅读 - Azure DevOps 环境: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/environments?view=azure-devops

使用部署作业: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/deployment-jobs?view=azure-devops

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM