在Jenkins中使用Docker安装Jenkins Master并配置动态及静态Slave节点是一种流行的实践,旨在提高灵活性、隔离性和资源利用率。下面是如何实现这一配置的步骤概览:
Docker安装Jenkins Master
-
拉取Jenkins Docker镜像:
首先,确保你的系统中安装了Docker。然后,从Docker Hub拉取最新的Jenkins镜像:docker pull jenkins/jenkins:lts-jdk11
这里使用了长期支持版(LTS)并指定了JDK 11,你可以根据需要选择其他版本。
-
运行Jenkins容器:
为了持久化数据和配置,你需要映射宿主机的目录到容器内的相应目录,并可能需要公开端口。例如:docker run -d --name jenkins-master \ -p 8080:8080 \ -p 50000:50000 \ -v /var/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkins/jenkins:lts-jdk11
-p
映射端口,使得可以从宿主机访问Jenkins UI。-v
挂载宿主机目录到容器,/var/jenkins_home
用于存储Jenkins数据,/var/run/docker.sock
允许Jenkins在容器内操作Docker守护进程(对动态Slave有用)。
配置动态 Slave 节点
-
安装并配置插件:
登录Jenkins,安装CloudBees Docker Custom Build Environment、Docker Pipeline 或 Kubernetes 插件(如果使用Kubernetes集群作为Slave资源池)。 -
配置Docker Cloud:
在Jenkins的系统管理 > 管理节点和云 > 新建云 > Docker 中,配置Docker连接信息,指定Docker守护进程的URL(如果是宿主机上的Docker,可以留空),并定义容器模板,包括镜像名称、环境变量、挂载卷等。 -
使用动态 Slave:
在Pipeline或自由风格项目中,可以声明使用Docker容器作为构建环境,如:pipeline { agent { docker { image 'maven:3-alpine' args '-v /root/.m2:/root/.m2' } } stages { stage('Build') { steps { sh 'mvn clean install' } } } } }
配置静态 Slave 节点
-
安装 Jenkins Agent:
在要作为静态Slave的机器上,执行如下命令安装Jenkins Agent(JNLP):java -jar agent.jar -jnlpUrl http://your-jenkins-url/computer/<slave-name>/slave-agent.jnlp -secret <secret>
或者使用Docker运行Jenkins Agent容器,使用环境变量设置连接信息。
-
Jenkins中配置 Slave:
在系统管理 > 管理节点和云 > 管理节点 中,添加新节点,填入节点名称、标签、远程工作目录、启动方式(如通过JNLP)以及连接信息(包括密钥或密码)。
通过以上步骤,你可以实现Docker中安装Jenkins Master,并配置动态及静态Slave节点,从而灵活地扩展和管理你的持续集成/持续部署环境。