自动向Azure DevOps自托管代理添加功能

自动向Azure DevOps自托管代理添加功能,azure,azure-devops,yarn,capability,Azure,Azure Devops,Yarn,Capability,据我所知,Azure DevOps代理能够自动检测自己的功能。根据文档,只要在安装新软件后重新启动主机,该功能就会自动注册 我现在遇到的问题是让代理检测windows主机上自托管代理上是否存在纱线。查看PATH环境变量可显示可执行文件的存在,但尽管主机已重新启动,但它并未作为功能列出。我目前的解决方法是手动将纱线添加到能力列表中,并将其值设置为true 另外,纱线是通过Ansible使用win_巧克力插件安装的。安装成功,没有错误 我想知道一些事情 1) 我是否遗漏了导致此问题的原因 2) 这是

据我所知,Azure DevOps代理能够自动检测自己的功能。根据文档,只要在安装新软件后重新启动主机,该功能就会自动注册

我现在遇到的问题是让代理检测windows主机上自托管代理上是否存在纱线。查看PATH环境变量可显示可执行文件的存在,但尽管主机已重新启动,但它并未作为功能列出。我目前的解决方法是手动将纱线添加到能力列表中,并将其值设置为true

另外,纱线是通过Ansible使用win_巧克力插件安装的。安装成功,没有错误

我想知道一些事情

1) 我是否遗漏了导致此问题的原因


2) 这是纱线固有的问题吗?如果这是纱线固有的问题,是否有办法将手动添加纱线的过程自动化为一种功能?

windows代理的功能来自环境变量

如果要设置一个值,可以添加一行,将条目添加到机器中

[System.Environment]::SetEnvironmentVariable(“CAPABILITYNAME”、“value”、“Machine”)
当您启动服务时,它会接收此信息

我目前正在尝试为一组linux代理做类似的事情


功能的有趣之处在于它们不是路径。例如,它可能显示您有2019年和2017年的msbuild,但我无法将它们用作管道变量。

我认为您甚至不需要重新启动主机,只需要重新启动服务