GitLab Runner并行执行器&;Windows 10虚拟机-卡滞”;正在创建新的VM…”; 总结

GitLab Runner并行执行器&;Windows 10虚拟机-卡滞”;正在创建新的VM…”; 总结,gitlab,gitlab-ci,gitlab-ci-runner,parallels,Gitlab,Gitlab Ci,Gitlab Ci Runner,Parallels,嗨 我最初发布了一个问题,我认为这是GitLab Runner的一个bug,但遗憾的是,没有收到任何回复 我正在使用Parallels Executor来测试/构建/部署一个Electron+React应用程序,该应用程序使用预先准备好的MacOS和Windows 10虚拟机,这些虚拟机也启用了SSH访问(也已测试) 注册跑步者时,我接着将相关的SSH用户和密码详细信息添加到config.toml中 当一个新的构建成功时,MacOS映像可以正常工作。然而,Windows 10阶段只是无休止地挂起

我最初发布了一个问题,我认为这是GitLab Runner的一个bug,但遗憾的是,没有收到任何回复

我正在使用Parallels Executor来测试/构建/部署一个Electron+React应用程序,该应用程序使用预先准备好的MacOS和Windows 10虚拟机,这些虚拟机也启用了SSH访问(也已测试)

注册跑步者时,我接着将相关的SSH用户和密码详细信息添加到
config.toml

当一个新的构建成功时,MacOS映像可以正常工作。然而,Windows 10阶段只是无休止地挂起并超时:

运行程序接收作业,甚至创建模板VM和链接映像。看起来好像GitLab Runner没有收到对此的确认,并且在多次重新尝试后没有执行任何导致作业超时的操作

很难知道Windows是否缺少了一些复杂的东西,或者这可能是Gitlab Runner本身的一个bug

有什么想法吗

复制步骤
  • 创建Windows 10 Parallels虚拟机并安装/配置OpenSSH
  • 使用Parallels作为执行器注册运行程序
  • 编辑
    config.toml
    并在
    [runners.SSH]
    部分下添加SSH用户和密码
  • 确保Windows 10虚拟机映像已正确关闭(未挂起)
  • 运行一个构建并观察上述情况的发生
Gitlab ci yaml文件 实际行为 Windows 10虚拟机将根据其创建的模板以并行方式启动。从那时起,构建过程将不再继续,您将看到一个运行在Windows 10虚拟机上的0。一小时后,构建将失败

预期行为 定义的阶段应该完成

转轮输出日志
1使用gitlab runner 12.6.0(ac8e767a)运行
[Ravs iMac]上的2与Windows 10虚拟机rpMNC3Qo并行
3.
使用Parallels 14.1.0执行器。。。
4正在创建新的虚拟机。。。
5错误:准备失败:PrlctlOutput错误:
6将在3秒内重试。。。
7使用Parallels 14.1.0执行器。。。
8正在创建新的虚拟机。。。
9错误:准备失败:PrlctlOutput错误:
10将在3秒内重试。。。
11使用Parallels 14.1.0执行器。。。
12正在创建新的虚拟机。。。
13错误:作业失败:执行时间超过1h0m0s秒

Config.toml 使用GitLab Runner版本 平行版本 14.1.0版(45387) 商业版

可能的解决办法
不适用

我多年来一直有这个问题。刚刚尝试了一个新的gitlab runner设置(在Mac上使用gitlab runner,在Parallels下使用Win10),但它不起作用

gitlab runner输出中有一个指示错误:

ERROR: Job failed (system failure): IP lease not found for MAC address 001C42C13862 in: /Library/Preferences/Parallels/parallels_dhcp_leases  duration=6m40.688084247s job=1125551877 project=25368177 runner=xz2gps
我(去年)对此进行了跟踪,结果发现虚拟机的克隆为其提供了一个新的MAC地址,gitlab runner查找旧的MAC地址(原始虚拟机的,而不是克隆的)。所以gitlab runner认为虚拟机还没有启动

奇怪的是,我在MacOS Parallels虚拟机上有完全相同的设置,而在gitlab runner上没有任何问题

我两年来一直在寻找解决方案,但没有结果。这里主要是回答老问题,希望有一天有人能找到它并发布解决方案

[更新]

我可能已经找到了解决办法。问题似乎是克隆的Windows VM使用的是旧的MAC地址(来自克隆父级),而不是新的MAC地址。(这与我在上一个答案中的建议相反)

解决方法是,在构建Windows虚拟机并关闭它之后,在运行gitlab runner之前,我更改父虚拟机的Parallels网络配置,并为其提供新的MAC地址和不同类型的网卡。再也不要运行它了。然后克隆人会出现并看到一张新网卡,并获得正确的新MAC地址


这是否是一个长期的解决方案还有待观察……

您不能用您作为另一个答案发布的额外信息更新此答案吗?
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "[Ravs iMac]Parallels MacOS VM"
  url = "https://gitlab.com/"
  token = "**********"
  executor = "parallels"
  [runners.custom_build_dir]
  [runners.ssh]
    user = "ci"
    password = "password"
    host = "macos-ci.shared"
    port = "22"
  [runners.parallels]
    base_name = "macOS_CI"
    disable_snapshots = false
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

[[runners]]
  name = "[Ravs iMac]Parallels Windows 10 VM"
  url = "https://gitlab.com"
  token = "**********"
  executor = "parallels"
  [runners.custom_build_dir]
  [runners.ssh]
    user = "ci"
    password = "password"
    host = "10.211.55.5"
    port = "22"
  [runners.parallels]
    base_name = "Windows10_CI"
    disable_snapshots = false
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]

Version:      12.6.0
Git revision: ac8e767a
Git branch:   12-6-stable
GO version:   go1.13.4
Built:        2019-12-22T11:55:34+0000
OS/Arch:      darwin/amd64
ERROR: Job failed (system failure): IP lease not found for MAC address 001C42C13862 in: /Library/Preferences/Parallels/parallels_dhcp_leases  duration=6m40.688084247s job=1125551877 project=25368177 runner=xz2gps