Ubuntu上Jenkins部署最佳实践
sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本,避免兼容性问题。sudo apt install openjdk-11-jdk -y),并通过java -version验证安装。wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -),创建/etc/apt/sources.list.d/jenkins.list文件并写入deb http://pkg.jenkins.io/debian-stable binary/,确保软件来源安全。sudo apt update && sudo apt install jenkins -y安装Jenkins;启动服务(sudo systemctl start jenkins),设置开机自启(sudo systemctl enable jenkins)。http://<服务器IP>:8080,通过sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取初始密码解锁;安装推荐插件(如Pipeline、Git、Blue Ocean),提升基础功能。Manage Jenkins > Configure System,设置Number of executors(根据CPU核心数调整,建议2-4个,避免资源耗尽);配置Jenkins URL(如http://your-domain.com:8080),确保外部访问正确。Manage Jenkins > Global Tool Configuration,指定JDK(如/usr/lib/jvm/java-11-openjdk-amd64)、Git(如/usr/bin/git)、Maven/Gradle的安装路径,避免每次构建手动配置。Manage Jenkins > Manage Plugins > Available中搜索安装),创建角色(如Admin、Developer、Viewer),分配项目级/全局权限,实现精细化管控。Manage Jenkins > Configure Global Security,勾选“Enable security”;在“Security Realm”中选择身份验证方式(优先使用LDAP或OAuth集成企业账号,或“Jenkins’ own user database”管理本地用户)。Manage Jenkins > Configure Global Security启用HTTPS,修改Jenkins URL为https://,避免数据传输被窃取。sudo ufw allow 8080/tcp(HTTPS则为sudo ufw allow 443/tcp)开放端口;限制访问IP(如sudo ufw allow from <办公IP> to any port 8080),减少非法访问。Manage Jenkins > Manage Plugins > Installed检查更新,移除不再维护的插件(如存在已知漏洞的插件)。/etc/default/jenkins文件,修改JAVA_ARGS参数(如JAVA_ARGS="-Xmx2048m -Xms1024m"),根据服务器内存大小分配(建议不超过物理内存的70%),避免内存溢出。Manage Jenkins > Configure System,设置# of executors为合理值(如2-4个),避免过多并发任务导致服务器资源耗尽;对于大型项目,可使用分布式构建(添加代理节点,Manage Jenkins > Manage Nodes and Clouds中配置)。mvn clean),或通过Pipeline脚本添加cleanWs()步骤,释放磁盘空间。journalctl -u jenkins -f或/var/log/jenkins/jenkins.log),监控构建状态、错误信息;使用Prometheus+Grafana监控Jenkins性能(如CPU、内存、构建队列),及时发现瓶颈。/var/lib/jenkins目录(包含配置、作业数据),可通过tar -czvf jenkins_backup.tar.gz /var/lib/jenkins命令手动备份,或使用“ThinBackup”插件设置定时备份(如每天凌晨2点);测试备份恢复流程,确保数据可还原。Manage Jenkins > Check Now),及时升级到最新稳定版(sudo apt update && sudo apt upgrade jenkins);升级前备份数据,避免升级失败导致数据丢失。