在 Debian 上配置 Jenkins 的完整步骤
一 环境准备与安装
- 更新系统并安装 Java 11(Jenkins 官方推荐版本):
- 执行:
sudo apt update && sudo apt install -y openjdk-11-jdk
- 验证:
java -version
- 添加 Jenkins 官方 APT 仓库(推荐 debian-stable 稳定版):
- 导入密钥:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
- 添加源:
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
- 安装 Jenkins:
sudo apt update && sudo apt install -y jenkins
- 启动与自启:
sudo systemctl enable --now jenkins
- 查看初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 访问控制台:在浏览器打开 http://服务器IP:8080,完成解锁与初始化设置。
二 首次启动与安全加固
- 解锁与初始化:使用上一步的 initialAdminPassword 解锁,按需选择安装插件或稍后手动安装。
- 插件与更新源优化:
- 进入 Manage Jenkins → Plugin Manager → Advanced,将 Update Site 替换为国内镜像(如 清华大学镜像)以加速插件下载。
- 常用插件建议:Pipeline、GitHub Integration、Docker、Credentials Binding、Mailer/Extended E-mail Notification。
- 全局安全与系统设置:
- 进入 Manage Jenkins → Configure System:
- 配置 Jenkins URL、系统管理员邮箱、时区。
- 配置 全局工具(如 JDK、Git、Maven、Docker 的路径或自动安装)。
- 配置 执行者数量(# of executors)、SCM 重试次数、构建前等待时间(Quiet period) 等基础参数。
- 配置 SMTP(Extended E-mail Notification)用于构建通知。
三 网络与防火墙
- 开放访问端口(示例为 UFW):
- 放开 8080(Web 访问)与 50000(JNLP 代理通信,如使用代理节点):
sudo ufw allow 8080/tcp
sudo ufw allow 50000/tcp
sudo ufw reload
- 如部署在内网或云平台,确保安全组/防火墙策略同样放行上述端口。
四 创建任务与自动化构建
- Freestyle 任务(通用构建):
- 新建任务 → 选择 Freestyle project → 配置 源码管理(Git) 与 构建触发器(如定时或轮询)。
- 在 构建步骤 中添加 Shell/Maven/Gradle 等命令;在 构建后操作 中配置 归档产物、单元测试报告、邮件通知 等。
- Pipeline 任务(推荐):
- 新建任务 → 选择 Pipeline → 选择 Pipeline script from SCM,配置 Git 仓库 URL 与凭据,在仓库根目录提供 Jenkinsfile 定义流程。
- 示例 Jenkinsfile(可按需调整):
pipeline {
agent any
stages {
stage('拉取代码') {
steps { git 'https://github.com/your-org/your-repo.git' }
}
stage('构建') {
steps { sh 'mvn -B -DskipTests clean package' }
}
stage('测试') {
steps { sh 'mvn test' }
}
stage('部署') {
when { branch 'main' }
steps { sh './deploy.sh' }
}
}
post {
always {
emailext (
subject: "构建完成: ${currentBuild.fullDisplayName}",
body: "构建结果:${currentBuild.result}",
to: 'team@example.com'
)
}
}
}
- 触发器建议:结合 Webhooks(如 GitHub/GitLab)或 轮询 SCM 实现代码变更自动触发。
五 常见问题与进阶
- 插件安装慢或失败:先在 Plugin Manager → Advanced 更换 Update Site 为国内镜像,再重试安装。
- 构建并发与资源:在 Configure System 调整 # of executors 与 JVM 参数(如在 /etc/default/jenkins 中设置
JAVA_ARGS="-Xmx1024m"),避免资源争用。
- 分布式构建(集群):
- 在主节点 Manage Jenkins → Manage Nodes 添加 Agent/工作节点,分配 标签 与 执行者数;在任务中使用 agent { label ‘xxx’ } 指定节点。
- 确保主从节点间网络可达,并开放 JNLP 端口(默认 50000)。