第二篇:《Jenkins 从零搭建:安装、配置与第一个 Pipeline》

工欲善其事,必先利其器。搭建 Jenkins 环境是 CI/CD 实践的第一步。本文详细介绍三种 Jenkins 安装方式(WAR 包、系统包、Docker),重点推荐 Docker 方式,并带你完成初始配置、插件安装,最后创建第一个 Pipeline 任务。跟着操作,30 分钟内拥有一个可用的 Jenkins 环境并跑通第一个流水线。

一、安装方式对比与选型

Jenkins 官方提供多种安装方式,各有适用场景:

💡 推荐选择:对于新手和大多数生产场景,Docker 安装方式是最优选择。它预装了所有依赖项,避免了环境冲突;通过数据卷持久化配置,升级时不会丢失数据。

二、Docker 方式安装 Jenkins(推荐)

2.1 准备 Docker 环境

确保系统已安装 Docker Engine,建议使用 20.10 以上版本:

bash 复制代码
docker --version

如果未安装 Docker,可参考以下命令快速安装(Ubuntu 示例):

bash 复制代码
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

⚠️ 常见问题:如果遇到权限错误,将当前用户加入 docker 组:sudo usermod -aG docker $USER,然后重新登录。

2.2 启动 Jenkins 容器

运行以下命令启动 Jenkins 容器:

bash 复制代码
docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkins/jenkins:lts

参数说明:

-d:后台运行容器

-p 8080:8080:映射 Jenkins Web 端口

-p 50000:50000:映射 Jenkins Agent 通信端口

-v jenkins_home:/var/jenkins_home:关键,使用 Docker 卷持久化 Jenkins 数据

-v /var/run/docker.sock:/var/run/docker.sock:让 Jenkins 容器内的 Docker 命令可以调用宿主机的 Docker 守护进程

⚠️ 注意:如果容器时间与宿主机不同步,可添加 -v /etc/localtime:/etc/localtime:ro 挂载。

2.3 获取初始密码

首次启动后,Jenkins 会生成一个初始管理员密码。通过以下命令查看:

bash 复制代码
docker logs jenkins

在输出中查找类似以下内容的一行:

text

Please use the following password to proceed to installation:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

复制该密码,准备进行初始化配置。

三、Jenkins 初始化配置

3.1 访问 Jenkins 并解锁

打开浏览器,访问 http://<你的服务器IP>:8080

输入上一步获取的初始密码

点击"继续"

⚠️ 注意:如果服务器有防火墙,需开放 8080 端口。

3.2 安装插件

Jenkins 提供两种插件安装方式:

安装推荐的插件:自动安装最常用的插件集合(推荐新手选择)

选择插件来安装:手动挑选需要的插件

推荐插件列表默认包含 Git、Pipeline、Docker 等核心插件。

⚠️ 常见坑点:如果网络环境特殊,插件安装可能超时。解决方案是配置国内镜像源,或在容器内手动下载插件包。

3.3 创建管理员账户

插件安装完成后,按提示创建第一个管理员用户:

用户名:admin(或自定义)

密码:设置一个强密码

邮箱:填写你的邮箱地址

3.4 配置 Jenkins 实例地址

输入 Jenkins 的访问 URL(默认 http://<服务器IP>:8080),点击"保存并完成"。

⚠️ 重要提醒:首次安装后,建议立即配置 Jenkins 的 JVM 参数,否则默认内存分配只有 256MB,跑几个任务就容易 OOM。

Docker 方式调整 JVM 参数(启动容器时指定):

bash 复制代码
docker run -d \
  --name jenkins \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e JAVA_OPTS="-Xmx2048m -Xms512m" \
  jenkins/jenkins:lts

四、第一个 Pipeline 任务

4.1 在 Jenkins UI 中创建 Pipeline 任务

点击 Jenkins 首页的 "新建任务" (New Item)

输入任务名称,如 my-first-pipeline

选择 "流水线" (Pipeline)类型

点击"确定"

4.2 编写 Pipeline 脚本

在任务配置页面的 "流水线" 部分,选择 "Pipeline script",粘贴以下代码:

groovy 复制代码
pipeline {
    agent any

    stages {
        stage('拉取代码') {
            steps {
                echo '开始拉取代码...'
                // 实际项目中在此处添加 git checkout 命令
            }
        }
        stage('编译') {
            steps {
                echo '开始编译...'
                sh 'echo "编译完成"'
            }
        }
        stage('测试') {
            steps {
                echo '运行单元测试...'
                sh 'echo "测试通过"'
            }
        }
        stage('部署') {
            steps {
                echo '部署到测试环境...'
                sh 'echo "部署完成"'
            }
        }
    }
}

4.3 保存并运行

点击 "保存"

在任务页面点击 "立即构建" (Build Now)

等待构建完成,点击构建编号查看 "控制台输出" (Console Output)

如果看到类似以下输出,说明你的第一个 Pipeline 运行成功:

text

Pipeline stage (拉取代码)

Pipeline echo

开始拉取代码...

Pipeline stage (编译)

Pipeline echo

开始编译...

Pipeline echo

编译完成

...

Finished: SUCCESS

五、系统包安装方式(备选)

如果无法使用 Docker,也可以通过系统包安装 Jenkins:

Ubuntu/Debian:

bash 复制代码
# 安装 Java
sudo apt install -y openjdk-11-jdk

# 添加 Jenkins 仓库
sudo wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

# 安装 Jenkins
sudo apt update
sudo apt install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins

CentOS/RHEL:

bash 复制代码
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
sudo yum install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins

安装完成后,访问 http://<服务器IP>:8080,后续配置步骤与 Docker 方式相同。

六、小结

安装方式:Docker 方式最推荐,数据卷持久化配置,升级方便

初始化配置:获取初始密码 → 安装插件 → 创建管理员账户

第一个 Pipeline:创建 Pipeline 任务 → 编写声明式脚本 → 运行并查看控制台输出

相关推荐
Hui Baby2 小时前
kubeconfig 文件生成和赋权
运维
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题 第172题】【07_Redis篇】第8题:`setnx` 做分布式锁存在的问题
java·redis·分布式锁·死锁·setnx
A_humble_scholar2 小时前
Linux(十七)深入多线程编程:同步原语与实战指南
linux·运维·c++
喜欢打篮球的普通人2 小时前
LLVM后端指令选择
android·java·javascript
某不知名網友2 小时前
C++ 七大排序算法完整讲解
java·算法·排序算法
用户6757049885022 小时前
手摸手教你玩 Jenkins,一次搞懂 CI/CD!(第三章:发布之nodeAgent)
后端·jenkins
CodeStats2 小时前
《源纹天书》第一百六十一章至第一百六十五章:开源化宣言、元定义的力量、栈帧重构、容器道场升级、技术债的化身!
java·源纹天书
不良手残2 小时前
MyBatisPlus代码自动生成器
java
SamDeepThinking2 小时前
一次线程池线上故障复盘:四层防线如何避免数据丢失
java·后端·程序员