【问题标题】:Set up bash inside self-hosted Windows agents in Azure DevOps在 Azure DevOps 中的自托管 Windows 代理中设置 bash
【发布时间】:2021-03-23 17:40:19
【问题描述】:

Microsoft 的own documentation 提供了用于各种操作系统的图像的链接,在这些图像之上创建了 Microsoft 托管的代理。

对于 Windows Server 2019,linkbash 显示为包含的工具之一,它还提到已安装 WSL1(适用于 Linux v1 的 Windows 子系统)。它按预期工作,Bash tasks 在 Azure DevOps 管道中运行良好。

我们目前正在设置我们自己的自托管 Windows 代理,并且我们也在寻找这种功能。但据我所知,在 Windows 上运行诸如 bash 之类的 Linux 工具需要 1) 安装 WSL 和 2) 每个特定用户安装 Linux 发行版。在 Windows Server 上部署的过程是here

WSL 目前不支持多用户(GitHub 问题 here),并且尝试以 LOCAL SYSTEMchallenges of their own 运行 Linux 工具。 那么在这种情况下,Microsoft 托管的 Azure DevOps 代理使用的映像如何让它们无缝运行bash

我听说过 Cygwin,并且知道它可以提供类似的功能,但现在我正在尝试将 bash 配置为类似于在 Microsoft 自己的托管代理上的配置。

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    不过,我认为目前不支持在 Azure DevOps 自托管 Windows 代理中运行 bash。

    Bash 任务以用户“NT Authority \ Network Service”的身份在代理上运行。但是,我们无法为该用户安装 Linux 发行版。它会显示用户还没有登录。

    但是对于微软来说,它的虚拟机应该有一个特定的用户来启动 bash,而不是默认的 NT Authority \ Network Service。

    【讨论】:

    • 我不确定在 Microsoft 托管代理上部署映像的过程中是否安装了 Linux 发行版,或者至少我在存储库中找不到该步骤。我确实发现了一些指向 Git Bash 实用程序的符号链接,但没有发现 from bash.exe。这里有一个例子github.com/actions/virtual-environments/blob/…
    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多