【问题标题】:How to run a remote Powershell in VSTS release only if script exists?仅当脚本存在时,如何在 VSTS 版本中运行远程 Powershell?
【发布时间】:2018-01-22 10:02:33
【问题描述】:

在 VSTS 发布管理中有一个不错的远程 Powershell 任务,我们可以在目标机器上运行脚本。但是,我需要一种方法来告诉发布管理仅在该文件存在时才运行该文件,否则默默地忽略它。

我知道我可以将任务配置为在出错时不阻塞进程,但是在这种情况下,日志中仍然会出现一个感叹号,并且部署将获得部分成功状态。即使文件不存在,我也想避免这种情况并显示成功。

有了这个,我需要它来支持几种已部署产品的可选设置脚本。

【问题讨论】:

  • 您可以尝试通过创建自定义 PowerShell 脚本来执行此操作并从中调用所有脚本。

标签: powershell azure-devops powershell-remoting azure-pipelines-release-pipeline


【解决方案1】:

VSTS中没有检查脚本文件是否存在的设置或功能。

简单的方法是,你可以创建另一个脚本来调用目标脚本。

  1. 创建另一个脚本(例如wapperScript.ps1)来调用目标脚本(可以使用参数接受目标脚本路径)并添加到源代码管理中
  2. 添加 Windows 机器复制任务以将 wapperScript.ps1 复制到目标机器
  3. 添加远程 PowerShell 任务以运行 wapperScript.ps1

【讨论】:

  • 谢谢,这正是我的工作方式,如果有更好的解决方案,我会更喜欢。
【解决方案2】:

如果您使用保护子句使脚本更加健壮,以便无论任何给定的环境条件都可以调用它。这使您的管道不那么复杂。您可以对“文件存在”部分采取行动,并对另一部分执行 noop。您可以通过日志条目向发布过程发出信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2018-08-01
    • 2017-09-30
    • 1970-01-01
    • 2018-01-31
    相关资源
    最近更新 更多