Window/linux(docker) 单台宿主机部署多个 Jenkins 节点
- 在应用 Jenkins 过程中,减少了手动输出的步骤,会阻塞节点运行工作;
- 因为资源无限,须要在一台机器挂载了很多 Jenkins 节点;
- Jenkins 节点抉择 java 形式运行;
环境:
- Windows10
- Docker
- Apline Linux
- OpenJdk11
前置条件
- 创立 Jenkins 节点时抉择“通过 Java Web 启动代理”
- 实现后启动形式为命令,命令如下 (Windows 和 linux 只有门路区别):
- Windows 启动命令如下:
- java -jar agent.jar -jnlpUrl http://192.168.0.1:8080/compu… -secret 1234567890abcdefg -workDir “F:\Jenkins_nodes\XuXiaoCong-Windows”
- Linux 启动命令如下:
- java -jar agent.jar -jnlpUrl http://192.168.0.1:8080/compu… -secret 1234567890abcdefg -workDir “/var/jenkins”
Window 部署多个节点
- 因为须要挂载很多节点,应用.bat 批处理文件须要启动多个界面
- 下载 agent.jar,在 Jenkins 节点界面 agent.jar 是个下载链接,点击下载
- 为每个节点创立一个批处理命令,命名为 '< 节点名称 >.bat’
- 将节点启动命令写入 ”java -jar agent.jar -jnlpUrl “
- 将批处理命令与 agent.jar 放在同一文件夹
- 双击启动,会关上一个 CMD 窗口(请勿敞开,否则节点下线)
例子:XuXiaoCong-Windows.bat
java -jar agent.jar -jnlpUrl http://192.168.0.1:8080/computer/XuXiaoCong-Windows/jenkins-agent.jnlp -secret 1234567890abcdefg -workDir "F:\Jenkins_nodes\XuXiaoCong-Windows"
linux(docker) 部署多个节点
- 制作 docker 镜像
- 镜像生成容器
FROM alpine
WORKDIR /jenkins
# apk 镜像
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
# 增加 curl,git,openjdk11
RUN apk add --no-cache curl
RUN apk add --no-cache git
RUN apk add --no-cache openjdk11
# 增加其余运行环境(这里以 Python 为例)RUN apk add --no-cache build-base
RUN apk add --no-cache python3
RUN apk add --no-cache python3-dev
RUN apk add --no-cache py3-pip
# Jenkins 页面上的 agen.jar 门路(右键复制链接)RUN curl -o agent.jar http://192.168.0.1:8080/jnlpJars/agent.jar
# 执行该节点 (语句从 Jenkins 节点界面上复制)(只执行一条 CMD,其余正文)# XuXiaoCong-Linux 节点
CMD java -jar agent.jar -jnlpUrl http://192.168.0.1:8080/computer/XuXiaoCong-Linux/jenkins-agent.jnlp -secret 1234567890abcdefg -workDir "/var/jenkins"
# docker build -t jenkins-node-xuxiaocong-linux .
# docker run -d --restart=always --name=jenkins-node-xuxiaocong-linux jenkins-node-xuxiaocong-linux
# XuXiaoCong-Linux- 1 节点
# CMD java -jar agent.jar -jnlpUrl http://192.168.0.1:8080/computer/XuXiaoCong-Linux-1/jenkins-agent.jnlp -secret 1234567890abcdefg -workDir "/var/jenkins"
# docker build -t jenkins-node-xuxiaocong-linux-1 .
# docker run -d --restart=always --name=jenkins-node-xuxiaocong-linux-1 jenkins-node-xuxiaocong-linux-1
- Windows 中制作镜像
cd < 文件所在门路 >
docker build -t jenkins-node-< 节点名称 > .
-
生成容器
docker run -d --restart=always --name=jenkins-node-< 节点名称 > jenkins-node-< 节点名称 >
参考文档:
https://docs.docker.com/get-s…
https://wiki.alpinelinux.org/…
https://www.cnblogs.com/jacka…