当前位置 : 主页 > 操作系统 > centos >

实现Jenkins分布式,Docker部署Agent

来源:互联网 收集:自由互联 发布时间:2022-06-20
实现Jenkins分布式,Docker部署Agent 1. 中小型公司,很多就是单机跑一个项目,没有什么高可用,没有swarm,k8s。2. 由于Jenkins一次性需要构建多个项目,这样导致cpu 居高,解决方法为:sla

实现Jenkins分布式,Docker部署Agent

1. 中小型公司,很多就是单机跑一个项目,没有什么高可用,没有swarm,k8s。 2. 由于Jenkins一次性需要构建多个项目,这样导致cpu 居高,解决方法为:slave 方式 3. 用docker-compose方式管理 slave

需要踩坑点说明

1. 端口问题,使用docker 运行的Jenkins,需要开放 50000 端口,映射到宿主机 2. Jenkins全局安全配置问题。需要前往 系统管理==》全局安全配置,找到 “ 代理 ” 指定50000 端口。有防火墙,或安全组,需要放行。 3. Jenkins 如果是使用反向代理访问的,配置 slave 节点需要 指定 从节点 启动方式==》Tunnel 连接位置,此位置需要填写 你后端的 IP+端口地址 ,列如:8.8.8.8:50000

开始配置

1. 点击 系统管理--节点管理--新建节点 2. 配置从节点 信息,如下图:

实现Jenkins分布式,Docker部署Agent


3·保存后显示如下图:<br/>配置完毕实现Jenkins分布式,Docker部署Agent


制作Dockerfile,docker-compose.yml 文件

1. 下载 上图 链接中 agent.jar 文件 至你的 slave 节点 2. 编写 Dockerfile 文件,制作 镜像,如下:

vim Dockerfile

FROM java:8 ADD agent.jar /usr/local/src RUN chmod +x /usr/local/src/* RUN mkdir /usr/local/logs WORKDIR /usr/local/src 3·指定build 命令: `docker build -t jenkins-slave-test:v1 .` 4·编写 docker-compose.yml 文件

vim docker-compose.yml

version: '2' services: jenkins: image: jenkins-slave-test:v1 container_name: jenkins_agent restart: always volumes: - '/var/lib/jenkins:/var/lib/jenkins' - '/var/lib/jenkins/apache-maven-3.6.3:/usr/local/maven' command: java -jar agent.jar -jnlpUrl http://jenkins.mitaiot.com/computer/test10.10/slave-agent.jnlp -secret b8fb64b22ef77a231811aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -workDir "/var/lib/jenkins"

上述 文件中 挂载了 maven ,因为后面需要 使用此工具打包。如不需要者自行替换。执行启动命令: docker-compose up -d


编写 pipline 脚本,验证

1. 可以看见 slave 已经在线,如下图:实现Jenkins分布式,Docker部署Agent


  • 创建项目,编写 pipline 脚本

    pipeline { agent {label 'test10.10' } stages { stage('Git Clone') { steps { echo 'Git Clone Start' deleteDir() sleep 2 git branch: 'test', credentialsId: 'f436fc9d-0d0c-4e1e-a8a3-d797bee97910', url: 'http://gitlab.mitaiot.com/qiyewaibao/JavaCJ.git' } } stage('Build') { steps { echo "Start Build" sh "cd /var/lib/jenkins/workspace/mita_platformc-lyh;/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true" sh "pwd" } } } }

    结果

    在 slave 节点会有相应文件创建,并且项目也拉取,编译,打包

  • 网友评论