介绍

OneDev是一个开源的自建Git服务,自带工单看板和CI/CD,项目地址:
https://github.com/theonedev/...

在CI/CD任务需要消耗大量资源时,OneDev可以将其作为pod运行在Kuberntes集群中。然而Kubernetes集群自建较为麻烦,而使用云服务商的集群又较贵。基于此,OneDev从4.10版本开始提供基于Agent的CI/CD集群。Agent设计为零维护,OneDev server在升级时会自动升级所有连接的Agent。

如何配置

我们通过一个简单的实例来演示如果配置基于Agent的集群:

  1. 在Linux或者Mac里运行下面的命令启动OneDev:
    docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd)/onedev:/opt/onedev -p 6610:6610 -p 6611:6611 1dev/server
  2. 打开浏览器访问http://localhost:6610来完成设置
  3. 如下所示访问Agent管理页面并显示Agent的docker安装命令:
  4. 将命令拷贝到Linux或Mac终端,修改serverUrl环境变量为http://<OneDev server ip address>:6610(注意这里不能用localhost,否则运行在容器内的agent无法访问server),并运行命令启动agent。Agent连接上时就会在管理页面显示为在线:
  5. 现在我们创建一个Job Executor来使用该Agent。切换到Job Executors页面,删除默认的auto-discover executor,并添加一个Remote Docker Executor,输入名称,其他属性使用默认值。测试并保存:
  6. 现在您可以创建一个测试项目,定义Build Spec,添加一个简单的CI任务并运行它,该任务将在Agent上运行。OneDev在为CI任务分配Agent时,会根据Agent的cpu/memory容量以及任务所需的cpu/memory来进行选择。当没有Agent的cpu/memory满足时,任务将会进入等待状态。

谢谢关注!

03-05 22:03