【问题标题】:Team Foundation Server(Release Pipeline)Team Foundation Server(发布管道)
【发布时间】:2018-11-07 19:48:38
【问题描述】:

我正在开发发布管道,用于使用 TFS 2017 Update3 发布管理部署工件。有各种任务,如“Windows 机器文件复制”和“在目标机器上运行 Power Shell”,需要将管理员凭据作为输入参数传递。这些管理员凭据对目标节点具有管理访问权限。我正在为这些使用 Windows 服务帐户。我们制定了每月轮换密码的组织安全政策。

考虑到这一点,每月为新密码更新数百个 TFS 版本定义会很忙。

您有更好的办法来处理这个问题吗?请给出详细答案。 提前致谢。

【问题讨论】:

    标签: powershell tfs release release-management ms-release-management


    【解决方案1】:

    如果您想自动化流程,请使用定义为 here 的解决方案。这详细说明了如何使用 TFS API 来戳定义。

    或者,您可以创建自己的 PowerShell 任务,从 Azure Key vault 等其他来源获取密码,甚至将其硬编码到 json 任务定义本身(不要这样做)。

    您可以投票以改善这个故事here

    我编写了一个自定义版本的 PowerShell 任务,它使用代理的身份作为 WinRM 会话的一部分,这极大地简化了我们的发布定义过程。

    【讨论】:

    • 感谢迈克尔的迅速回复。我正在运行一些 power shell 脚本来将人工制品部署到目标服务器上安装的工具并运行一些任务,这些任务只是将人工制品复制到目标服务器,即复制粘贴
    • 如果您想自动化流程,请使用此处定义的解决方案。这详细说明了如何使用 TFS API 来戳定义。在这个链接中据说使用rest api,但我不知道rest api。您能否以更简单的方式解释它。比如如何实现整个流程的rest api。
    • 我不知道你的背景或经验是什么,所以这是不可能的。如果您使用 Windows,您可以从 PowerShell 调用 REST API,而无需太多仪式。
    • 还要考虑到 TFS 2018 引入了部署组的概念,这大大减少了要管理的凭据数量。我更愿意投资升级。
    【解决方案2】:

    您可以使用variable group 来存储您希望在多个构建和发布定义中可用的值。变量组在 Build & Release 中心的 Library 标签中定义和管理。这样就可以只编辑变量组了:

    https://docs.microsoft.com/en-us/vsts/pipelines/library/variable-groups?view=vsts

    【讨论】:

    • 感谢 Cece,我一直在寻找一个简单的解决方案,而您提供的正是我所需要的。它就像魅力一样。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 2010-11-08
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多