【问题标题】:Deploying to multiple environments [TeamCity]部署到多个环境 [TeamCity]
【发布时间】:2015-04-11 03:19:08
【问题描述】:

我们在 TeamCity (v. 8.1.5) 中有一个复杂的项目结构,我们试图在没有用户输入的情况下将其部署到 30 多个环境中。

一直以来,我们一直在复制项目并使用环境变量来识别要部署到的环境。这种方法的主要缺点是推出对构建的更新。如果我们需要全面更新构建中的单个变量,我们需要在 30 多个项目中执行此操作,每个项目可能包含 20 个构建。这一切都是一个非常耗时的过程。

您如何在 TeamCity 设置中管理多个环境的部署?

【问题讨论】:

  • 你在使用模板,对吧?

标签: deployment continuous-integration teamcity environment


【解决方案1】:

我们部署了大约 15 个环境,以及大约 30 个不同的构建。我们有很多相同的问题,我们会以各种方式解决它。

首先,正如有人已经提到的,我们使用了很多模板。在 Teamcity 中,如果构建模板不是您最好的朋友,那您就错了。

第二,我们充分利用项目的层次组织,广泛使用继承属性。如果可以组织您的部署构建以最小化唯一参数值的数量(将公共参数推到项目树上),您可以节省大量时间和烦恼。例如,假设您按操作系统和版本组织项目:

Deployments
---Windows
------Vista
------W7
------W8
---Linux
------CentOS
---------6.4
---------6.5
------Ubuntu

然后您可以对参数进行分组,例如,按操作系统(Windows 或 Linux),然后按各自的风格进行分组。

最后,我们通过 VCS 根和/或命名文件控制大量参数值。选择正确的参数文件,然后首先执行一个小的构建步骤,读取参数文件并使用 TeamCity 自定义构建输出语法将其值加载到当前构建中。

要选择“正确”的参数文件,您可以将它们全部保存在 VCS 中的一个公共位置(即https://svn/deployments/buildParms)并唯一地命名每个文件,或者您可以参数化您的 VCS 根以在源代码控制中找到位置获取文件(即https://svn/deployments/%MY_VERSON%/deploy.properties.

结合使用上述方法,我们可以有效地管理 15 个部署环境和 7 个活动代码分支,总共 105 种不同的部署配置。

希望这会有所帮助。

【讨论】:

  • 感谢您的回答,因为提出了这个问题。此后,我们实施了与您所描述的类似的设置。使用模板处理构建更新,使用项目级参数处理环境变量
猜你喜欢
  • 2013-01-24
  • 2015-07-29
  • 2013-01-27
  • 1970-01-01
  • 2012-06-12
  • 2010-12-13
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
相关资源
最近更新 更多