ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Jenkins安装与配置全指南:从Docker到生产环境优化

Jenkins安装与配置全指南:从Docker到生产环境优化

1. Jenkins安装前准备

1.1 系统要求检查

在开始安装Jenkins之前,我们需要确保系统满足最低配置要求。根据官方文档,Jenkins的最低推荐配置如下:

  • 内存:256MB可用内存(作为Docker容器运行建议1GB)
  • 磁盘空间:1GB可用空间(作为Docker容器运行建议10GB)
  • Java环境:Java 8(JRE或JDK均可)

对于小型团队的生产环境,建议配置:

  • 内存:1GB+
  • 磁盘空间:50GB+

注意:如果计划将Jenkins作为Docker容器运行,Java环境不是必须的,因为官方镜像已经包含了所需的Java环境。

1.2 Java环境安装

Jenkins是基于Java开发的应用程序,因此需要先安装Java环境。以下是各平台的Java安装方法:

Ubuntu/Debian系统:

sudo apt update sudo apt install openjdk-8-jdk

CentOS/RHEL系统:

sudo yum install java-1.8.0-openjdk-devel

验证Java安装:

java -version

应该能看到类似以下的输出:

openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

1.3 防火墙配置

如果系统启用了防火墙,需要开放Jenkins将使用的端口(默认8080和50000):

Ubuntu/Debian(UFW):

sudo ufw allow 8080 sudo ufw allow 50000 sudo ufw enable

CentOS/RHEL(Firewalld):

sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --permanent --add-port=50000/tcp sudo firewall-cmd --reload

2. Jenkins安装方法

2.1 使用Docker安装(推荐)

Docker是最简单、最干净的Jenkins安装方式,特别适合快速部署和测试环境。

安装Docker:

# Ubuntu/Debian sudo apt update sudo apt install docker.io sudo systemctl enable --now docker # CentOS/RHEL sudo yum install docker sudo systemctl enable --now docker

运行Jenkins容器:

docker run -d \ --name jenkins \ -u root \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean

参数说明:

  • -d:后台运行容器
  • --name jenkins:为容器命名
  • -u root:以root用户运行(避免权限问题)
  • -p 8080:8080:映射Web界面端口
  • -p 50000:50000:映射代理通信端口
  • -v jenkins-data:/var/jenkins_home:持久化Jenkins数据
  • -v /var/run/docker.sock:/var/run/docker.sock:允许Jenkins使用宿主机Docker

2.2 使用系统包管理器安装

Ubuntu/Debian系统:

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

CentOS/RHEL系统:

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 jenkins

启动Jenkins服务:

sudo systemctl enable jenkins sudo systemctl start jenkins

2.3 使用WAR包安装

对于需要最大灵活性的高级用户,可以直接下载Jenkins的WAR包运行:

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war java -jar jenkins.war --httpPort=8080

这种方式适合临时测试或需要自定义Servlet容器的情况。

3. 初始配置Jenkins

3.1 解锁Jenkins

安装完成后,访问http://<服务器IP>:8080,你会看到解锁页面。要获取初始管理员密码:

Docker安装:

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

系统包安装:

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

将输出的密码粘贴到Web界面中,点击"Continue"。

3.2 安装推荐插件

在"Customize Jenkins"页面,选择"Install suggested plugins"安装推荐插件集。这包括:

  • Git插件:用于从Git仓库拉取代码
  • Pipeline:支持Jenkins Pipeline
  • Blue Ocean:提供现代化的用户界面
  • Credentials:管理各种凭证
  • SSH Agent:通过SSH连接远程服务器

插件安装过程可能需要几分钟时间,取决于网络速度。

3.3 创建管理员账户

插件安装完成后,系统会提示创建第一个管理员用户。建议:

  • 使用真实的邮箱地址
  • 设置强密码(至少12位,包含大小写字母、数字和特殊字符)
  • 记录好凭据,避免丢失

专业建议:即使只有一个人使用Jenkins,也不要使用默认的admin账户,而是创建具有管理员权限的命名账户,便于审计。

4. Jenkins基本配置

4.1 系统设置

进入"Manage Jenkins" > "Configure System":

  1. 系统消息:可以设置显示在所有页面的通知信息
  2. 执行者数量:根据服务器CPU核心数设置(通常为核心数的1-2倍)
  3. Jenkins URL:确保与实际的访问地址一致
  4. 邮件通知:配置SMTP服务器用于发送构建通知

4.2 全局工具配置

进入"Manage Jenkins" > "Global Tool Configuration":

  1. JDK安装:

    • 可以自动安装或指定现有JDK路径
    • 建议至少配置一个Java 8环境
  2. Git安装:

    • 如果系统已安装Git,指定可执行文件路径
    • 或选择自动安装
  3. Maven安装:

    • 配置Maven用于Java项目构建
    • 建议安装3.6.x或更高版本
  4. Docker安装:

    • 如果需要在Pipeline中使用Docker,确保正确配置

4.3 安全设置

进入"Manage Jenkins" > "Configure Global Security":

  1. 安全域:默认使用Jenkins专有用户数据库
  2. 授权策略:
    • 小型团队:建议"Matrix-based security"
    • 企业环境:考虑与LDAP/AD集成
  3. CSRF保护:保持启用状态
  4. Agent协议:默认启用JNLP-4协议

5. 常见问题解决

5.1 无法访问Jenkins页面

可能原因:

  • 防火墙未开放8080端口
  • Jenkins服务未正常运行
  • 代理或网络配置问题

解决方法:

# 检查服务状态 sudo systemctl status jenkins # 系统包安装 docker ps -a | grep jenkins # Docker安装 # 检查端口监听 sudo netstat -tulnp | grep 8080

5.2 插件安装失败

可能原因:

  • 网络连接问题
  • 镜像源不可用
  • 磁盘空间不足

解决方法:

  1. 更换更新中心镜像:

    • 进入"Manage Jenkins" > "Manage Plugins" > "Advanced"
    • 将"Update Site" URL改为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  2. 手动安装插件:

    • 从 https://plugins.jenkins.io/ 下载.hpi文件
    • 在"Advanced"标签页上传安装

5.3 构建队列堵塞

可能原因:

  • 执行者数量不足
  • 长时间运行的构建占用资源
  • 节点离线

解决方法:

  1. 增加执行者数量(系统设置中)
  2. 检查构建历史,优化长时间任务
  3. 添加更多构建节点(Manage Nodes)

6. 生产环境最佳实践

6.1 备份策略

定期备份Jenkins配置:

# 备份整个JENKINS_HOME目录 tar -czvf jenkins-backup-$(date +%Y%m%d).tar.gz /var/lib/jenkins # 使用thinBackup插件设置自动备份

6.2 性能优化

  1. JVM参数调整:

    • 编辑/etc/default/jenkins(Debian/Ubuntu) 或/etc/sysconfig/jenkins(RHEL/CentOS)
    • 修改JAVA_OPTS,例如:
      JAVA_OPTS="-Xms1g -Xmx2g -XX:MaxPermSize=512m -Djava.awt.headless=true"
  2. 定期清理构建历史:

    • 使用"Discard Old Build"插件自动清理旧构建
    • 或设置作业的构建保留策略

6.3 高可用配置

对于关键业务环境,考虑以下高可用方案:

  1. 主从架构:设置多个构建节点分担负载
  2. 定期快照:对Jenkins服务器进行VM/容器快照
  3. 配置即代码:使用JCasC (Jenkins Configuration as Code) 插件管理配置

7. 插件推荐

以下是一些提高生产力的必备插件:

  1. Blue Ocean:现代化UI,可视化Pipeline
  2. Pipeline:支持声明式和脚本式Pipeline
  3. Git Parameter:添加Git分支参数
  4. Docker:集成Docker构建和部署
  5. Role-based Authorization:细粒度的权限控制
  6. Build Monitor View:构建状态监控视图
  7. Warnings Next Generation:静态代码分析结果可视化

安装方法:进入"Manage Jenkins" > "Manage Plugins" > "Available",搜索并安装所需插件。

返回列表