温馨提示×

Jenkins Linux版如何配置

小樊
32
2026-01-04 18:41:36
栏目: 智能运维

Linux 上配置 Jenkins 的完整步骤

一 准备环境

  • 安装 Java 11 或更高版本(Jenkins 2.357+ 要求 Java 11+)。以 OpenJDK 11 为例:
    • Debian/Ubuntu:sudo apt update && sudo apt install -y openjdk-11-jdk
    • RHEL/CentOS:sudo yum install -y java-11-openjdk-devel
    • 验证:java -version 应显示 11.x
  • 创建专用用户(推荐):sudo useradd -m -s /bin/bash jenkins && sudo passwd jenkins
  • 创建目录并赋权:sudo mkdir -p /var/lib/jenkins /var/log/jenkins && sudo chown -R jenkins:jenkins /var/lib/jenkins /var/log/jenkins
  • 开放防火墙端口(示例为 8080):
    • firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
    • ufw:sudo ufw allow 8080/tcp
  • 可选:准备离线安装包(war、JDK、插件),便于内网环境部署。

二 安装方式

  • 方式 A 使用系统包管理器(推荐)
    • RHEL/CentOS:
      • 导入仓库与密钥:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
      • sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
      • 安装:sudo yum install -y jenkins
      • 启动:sudo systemctl start jenkins && sudo systemctl enable jenkins
    • Debian/Ubuntu:
      • 导入密钥:curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.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 > /dev/null
      • 安装:sudo apt update && sudo apt install -y jenkins
      • 启动:sudo systemctl start jenkins && sudo systemctl enable jenkins
  • 方式 B 使用 WAR 包(通用)
    • 下载:wget https://get.jenkins.io/war-stable/latest/jenkins.war -O /opt/jenkins.war
    • 启动:sudo -u jenkins java -jar /opt/jenkins.war --httpPort=8080 --webroot=/var/lib/jenkins/war
    • 后台运行:nohup sudo -u jenkins java -jar /opt/jenkins.war --httpPort=8080 > /var/log/jenkins.log 2>&1 &
  • 访问测试:浏览器打开 http://<服务器IP>:8080

三 初始化与安全配置

  • 解锁:查看初始密码 cat /var/lib/jenkins/secrets/initialAdminPassword,粘贴到 Web 向导
  • 插件安装:
    • 在线:选择 Install suggested plugins
    • 离线:将插件目录拷贝至 /var/lib/jenkins/plugins,并 chown -R jenkins:jenkins /var/lib/jenkins/plugins,然后重启
  • 创建管理员账户与实例 URL:保持默认或按需修改
  • 安全建议:
    • 使用反向代理(Nginx/Apache)并启用 HTTPS
    • 最小权限原则,配合 角色/权限 插件与 外部认证(如 LDAP/SSO)
    • 凭据使用 Credentials Binding 安全存储
    • 定期更新 Jenkins 与插件。

四 常用配置与排错

  • 修改端口与上下文路径
    • WAR:java -jar jenkins.war --httpPort=9090 --prefix=/jenkins
    • RPM/DEB:编辑 /etc/sysconfig/jenkins(JENKINS_PORT、JENKINS_ARGS)
  • 指定 JDK
    • 系统服务:编辑 /etc/init.d/jenkins,在 candidates 中添加你的 $JAVA_HOME/bin/java
    • systemd 服务:在 Unit 中设置 Environment=“JAVA_HOME=/usr/local/jdk-11”
  • 工作目录与日志
    • 默认 JENKINS_HOME=/var/lib/jenkins;日志 /var/log/jenkins/jenkins.log
    • 自定义:启动参数 --webroot=… 或在 systemd 中设置 Environment=“JENKINS_HOME=/data/jenkins”
  • 插件镜像与更新
    • 更新中心镜像:编辑 /var/lib/jenkins/hudson.model.UpdateCenter.xml,使用国内镜像加速
  • 权限问题
    • 构建/部署目录需对 jenkins 用户可写:chown -R jenkins:jenkins /path
    • 访问受限时检查目录属主与 SELinux/AppArmor 策略
  • 常用命令
    • 查看状态:systemctl status jenkins
    • 实时日志:journalctl -u jenkins -f
    • 重启:systemctl restart jenkins
  • 常见问题
    • 端口冲突:更换 –httpPort
    • 插件依赖缺失:检查插件目录 META-INF/MANIFEST.MF 补全依赖
    • 无法访问:核对防火墙/云安全组、监听端口与 SELinux。

0