1. 准备基础环境
在Debian上集成Jenkins前,需先安装Java(Jenkins依赖Java运行环境)和Docker(用于容器化部署,可选但推荐)。
sudo apt update && sudo apt install -y openjdk-11-jdk,确保Java环境可用(Jenkins 2.357及以上版本需Java 11+)。sudo apt install -y docker.io && sudo systemctl enable --now docker;为让Jenkins能操作Docker,需将Jenkins用户加入docker组:sudo usermod -aG docker jenkins && sudo systemctl restart jenkins。2. 安装与初始化Jenkins
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -(导入GPG密钥),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(添加稳定版仓库),最后sudo apt update && sudo apt install -y jenkins安装Jenkins。sudo systemctl enable --now jenkins(设置开机自启并立即启动)。http://<服务器IP>:8080,输入初始密码(位于/var/lib/jenkins/secrets/initialAdminPassword),安装推荐插件(如Git、Pipeline、Docker Pipeline),创建管理员账号。3. 集成常用工具
Manage Jenkins→Manage Plugins→Available,搜索“Git”并安装。Manage Jenkins→Global Tool Configuration,找到“Git” section,添加Git安装路径(如/usr/bin/git,可通过which git获取)。New Item→输入任务名→选择Freestyle project→Source Code Management→选择“Git”,填写仓库URL(如https://github.com/your/repo.git),若有私有仓库需添加凭证(SSH密钥或用户名/密码)。Manage Plugins→Available,搜索“Docker Pipeline”并安装。Manage Jenkins→Global Tool Configuration,找到“Docker” section,添加Docker安装路径(如/usr/bin/docker)。New Item→输入任务名→选择Pipeline→Pipeline section→选择“Pipeline script from SCM”,配置代码仓库(Git),编写Jenkinsfile(示例见下文)。pipeline {
agent any
environment {
DOCKER_IMAGE = "your-dockerhub-username/your-app:${BUILD_NUMBER}"
REMOTE_SERVER = "user@your-server-ip"
REMOTE_DIR = "/path/to/deploy"
}
stages {
stage('Checkout') { steps { git branch: 'main', url: 'https://github.com/your/repo.git' } }
stage('Build Image') { steps { script { docker.build(DOCKER_IMAGE) } } }
stage('Push Image') {
steps {
script {
docker.withRegistry('https://registry.hub.docker.com', 'dockerhub-credential-id') {
dockerImage.push()
}
}
}
}
stage('Deploy') {
steps {
script {
sshagent(['remote-server-credential-id']) {
sh "ssh ${REMOTE_SERVER} 'rm -rf ${REMOTE_DIR}/*'"
sh "scp -r target/*.jar ${REMOTE_SERVER}:${REMOTE_DIR}/app.jar"
sh "ssh ${REMOTE_SERVER} 'cd ${REMOTE_DIR} && nohup java -jar app.jar &'"
}
}
}
}
}
}
(注:“dockerhub-credential-id”和“remote-server-credential-id”需提前在Manage Credentials中添加)Manage Plugins→Available,搜索“SonarQube Scanner”并安装。Manage Jenkins→Configure System→SonarQube servers,添加SonarQube实例URL(如http://localhost:9000)和认证令牌(在SonarQube中生成)。New Item→输入任务名→选择Freestyle project→SonarQube analysis section,选择SonarQube服务器,配置分析参数(如sonar.projectKey、sonar.sources),在Pipeline中添加sonar:sonar步骤(Maven项目可直接在pom.xml中配置SonarQube插件)。4. 配置自动化流程(CI/CD)
Build Triggers→选择触发条件(如“GitHub hook trigger for GITScm polling”实现代码推送自动触发,“Poll SCM”定时检查代码变更,如H/5 * * * *表示每5分钟检查一次)。Pipeline类型任务,可直接在Pipeline section编写脚本(Declarative或Scripted语法),或通过Pipeline script from SCM从代码仓库读取Jenkinsfile(推荐,实现代码与流水线定义统一)。5. 注意事项
Manage Jenkins→Manage Users和Manage Credentials配置用户权限,避免未授权访问敏感信息(如Docker Hub凭证、服务器SSH密钥)。-v jenkins_data:/var/jenkins_home),防止数据丢失。Console Output),或集成Prometheus+Grafana实现监控报警。