在Linux上进行Jenkins分布式构建可以显著提高构建效率和系统的弹性。以下是详细的步骤和配置方法:
在主控节点和所有工作节点上安装Jenkins。可以从Jenkins官网下载最新版本的Jenkins,并按照官方文档进行安装。
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
在Jenkins界面中,进入“Manage Jenkins” > “Manage Nodes and Clouds” > “New Node”,创建新的工作节点并配置基本信息,如节点名称、节点类型、执行器数量等,并设置工作节点的标签。
在工作节点上安装Java和Jenkins代理。
sudo apt-get update
sudo apt-get install openjdk-11-jdk
启动Jenkins代理,并与主控节点建立连接。
java -jar agent.jar -jnlpUrl http://your-jenkins-server/computer/your-node
为了方便远程访问Jenkins,可以配置SSH访问:
sudo apt-get install openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
sudo adduser jenkins
sudo passwd jenkins
/etc/ssh/sshd_config
文件,添加以下行:AllowUsers jenkins
然后重启SSH服务:
sudo systemctl restart sshd
在Jenkins界面中,选择要创建或编辑的任务。在任务配置页面中,找到“Restrict where this project can be run”选项,输入工作节点的标签或节点名称,指定任务将在哪些节点上执行。
确保您的系统上已经安装了Docker和Docker Compose。
sudo apt-get update
sudo apt-get install -y docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
在您的项目目录中创建一个名为 docker-compose.yml
的文件,并将以下内容添加到文件中:
version: '3'
services:
jenkins-master:
image: jenkins/jenkins:lts
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_data:/var/jenkins_home
restart: always
jenkins-agent:
image: jenkins/ssh-agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
AGENT_WORKDIR: /home/jenkins/agent
SSH_AGENT: "true"
restart: always
volumes:
jenkins_data:
运行以下命令启动Jenkins环境:
docker-compose up -d
打开浏览器,访问Jenkins Web界面:http://your_server_ip:8080,按照向导完成Jenkins的初始化配置。
在Jenkins Web界面中,导航到"Manage Jenkins" > “Manage Nodes and Clouds” > “New Node”,创建一个新的节点并选择"Permanent Agent"类型。在节点配置中,选择"Launch agent via SSH"并填写SSH连接的相关信息。
在Jenkins Web界面中,导航到"Manage Jenkins" > “Manage Nodes and Clouds” > “New Node”,创建一个新的节点并选择"Dumb Slave"类型。在节点配置中,选择"Launch agent via Java Web Start",Jenkins会生成一个JNLP文件,您可以使用该文件在JNLP Agent上启动Agent进程。
在JNLP Agent上运行以下命令,启动Agent进程:
java -jar agent.jar -jnlpUrl http://jenkins_server_ip:8080/computer/agent_name/slave-agent.jnlp -secret your_secret
通过以上步骤,您可以在Linux上成功配置Jenkins的分布式构建环境,从而提高构建效率并满足大规模项目的需求。