阅读量:36
1. 准备基础环境
在Debian上集成Jenkins前,需先安装Java(Jenkins依赖Java运行环境)和Docker(用于容器化部署,可选但推荐)。
- 安装Java:运行
sudo apt update && sudo apt install -y openjdk-11-jdk,确保Java环境可用(Jenkins 2.357及以上版本需Java 11+)。 - 安装Docker:若需用Docker实现容器化部署,运行
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
- 添加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. 集成常用工具
3.1 集成Git(版本控制)
- 安装Git插件:进入Jenkins管理界面→
Manage Jenkins→Manage Plugins→Available,搜索“Git”并安装。 - 配置Git全局工具:
Manage Jenkins→Global Tool Configuration,找到“Git” section,添加Git安装路径(如/usr/bin/git,可通过which git获取)。 - 创建Git任务:
New Item→输入任务名→选择Freestyle project→Source Code Management→选择“Git”,填写仓库URL(如https://github.com/your/repo.git),若有私有仓库需添加凭证(SSH密钥或用户名/密码)。
3.2 集成Docker(容器化部署)
- 安装Docker Pipeline插件:
Manage Plugins→Available,搜索“Docker Pipeline”并安装。 - 配置Docker全局工具:
Manage Jenkins→Global Tool Configuration,找到“Docker” section,添加Docker安装路径(如/usr/bin/docker)。 - 创建Docker Pipeline任务:
New Item→输入任务名→选择Pipeline→Pipelinesection→选择“Pipeline script from SCM”,配置代码仓库(Git),编写Jenkinsfile(示例见下文)。 - 示例Jenkinsfile:
(注:“dockerhub-credential-id”和“remote-server-credential-id”需提前在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 &'" } } } } } }Manage Credentials中添加)
3.3 集成代码质量工具(如SonarQube)
- 安装SonarQube Scanner插件:
Manage Plugins→Available,搜索“SonarQube Scanner”并安装。 - 配置SonarQube服务器:
Manage Jenkins→Configure System→SonarQube servers,添加SonarQube实例URL(如http://localhost:9000)和认证令牌(在SonarQube中生成)。 - 创建SonarQube任务:
New Item→输入任务名→选择Freestyle project→SonarQube analysissection,选择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类型任务,可直接在Pipelinesection编写脚本(Declarative或Scripted语法),或通过Pipeline script from SCM从代码仓库读取Jenkinsfile(推荐,实现代码与流水线定义统一)。 - 添加构建后操作:如“Archive artifacts”(归档构建产物)、“Send build notifications”(发送邮件/Slack通知)、“Deploy to production”(调用Shell脚本或Ansible实现自动化部署)。
5. 注意事项
- 权限管理:通过
Manage Jenkins→Manage Users和Manage Credentials配置用户权限,避免未授权访问敏感信息(如Docker Hub凭证、服务器SSH密钥)。 - 数据持久化:若Jenkins以容器方式运行,需挂载数据卷(如
-v jenkins_data:/var/jenkins_home),防止数据丢失。 - 日志与监控:通过Jenkins Web界面查看构建日志(
Console Output),或集成Prometheus+Grafana实现监控报警。