1. 环境准备:Java环境与Jenkins安装
Jenkins依赖Java运行环境,需先安装OpenJDK 11及以上版本:
sudo apt update && sudo apt install -y openjdk-11-jdk
java -version # 验证安装(需显示Java版本信息)
添加Jenkins官方Debian仓库并安装:
wget -q -O - https://pkg.jenkins.io/debian/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
sudo apt update && sudo apt install -y jenkins
启动Jenkins并设置开机自启:
sudo systemctl enable --now jenkins
首次访问需获取初始密码(/var/lib/jenkins/secrets/initialAdminPassword),通过Web界面(默认8080端口)解锁并完成初始配置。
2. 插件管理:精简与加速
仅安装必要插件(如Pipeline、Git Integration、Docker、Credentials Binding),避免过多插件占用内存。可通过Manage Jenkins → Plugin Manager → Available筛选插件,或使用国内镜像源(如清华源)加速下载:
进入Manage Jenkins → Plugin Manager → Advanced,将Update Site替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。
3. 流水线配置:Jenkinsfile与SCM集成
使用Jenkinsfile定义流水线(纳入版本控制,避免硬编码),替代Web界面配置。示例Jenkinsfile(Python项目):
pipeline {
agent any
environment {
PYTHON_VERSION = '3.9' // 环境变量示例
}
stages {
stage('拉取代码') {
steps {
git branch: 'main', url: 'https://github.com/your-repo.git' // 配置Git仓库
}
}
stage('运行测试') {
steps {
sh 'python -m pytest tests/' // 执行测试
}
}
stage('构建打包') {
steps {
sh 'python setup.py sdist bdist_wheel' // 构建Python包
}
}
stage('部署') {
when {
branch 'main' // 仅main分支触发部署
}
steps {
sh './deploy.sh' // 自定义部署脚本
}
}
}
post {
always {
archiveArtifacts artifacts: 'dist/**', fingerprint: true // 归档制品
emailext body: '构建${currentBuild.fullDisplayName}已完成',
subject: 'Jenkins构建通知',
to: 'team@example.com' // 发送邮件通知
}
}
}
通过Pipeline script from SCM配置Git仓库地址与凭据,实现流水线的版本控制与自动化触发。
4. 性能调优:硬件与配置优化
/etc/default/jenkins,调整JVM堆大小(根据服务器内存调整,如-Xms2g -Xmx4g)。# of executors(根据CPU核心数调整,如4核可设为4-6),避免过多并发导致资源竞争。5. 安全配置:权限与认证
Enable security,选择Logged-in users can do anything(或更严格的权限策略)。Role-based Authorization Strategy插件,按角色分配权限(如开发人员仅能读取代码、触发构建,运维人员可部署)。Credentials Binding插件绑定敏感信息(如Git SSH密钥、服务器密码),避免硬编码在流水线中。6. 自动化部署:流水线与脚本结合
在流水线中集成部署步骤,如使用sshPublisher插件部署到远程服务器,或调用Ansible Playbook:
stage('部署到测试环境') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'test-server', // 配置SSH服务器信息(Manage Jenkins → Manage Credentials)
verbose: true,
command: 'cd /opt/app && git pull origin main && pip install -r requirements.txt && systemctl restart app.service'
)
]
)
}
}
或通过deploy.sh脚本实现自动化部署(如停止服务、更新代码、启动服务)。
7. 监控与报警:及时发现问题
Monitoring插件(需安装),查看Jenkins的CPU、内存使用率、构建队列等指标。Email Extension插件配置邮件报警(构建失败时发送通知),或集成企业微信/钉钉机器人(通过Webhook发送实时报警)。/var/log/jenkins/jenkins.log,定位构建失败或性能问题。