乐趣区

关于jenkins:Windowlinuxdocker-单台宿主机部署多个Jenkins节点

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 部署多个节点

  1. 因为须要挂载很多节点,应用.bat 批处理文件须要启动多个界面
  2. 下载 agent.jar,在 Jenkins 节点界面 agent.jar 是个下载链接,点击下载
  3. 为每个节点创立一个批处理命令,命名为 '< 节点名称 >.bat’
  4. 将节点启动命令写入 ”java -jar agent.jar -jnlpUrl
  5. 将批处理命令与 agent.jar 放在同一文件夹
  6. 双击启动,会关上一个 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) 部署多个节点

  1. 制作 docker 镜像
  2. 镜像生成容器
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…

退出移动版