温馨提示×

jenkins部署ubuntu注意啥

小樊
37
2026-10-15 23:40:24
栏目: 智能运维

在 Ubuntu 上使用 Jenkins 部署(安装/运行/集成) 时,有几个关键点和坑需要特别注意,下面按「安装 → 配置 → 权限 → 部署 → 常见坑」给你总结一份实战清单。


一、安装方式选择(很重要)

✅ 推荐:官方 Jenkins 仓库(LTS)

不要用 Ubuntu 自带 apt 的旧版本。

sudo apt update
sudo apt install -y openjdk-17-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins

Jenkins 2.4xx 以后 必须 Java 17+


二、Java 版本问题(最常见坑)

❌ 常见错误

  • Ubuntu 默认 openjdk-11
  • Jenkins 新版本启动失败

✅ 正确做法

java -version

确保是:

  • Java 17(推荐)
  • 或 Java 21

如有多版本:

sudo update-alternatives --config java

三、用户与权限(部署核心)

Jenkins 默认用户是:

jenkins

⚠️ 坑点

  • jenkins 用户 没有 sudo 权限
  • 不能直接执行 docker / systemctl

解决方案

1️⃣ 把 jenkins 加入 docker 组

sudo usermod -aG docker jenkins
sudo systemctl restart jenkins

2️⃣ 需要 root 权限的部署

  • 在 /etc/sudoers.d/jenkins:
jenkins ALL=(ALL) NOPASSWD:ALL

四、端口与防火墙

默认端口

8080

防火墙(Ubuntu)

sudo ufw allow 8080

✅ 生产建议

  • Nginx 反向代理
  • 启用 HTTPS

五、初始化 Jenkins

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

浏览器访问:

http://<服务器IP>:8080

六、磁盘与日志(容易忽视)

日志位置

/var/log/jenkins/jenkins.log

工作目录

/var/lib/jenkins

⚠️ 构建多了会爆盘,建议:

  • 单独挂载磁盘
  • 定期清理旧构建

七、自动化部署 Ubuntu 服务注意事项

如果你是 Jenkins 部署 Ubuntu 应用(如 Spring / Node / Python):

1️⃣ systemd 服务

[Unit]
Description=MyApp
After=network.target

[Service]
User=appuser
ExecStart=/usr/bin/java -jar /opt/app/app.jar
Restart=always

[Install]
WantedBy=multi-user.target

Jenkins 中:

sudo systemctl restart myapp

2️⃣ 环境变量问题

Jenkins 环境 非常干净

  • 没有 .bashrc
  • 没有 PATH

✅ 显式指定:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk

八、插件与安全性

必装插件

  • Git
  • Pipeline
  • Docker
  • SSH Agent

安全

  • 禁用匿名访问
  • 使用 Role-Based Strategy
  • 不要暴露公网 8080

九、常见问题速查

问题 原因
Jenkins 启动失败 Java 版本不对
docker: command not found 没加 docker 组
构建成功但服务没起 systemctl 权限
中文乱码 LANG 没设 UTF-8

十、生产建议架构

Nginx + Jenkins + Docker + Ubuntu
        ↓
   Pipeline
        ↓
  Docker / systemd 部署

如果你能说一下:

  • ✅ Ubuntu 版本(20.04 / 22.04 / 24.04)
  • ✅ 部署什么项目(Java / 前端 / Python)
  • ✅ 是否用 Docker

我可以直接给你 一套可复制的 Jenkinsfile + 部署脚本。

0 踩