一、docker安装jenkins-master
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
um clean all && yum makecache fast
yum install docker -y
docker pull jenkins/jenkins:2.375.1-lts-jdk11
mkdir /mnt/jenkins-data
chown -R 1000:1000 /mnt/jenkins-data/
docker run --name jenkins -itd --privileged=true -p 8081:8080 -p 50000:50000 -v /etc/localtime:/etc/localtime:ro -v /mnt/jenkins-data:/var/jenkins_home jenkins/jenkins:2.375.1-lts-jdk11 基于JNLP的Jenkins slave通过TCP端口50000与Jenkins master进行通信
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword 39c5c724ff5341fb91e9ab793425ef54
http://192.168.1.131:8081/
其他按提示配置即可
二、添加docker slave节点(静态节点)
1.首先我们在Jenkins的节点管理中,添加节点。输入节点的名称和类型
2.配置节点信息:自定义目录 启动方式: java web
3.获取JNLP方式运行slave所需要的秘钥信息。
4.在slave节点安装docker及下载jenkisn slave镜像
docker pull jenkins/jnlp-slave:latest-jdk11注意jdk版本,不可以比master的jdk版本低
docker run -itd --privileged=true --name jenkins-slave01 -v /etc/localtime:/etc/localtime:ro jenkins/jnlp-slave:latest-jdk11 -url http://192.168.1.131:8081/ 70e0b0f5f1f43d5be91b3c98cfa457e2db8a1411498f493b8cff3aad48396705 build01
docker logs jenkins-slave01
三、配置Jenkins动态slave
1.salve配置
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376在最后添加-H tcp://0.0.0.0:2376
systemctl daemon-reload
systemctl restart docker
curl -XGET http://127.0.0.1:2376/version确保有正确输出
docker pull fantito/jdk11-maven-git:latest下载测试容器,该容器jdk版本要和master端保持一致或者大于,运行用户建议使用root运行,否则会出现权限问题
2.master安装插件
3.方式1: 使用CLoud
配置docker slave
配置docker template
测试pipeline
pipeline {
agent {
label 'docker-build'
}
stages {
stage('Hello') {
steps {
sh 'java -version'
sh 'git version'
sleep 50
}
}
}
}
验证
4.方式2: 直接调用
dockerNode(dockerHost: 'tcp://192.168.1.133:2376', image: 'fantito/jdk11-maven-git:latest') {
sh 'java -version'
sh "sleep 5"
}