如何将软件构建从 Azure DevOps 部署到内部服务器?
Posted
技术标签:
【中文标题】如何将软件构建从 Azure DevOps 部署到内部服务器?【英文标题】:How to deploy software builds from Azure DevOps to internal servers? 【发布时间】:2019-08-25 02:03:59 【问题描述】:我们的软件托管在 Azure DevOps 上的 Git 中,并使用构建管道(主要使用 Cake 脚本)构建。我们现在正在寻求使用 Azure DevOps 发布管道部署此软件。但是,我们所有的应用程序服务器都在我们的防火墙后面,在我们的网络内部,除了用于 Web 应用程序的 80 和 443 之外,没有任何端口开放。我们的应用程序有开发、登台和生产服务器(包括一些用于负载平衡的服务器)。我真正需要的是复制工件,将当前代码备份到服务器上的单独文件夹,在根部署文件夹中部署和解压缩工件文件,然后在这些服务器上重新启动 IIS。
我的公司规模庞大且官僚作风,因此在我们尝试这个新流程之前,我们必须跳过一些障碍进行尽职调查。本着这种精神,我正在努力寻找最佳解决方案。如果您能提供您的建议,尤其是提供我们没有想到的任何其他解决方案,那将很有帮助:
-
显而易见的解决方案是在 Azure 云上建立服务器并完全迁移到云中。我知道这是一个解决方案,这可能就是我们要去的地方,但我的要求是提供非云解决方案选项,以便我可以正确地展示它并提出建议。
使用 Hyper *** 隧道安全地传输文件并重新启动 IIS。就我们已经在 AzDO 上构建的构建过程而言,这可能是最简单和最简单的方法。从技术上讲,这是我最不习惯的。
在网络中使用构建代理,从 AzDO 连接到它们,让他们构建软件,然后让他们部署它或其他代理。设置它的工作量很大,但到目前为止对我们的安全性干扰最小。我也不是粉丝,因为我希望 AzDO 处理构建和部署。
打开每台服务器的 SFTP 和 SSH 端口并以这种方式传输文件。也许是最不安全但非常简单的方法?
如果您对此问题有更好的解决方案或更常见的解决方案,请告诉我。如果您认为我应该是上述 4 个解决方案之一,请告诉我。如果您可以扩展上述任何选项,请执行。
【问题讨论】:
【参考方案1】:ADO 代理只需要外部连接,因此它们与 ADO 通信,反之则不然。所以你只需要 443 出站到几个 ADO url。
阅读:https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops#communicationhttps://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops#im-running-a-firewall-and-my-code-is-in-azure-repos-what-urls-does-the-agent-need-to-communicate-with
【讨论】:
那么在这种情况下,当新代码进入 git repo 时,我们如何自动启动构建?还是我们每次都必须从构建代理手动启动它? @RossGustafson 构建具有可配置的触发器。它们会自动监控 repo 并在满足您指定的条件时触发。 构建代理与 ADO 对话并轮询它以获取新任务 是的,我在询问后读到了。因此,如果我们保留内部服务器,这看起来确实是最好的解决方案。我们可能仍会迁移到云端,但至少这是一个不错的选择。以上是关于如何将软件构建从 Azure DevOps 部署到内部服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Azure DevOps 中的部署后批准/部署后门调用 Powershell 脚本
如何将发布 ID 和内部版本号提取到我的 Azure DevOps 部署的 PHP 应用程序中
我们如何使用管道将azure devops中的应用程序部署到具有不同订阅和组织的azure app服务
如何从 Azure DevOps 中的文件夹(不是 zip)部署 WebApp