Jenkins界面与基本操作详解 - 手把手教你玩转Jenkins

Jenkins界面与基本操作

一、前言

上一篇文章我们成功安装了Jenkins。现在打开Jenkins界面,面对满屏的菜单和按钮,你可能会有些懵。别担心,本文将带你逐一了解Jenkins界面的每一个角落,让你操作起来得心应手。

二、Jenkins界面总览

登录Jenkins后,你会看到主界面,主要由以下几个区域组成:

2.1 左侧导航菜单

左侧菜单是Jenkins的核心操作入口:

  • New Item(新建任务):创建新的构建任务
  • People(用户):查看和管理Jenkins用户
  • Build History(构建历史):查看所有构建记录
  • Manage Jenkins(管理Jenkins):系统管理入口(非常重要!)
  • My Views(我的视图):切换自定义视图
  • Credentials(凭据):管理密码、密钥等凭据
  • Build Queue(构建队列):正在排队等待执行的构建
  • Executors(执行器):当前正在运行的构建

2.2 主内容区域

中间区域显示当前视图下的所有任务(Jobs),包括:

  • 任务名称和状态图标(🔵上次成功 / 🔴上次失败 / 🟡未构建)
  • 上次构建时间
  • 上次成功构建时间
  • 上次失败构建时间
  • 是否允许构建的开关

2.3 右侧边栏

右侧显示构建队列和执行器状态:

  • Build Queue:等待执行的构建列表
  • Executors:正在执行构建的线程,默认2个

三、视图管理

当你的Jenkins任务越来越多时,视图就变得非常重要了。视图可以帮助你分类和筛选任务。

3.1 创建新视图

点击主界面顶部的 "+" 号"New View"

  • 视图名称:给视图起个名字,如"后端项目"
  • 视图类型
    • List View(列表视图):手动选择要显示的任务
    • My View(我的视图):只显示你有权限的任务

3.2 List View详细配置

选择List View后,可以进行更多配置:

  • Jobs:勾选要在这个视图中显示的任务
  • Recurse in subfolders:是否显示子文件夹中的任务
  • Columns:选择要显示的列(状态、名称、上次成功等)
  • Job Filters:使用正则表达式过滤任务名称
  • Add status filter:按构建状态过滤

建议按项目类型创建视图,例如:

  • "前端项目" - 所有前端构建任务
  • "后端项目" - 所有后端构建任务
  • "定时任务" - 所有定时执行的任务
  • "部署任务" - 所有部署相关的任务

3.3 编辑和删除视图

点击视图标签旁边的下拉箭头,可以编辑或删除视图。

四、凭据管理

Jenkins在构建过程中经常需要访问外部系统(如Git仓库、服务器、数据库等),这些都需要凭据(用户名密码、SSH密钥等)。

4.1 进入凭据管理

点击左侧 Credentials → System → Global credentials,这里管理的是全局凭据,所有任务都可以使用。

4.2 添加用户名密码凭据

点击"Add Credentials":

  • Kind:选择"Username with password"
  • Scope:选择"Global"(全局可用)
  • Username:填写用户名
  • Password:填写密码
  • ID:唯一标识(如 gitlab-creds),Pipeline中通过这个ID引用
  • Description:描述说明(如"GitLab访问账号")

4.3 添加SSH密钥凭据

Kind选择"SSH Username with private key":

  • Username:SSH用户名(如 root
  • Private Key
    • "Enter directly":直接粘贴私钥内容
    • "From a file on Jenkins master":从文件读取
  • ID:如 deploy-ssh-key
# 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -C "jenkins@yourcompany.com"

# 查看私钥内容(粘贴到Jenkins)
cat ~/.ssh/id_rsa

# 将公钥复制到目标服务器
ssh-copy-id user@target-server

4.4 添加Secret Text凭据

Kind选择"Secret text":

  • Secret:填写密钥内容(如API Token、访问密钥等)
  • ID:如 docker-hub-token

4.5 在Pipeline中使用凭据

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                // 使用凭据拉取代码
                git credentialsId: 'gitlab-creds',
                    url: 'git@gitlab.com:group/project.git'
            }
        }
        stage('Deploy') {
            steps {
                // 使用SSH凭据部署
                sshagent(credentials: ['deploy-ssh-key']) {
                    sh 'ssh user@server "cd /app && git pull"'
                }
            }
        }
    }
}

五、节点管理

Jenkins采用Master/Agent架构。Master负责调度任务,Agent负责执行构建。当构建任务很多时,添加Agent节点可以分担Master的压力。

5.1 Master/Agent架构说明

  • Master(主节点):Jenkins本身运行的服务器,负责任务调度、Web界面、存储配置
  • Agent/Slave(代理节点):执行具体构建任务的工作节点

为什么要用Agent?

  • 多台机器并行构建,提高效率
  • 不同操作系统(Linux/Windows/macOS)构建需求
  • 避免在Master上执行构建,保证Master稳定
  • 资源隔离,某些任务需要特殊环境

5.2 添加Agent节点

进入 Manage Jenkins → Nodes,点击"New Node":

  • Node name:节点名称(如 agent-linux-01
  • Type:选择"Permanent Agent"(永久代理)

配置参数:

  • Remote root directory:Agent上的工作目录(如 /home/jenkins
  • Labels:标签(如 linux docker),Pipeline中通过标签选择节点
  • Usage
    • "Use this node as much as possible":尽量使用
    • "Only build jobs with label expressions matching this node":只构建匹配标签的任务
  • Launch method
    • "Launch agents via SSH":通过SSH启动(最常用)
    • "Launch agent via execution of command on the master":通过命令启动

5.3 SSH方式连接Agent

选择"Launch agents via SSH":

  • Host:Agent服务器的IP地址
  • Credentials:选择SSH凭据
  • Host Key Verification Strategy:选择"Known hosts file"或"Non verifying Verification Strategy"

在Agent服务器上需要准备:

# 1. 创建Jenkins工作目录
sudo mkdir -p /home/jenkins
sudo chown jenkins-user:jenkins-user /home/jenkins

# 2. 确保Java已安装
java -version

# 3. 确保SSH服务运行
sudo systemctl status sshd

5.4 在Pipeline中指定节点

pipeline {
    // 通过标签选择Agent
    agent { label 'linux && docker' }
    
    stages {
        stage('Build') {
            steps {
                sh 'echo "Building on Linux Agent"'
            }
        }
    }
}

六、系统管理

点击左侧 Manage Jenkins,这里是Jenkins的大脑控制中心。

6.1 常用管理功能

  • System(系统配置):全局系统设置,如Jenkins URL、邮件服务器、全局环境变量
  • Tools(全局工具配置):配置JDK、Maven、Git、Gradle等工具路径
  • Plugins(插件管理):安装、更新、卸载插件
  • Nodes(节点管理):管理Master和Agent节点
  • Security(安全配置):用户认证和授权策略
  • Credentials(凭据管理):管理密码、密钥等
  • Users(用户管理):创建、管理Jenkins用户

6.2 全局安全配置

进入 Manage Jenkins → Security

  • Security Realm(认证域)
    • "Jenkins' own user database":Jenkins自带用户管理
    • "LDAP":对接公司的LDAP/AD
    • "Unix user/group database":使用系统用户
  • Authorization(授权策略)
    • "Anyone can do anything":所有人可以做任何事(危险!)
    • "Logged-in users can do anything":登录用户可以做任何事
    • "Matrix-based security":矩阵式权限控制(推荐)
    • "Project-based Matrix Authorization Strategy":项目级矩阵权限

6.3 全局环境变量

Manage Jenkins → System 中,找到"Global properties":

  • 勾选"Environment variables"
  • 添加常用的全局变量,如:
# 示例全局环境变量
JAVA_HOME    = /opt/java/openjdk
MAVEN_HOME   = /opt/maven
DOCKER_HOST  = unix:///var/run/docker.sock
REGISTRY_URL = https://registry.example.com

七、用户权限管理

在团队协作中,权限管理非常重要。推荐使用Role-based Strategy插件。

7.1 安装Role-based Strategy插件

在插件管理中搜索安装 Role-based Strategy

7.2 配置角色

进入 Manage Jenkins → Manage and Assign Roles

创建角色(Manage Roles):

  • admin角色:拥有所有权限
  • developer角色:可以构建和查看,不能配置
  • viewer角色:只能查看,不能构建

分配角色(Assign Roles):

  • 将用户绑定到对应角色
  • 支持全局角色和项目角色

7.3 项目级权限

使用Item角色可以控制到具体项目的权限:

  • Pattern填项目名称的正则,如 frontend-.* 匹配所有前端项目
  • 给不同团队分配不同项目的权限

八、总结

本文详细介绍了Jenkins界面的各个功能区域:

  • 界面导航:左侧菜单、主内容区、执行器状态
  • 视图管理:分类展示任务,保持界面整洁
  • 凭据管理:安全存储密码和密钥
  • 节点管理:Master/Agent架构扩展
  • 系统管理:全局配置和安全设置
  • 权限管理:基于角色的访问控制

下一篇我们将动手创建第一个Freestyle项目,体验Jenkins的自动化构建能力!

发表回复

后才能评论