【问题标题】:do TFS clients need to have local copies of the tools invoked by the build server?TFS 客户端是否需要拥有构建服务器调用的工具的本地副本?
【发布时间】:2013-12-13 19:49:26
【问题描述】:

假设有一个 TFS 服务器,其中安装了某种 WF 构建活动。例如,这只是一个示例,假设活动获取构建输出,解密存储在服务器上某处的凭证,并执行需要解密凭证的操作:它可能通过网络将构建输出的副本发送到某些客户端无法直接访问的计算机。

TFS 客户端是否需要具有执行该操作的构建活动的本地副本?还是他们只是将代码更改推送到服务器,让 TFS 服务器决定如何构建代码以及如何处理构建输出?还是客户对 TFS 用于构建代码的工具以及它在构建输出上执行的操作有一些控制权?回到我提供的示例,如果用户需要为构建后操作提供凭据,那么活动的实施者负责确保凭据在从客户端传输到服务器时得到适当保护,或者TFS 会解决这个问题吗?

【问题讨论】:

    标签: version-control tfs build-server


    【解决方案1】:

    创建后,您可以将 Team Build 自定义构建活动放在 custom binaries in source control and configure the custom binary path of the Build Controller 中。然后,当执行此类构建时,TFS 将自动获取二进制文件。

    至于安全地为构建提供凭据,TFS 不会为您提供任何帮助。尽管可以使用 SSL(在 TFS 服务器上配置 SSL 安全性)来保护与 TFS 的通信,但构建参数也以纯文本格式存储在 TSF 数据库中。

    您的自定义活动和用于编辑值的设计器可以提供某种形式的值加密,这将确保它们不是存储在服务器数据库中的纯文本,但您可能必须使用静态这是工作的关键。

    最好的解决方案是在您使用的用户凭据下运行构建代理,这样构建代理本身就具有适当的权限,并且不会通过网络传输任何凭据或机密,因为构建代理将使用NTLM 或 Kerberos 进行身份验证。

    【讨论】:

      【解决方案2】:

      构建发生在构建服务器上(安装了 TFS 构建代理)。任何自定义活动都会签入 TFS,并在 Build Controller 属性中告诉它该目录在哪里。构建控制器确保该目录中的所有程序集都作为构建过程的一部分下载到每个构建代理。

      【讨论】:

        猜你喜欢
        • 2022-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-07
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多