Window/linux(docker) 单台宿主机部署多个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...

不秃顶、不猝死,顺顺利利活到100可以吗?

1 声望
2 粉丝
0 条评论
推荐阅读
python日志logging配置
python日志logging配置为了方便ELK收集日志,将日志打印成json格式开发过程中,使用json格式不方便排查问题本文章使用python的logging模块,一步步增加配置,来说明每个组件作用原始日志python可以使用两种方式打...

言午日尧耳总阅读 755

使用Jenkins优雅部署Java项目【超级详细的实战教程】
环境准备centos 7Java 1.8Maven 3.6.3Docker 20.10.17Gitlab gitlab-ce:14.0.5-ce.0Jenkins相关依赖环境安装Java环境安装虽然我们是采用docker的方式安装Jenkins,所有的依赖镜像都已经打包好了。但是我们在后续...

李博帅1阅读 1.2k评论 1

封面图
不背锅运维:云原生下的CICD-3件套快速搭建合集:jenkins+harbor+gitlab
使用docker容器启动jenkins {代码...} 需要注意:/data 是宿主机的数据目录,请选用容量足够、性能好的文件系统必须显示声明-u root,使用root启动容器,否则容器不能正常启动宿主机的/var/run/docker.sock请确保...

不背锅运维阅读 667

封面图
Jenkins
[链接]前置环境准备服务器 OS Linux CentOS数据库服务器 MYSQL ServerGithub账号Idea IDE一、简介开源平台常用于自动化测试、持续集成二、Jenkins基础下载Jenkins docker pull jenkins/jenkins第一次启动docker c...

阿南阅读 638

快速创建Jenkins Job
1.Freestyle project 这个是jenkins的基础功能,可以用它来执行各种构建任务,他只能构建在一个电脑上,如果没有太多的需求,这个job基本够用了,它包含了所有基础功能.

用户bPtuda阅读 638

封面图
Jenkins 添加 Slave Agent 节点时报类文件不匹配错误
可以知道 Slave Agent 上的 JDK1.8 环境版本与 Jenkins Master Server 端的版本不匹配,我部署的 Jenkins Server 是 2.361.2,因此需要 Slave Agent 上提供的应该是 JDK11 或者更新的版本。

觅食的蛇阅读 471

jenkins+docker进行微服务部署
由于公司使用的是内部网络,没有打开互联网,所以在进行jenkins构建的时候,没法下载对应插件,刚开始使用镜像的方式制作了jenkins镜像,但是jenkins镜像内部又缺少maven等插件,弄了许久还是需要下载插件;感觉...

startshineye阅读 423

不秃顶、不猝死,顺顺利利活到100可以吗?

1 声望
2 粉丝
宣传栏