Agent包含了backend的worker-agent.jar 和 agent(go) 两部分。
agent 使用 golang 编写,目前支持 linux/windows/macos 三种系统,其他系统没有做编译验证。
为方便编译,所有编译依赖已放入源代码的 vendor 文件夹
-
建议使用
golang 1.12
版本编译。 -
建议不要使用交叉编译生成 agent 程序。
-
Linux版本编译: make clean build_linux
-
MacOS 版本编译: make clean build_macos
-
Windows版本编译: build_windows.bat
-
输出在agent/bin目录下以下文件(安装包):
|- devopsAgent.exe
|- devopsAgent_linux
|- devopsAgent_macos
|- devopsDaemon.exe
|- devopsDaemon_linux
|- devopsDaemon_macos
|- upgrader.exe
|- upgrader_linux
|- upgrader_linux
在示例/data/bkee/bkci的主目录下:
-
将源码包中的support-files/agent-package目录复制到位置 /data/bkee/ci/agent-package,
-
该目录路径由/data/bkee/etc/ci/application-environment.yml 中指定的。请确认路径是否一致。
-
请按以下要求存放相应的安装包:
- Agent安装包目录说明(agent-package)
|- agent-package # 提供下载的agent的安装包位置
|- config
|- .agent.properties # agent配置文件
|- jar
|- worker-agent.jar # 从backend/worker 子模块编译出来的release/worker-agent.jar
|- jre
|- linux
|- jre.zip # Linux版的jre1.8的压缩包,lib/ext要加入bcprov-jdk16-1.46.jar
|- windows
|- jre.zip # windows版的jre1.8的压缩包,lib/ext要加入bcprov-jdk16-1.46.jar
|- macos
|- jre.zip # macos版的jre1.8的压缩包,lib/ext要加入bcprov-jdk16-1.46.jar
|- upgrade # 存放goAgent的升级包,由agent工程构建出来的相关包存放到此处
|- devopsAgent.exe
|- devopsAgent_linux
|- devopsAgent_macos
|- devopsDaemon.exe
|- devopsDaemon_linux
|- devopsDaemon_macos
|- upgrader.exe
|- upgrader_linux
|- upgrader_linux
|- script # 存储agent的安装启停控制脚本
|- linux
|- windows
|- macos
Agent 是由Go编译出来的devopsDaemon和devopsAgent 以及backend/release/worker-agent.jar 组成的。
- 将后台编译出来的backend/release/worker-agent.jar 复制到 jar目录下
- 将go编译出来的agent/bin目录下的devopsDaemon、devopsAgent、upgrader 放到upgrade
本目录用于存放linux/win/mac版本的jre,作为worker-agent.jar的Java执行环境。
- 请下载Linux/windows/macos对应系统的JRE1.8版本(注意收费的问题),并解压到当前目录,不要解压后的jre_xxxx目录。
- 下载加解密工具包bcprov-jdk16-1.46.jar,上一步解压出来的lib/ext目录下, 请从正规的maven仓库下载,以下地址仅供下载参考:bcprov-jdk16-1.64.jar下载
- 直接在jre里面的根目录下压缩,zip -r jre.zip *。 也就是压缩包里面不允许再有jre这级目录了。
- 生成jre.zip 放到相应操作系统类型目录下。分别是linux/macos/windows
一台构建机器只能安装一个agent,这个agent同时只能属于一个项目。
- Agent配置文件:config/.agent.properties文件内容
devops.project.id=##projectId##
devops.agent.id=##agentId##
devops.agent.secret.key=##agentSecretKey##
landun.gateway=##gateWay##
devops.parallel.task.count=4
landun.env=##landun.env##
devops.master.restart.hour=0
-
devops.project.id 是agent绑定的项目的英文名,用户下载安装时会自动替换
-
devops.agent.id 是Agent的ID,用户下载安装时会自动替换
-
devops.agent.secret.key Agent的密钥,用户下载安装时会自动替换
-
devops.parallel.task.count 构建并发数量,默认4个构建并发
-
landun.gateway bkci网关,用户下载安装时会自动替换
-
landun.env 环境类型,用户下载安装时会自动替换