You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Linux Jenkins主机能否触发Windows上VMware Ubuntu任务?如何配置?

当然可以实现!部署在Linux服务器上的Jenkins完全能够触发你Windows主机上VMware Ubuntu虚拟机里的任务,下面我一步步给你拆解具体配置方法:

前提条件

先确认这几件事,避免后续踩坑:

  • 你的VMware Ubuntu虚拟机和Linux上的Jenkins主机得处于同一网络环境(比如都在局域网,或者给虚拟机配置桥接模式,确保Jenkins能ping通虚拟机的IP)
  • Ubuntu虚拟机里要装好Java环境(Jenkins Agent依赖Java,版本和Jenkins服务器保持匹配就行,比如Jenkins 2.387+推荐Java 11或17)
  • 放开Ubuntu虚拟机防火墙的相关端口:默认SSH端口22,以及Jenkins Agent通信的50000端口(或者你自定义的端口)
具体配置步骤

1. 在Jenkins服务器上添加Ubuntu虚拟机作为Agent节点

  • 登录你的Linux Jenkins主机,进入Manage Jenkins -> Manage Nodes and Clouds
  • 点击New Node,给节点起个好记的名字(比如Ubuntu-VM-Worker),选择Permanent Agent后点击OK
  • 填写节点核心配置:
    • Remote root directory:指定Ubuntu虚拟机上的一个目录,比如/home/ubuntu/jenkins-agent(提前在虚拟机里用mkdir -p /home/ubuntu/jenkins-agent创建好,确保该目录有读写权限)
    • Labels:给节点加个标签,比如ubuntu-vm,后续创建任务时可以通过标签指定在这个节点运行
    • Usage:选Use this node as much as possible,让这个节点优先承接任务
    • Launch method:推荐选Launch agent via SSH(这是最稳定、易维护的方式),配置细节如下:
      • Host:填Ubuntu虚拟机的IP地址(在虚拟机里用ip addrifconfig就能查到)
      • Credentials:点击Add,选择SSH Username with private key,输入Ubuntu的用户名(比如ubuntu),然后配置密钥:
        • 可以直接用Jenkins主机的SSH私钥,或者在Ubuntu虚拟机里用ssh-keygen生成密钥对,把公钥添加到~/.ssh/authorized_keys文件里,再把私钥上传到Jenkins的凭证里
      • Host Key Verification Strategy:测试环境可以选Non verifying Verification Strategy,生产环境建议选Known hosts file Verification Strategy更安全
  • 配置完点击Save,Jenkins会自动尝试连接Ubuntu虚拟机,成功的话节点状态会显示Online

2. 验证节点是否能正常工作

  • 回到Manage Nodes and Clouds页面,查看刚创建的节点状态,如果是Online就说明连接没问题
  • 可以建个简单的测试任务验证:
    • 新建一个Freestyle项目,在Restrict where this project can be run里填刚才设置的标签ubuntu-vm
    • Build步骤里添加Execute shell,输入echo "任务成功运行在Ubuntu虚拟机上!"
    • 保存后点击Build Now,查看控制台输出,如果能看到刚才的echo内容,就说明一切正常

3. 特殊情况:虚拟机用NAT模式的处理

如果你的Ubuntu虚拟机用的是NAT模式,Jenkins主机可能无法直接访问到虚拟机,这时候可以给VMware做端口转发:

  • 打开VMware的虚拟机设置,找到Network Adapter -> NAT Settings -> Port Forwarding
  • 添加一条转发规则:主机端口设为2222,虚拟机端口设为22(SSH默认端口),虚拟机IP填虚拟机内部的NAT地址(比如192.168.122.100
  • 然后回到Jenkins的Agent配置,把Host改成Windows主机的IP,Port改成2222,Credentials还是用Ubuntu的用户名和密钥,这样Jenkins就能通过Windows主机转发到虚拟机了

4. 日常维护注意事项

  • 确保Ubuntu虚拟机保持运行状态,或者配置VMware随Windows开机自动启动虚拟机,避免节点离线
  • 如果Jenkins和虚拟机之间有防火墙,要记得开放SSH端口(22)和Jenkins Agent通信端口(默认50000)
  • 定期检查节点状态,遇到离线情况可以先排查网络连通性、SSH密钥是否过期等问题

内容的提问来源于stack exchange,提问作者jdoeinthehouse

火山引擎 最新活动