在工作流脚本中与 Jenkins Slave 共享文件夹
Sharing Folder with Jenkins Slave in Workflow Script
我在访问 OS X Jenkins master 和 Windows VM slave 之间的共享文件夹时遇到一些问题。
- 设置是 OS X 主机 运行ning Jenkins 并使用 VirtualBox 来托管 Windows VM 从机。
- Jenkins slave 运行作为一个 Windows 服务作为 Jenkins Slave 用户自动登录。
- 通过 VirtualBox 已在两个映射到 Windows 从设备上的驱动器 E: 之间建立共享文件夹。
从主服务器我试图在 groovy 工作流脚本中在从服务器的共享文件夹中执行批处理脚本。
node("Windows") {
bat("E:\some\path\thingy.bat")
}
当我尝试 运行 时,我得到 The system cannot find the drive specified.
如果我以 Jenkins Slave 用户身份登录到从 VM 并尝试执行相同的操作,一切正常。
我已经确认在工作流脚本中我运行宁是同一个 Jenkins Slave 用户,但出于某种原因,代表共享文件夹的 E: 驱动器不可见。
任何人都可以阐明问题所在吗?
您是否尝试使用 UNC 路径?
您是否检查 \
在 Groovy 字符串中是否正确转义?
slave根是在E:
还是C:
上?
所以答案是使用 UNC 路径。
当我之前尝试这样做时,我只指定了服务器名称,而不是共享文件夹本身的名称。
因此,如果您的共享文件夹名为 "shared",则
\VBOXSVR\ (Doesn't work)
\VBOXSVR\shared (Does work)
有点愚蠢的错误,但你走了。
我在访问 OS X Jenkins master 和 Windows VM slave 之间的共享文件夹时遇到一些问题。
- 设置是 OS X 主机 运行ning Jenkins 并使用 VirtualBox 来托管 Windows VM 从机。
- Jenkins slave 运行作为一个 Windows 服务作为 Jenkins Slave 用户自动登录。
- 通过 VirtualBox 已在两个映射到 Windows 从设备上的驱动器 E: 之间建立共享文件夹。
从主服务器我试图在 groovy 工作流脚本中在从服务器的共享文件夹中执行批处理脚本。
node("Windows") {
bat("E:\some\path\thingy.bat")
}
当我尝试 运行 时,我得到 The system cannot find the drive specified.
如果我以 Jenkins Slave 用户身份登录到从 VM 并尝试执行相同的操作,一切正常。
我已经确认在工作流脚本中我运行宁是同一个 Jenkins Slave 用户,但出于某种原因,代表共享文件夹的 E: 驱动器不可见。
任何人都可以阐明问题所在吗?
您是否尝试使用 UNC 路径?
您是否检查 \
在 Groovy 字符串中是否正确转义?
slave根是在E:
还是C:
上?
所以答案是使用 UNC 路径。
当我之前尝试这样做时,我只指定了服务器名称,而不是共享文件夹本身的名称。
因此,如果您的共享文件夹名为 "shared",则
\VBOXSVR\ (Doesn't work)
\VBOXSVR\shared (Does work)
有点愚蠢的错误,但你走了。