【问题标题】:Azure DevOps: How can I run powershell on onPrem servers after deployment of all IIS SitesAzure DevOps:部署所有 IIS 站点后,如何在 onPrem 服务器上运行 powershell
【发布时间】:2019-03-09 05:10:03
【问题描述】:

如何在所有阶段完成部署后运行 powershell 脚本?我目前选择了一个部署组作业,但不能 100% 确定这是否是我需要的。我已将该脚本作为正在部署的解决方案的一部分包含在内,以便它可以在所有机器上使用。根据我在 UI 中可以找到的内容,似乎有 2 个任务可以工作。

第一个选项是执行任务“Powershell Script”,但它要求放置目录中的路径。问题在于我感兴趣的文件位于 zip 文件中,似乎没有办法在 zip 文件中指定文件。

我看到的另一个任务是“目标机器上的 PowerShell”,然后它要求提供目标机器的列表。我不确定这里需要输入什么,因为我想在部署组中的当前机器上运行 powershell 脚本。似乎此任务旨在将 powershell 脚本从部署机器运行到另一台远程机器。因此,此选项似乎不适合我的用例。

通过查看我遇到的答案,谈论如何使用称为“Kudu”(不相关)的东西作为 Azure 站点的一部分执行此操作,或者不回答与这些任务相关的其他问题,或者看起来像他们已经过时了。

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    部署组作业将在该部署组中指定的所有服务器上运行。根据您的指示,听起来这就是您要寻找的。

    由于您指出相关文件是 zip,因此您实际上需要使用 2 个单独的任务。

    1. 提取文件 - 使用它来提取 zip 文件,以便您可以执行脚本
    2. Powershell 脚本 - 使用它来执行脚本。如有必要,您可以设置要在其中执行的脚本的工作目录(在高级选项下)。另请记住,您不必使用文件/文件夹选择器“helper”,因为如果文件位于 zip 中,它在您的情况下将不起作用。这仅用于填充文本框,您可以从 $(System.DefaultWorkingDirectory) 变量开始手动填充并添加脚本的必要路径。

    【讨论】:

    • 我想我不是很清楚。我的意思是当我使用路径选择器时,我最终会得到如下路径:drop\environment\projectFiles.zip。我知道这会部署到服务器上,并且我感兴趣的文件会在这里。根据您的第二点,我似乎应该能够执行以下操作: $(System.DefaultWorkingDirectory)\MyPath\ToTheFile\myScript.ps1 并且它将在本地计算机上运行此文件?假设路径存在于本地机器上。
    • 我设法弄明白了。只是为了尝试一些东西,我设置了一个复制文件任务。我这样设置目标路径:$(build.artifactstagingdirectory)/Deployment。这会将这个文件夹的内容放在 artifacts 目录中。现在您将能够使用 powershell 任务中的路径选择器来选择您需要运行的文件。
    猜你喜欢
    • 2020-09-21
    • 1970-01-01
    • 2016-08-11
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多