目录
[1. 安装WSL时默认安装Ubuntu](#1. 安装WSL时默认安装Ubuntu)
[2. 安装WSL时选择其他的版本(如centos)](#2. 安装WSL时选择其他的版本(如centos))
[(1)安装 WSL(管理员 PowerShell)](#(1)安装 WSL(管理员 PowerShell))
[(2)准备 CentOS 镜像](#(2)准备 CentOS 镜像)
[3. 首次使用](#3. 首次使用)
[4. 日常怎么用](#4. 日常怎么用)
[5. 文件互访](#5. 文件互访)
[(2)安装 Java 21(Jenkins LTS 要求)](#(2)安装 Java 21(Jenkins LTS 要求))
[(3)添加 Jenkins 官方仓库并安装](#(3)添加 Jenkins 官方仓库并安装)
[(6)在 Windows 浏览器访问](#(6)在 Windows 浏览器访问)
[2、WSL 使用注意](#2、WSL 使用注意)
[3、可选:以后用 Docker 部署](#3、可选:以后用 Docker 部署)
[云托管 / SaaS](#云托管 / SaaS)
[自建 / 开源](#自建 / 开源)
一、Jenkins介绍
Jenkins 是一款开源的持续集成 / 持续交付(CI/CD)自动化服务器。
简单说:你把代码推到仓库后,Jenkins 可以按规则自动跑构建、测试、打包、部署,减少手工操作。
常见用途:
- 代码提交后自动编译、跑测试
- 生成安装包或 Docker 镜像
- 自动部署到测试 / 生产环境
- 用流水线(Pipeline)把多步流程串起来
特点:
- 插件生态很大,能对接 Git、Docker、Kubernetes、各类云和构建工具
- 用 Jenkinsfile(通常写在项目里)定义流水线,便于版本管理
- 免费开源,社区成熟,很多公司仍在用
二、Jenkins和Ansible的区别
两者都常出现在运维/自动化里,但职责不同:
| Jenkins | Ansible | |
|---|---|---|
| 定位 | CI/CD 编排平台 | 配置管理 / 批量运维工具 |
| 主要做什么 | 触发并编排流水线:拉代码 → 构建 → 测试 → 发布 | 在服务器上执行任务:装软件、改配置、启停服务、部署应用 |
| 工作方式 | 调度"流程怎么跑" | 用 Playbook 描述"机器上要变成什么样 / 要执行什么" |
| 典型场景 | 代码提交后自动构建测试并触发部署 | 一次性或重复地配置 100 台机器、部署应用、补丁更新 |
| 核心产物 | Pipeline / Job | Playbook / Role |
关系可以这样理解:
- Jenkins:管"什么时候、按什么顺序做整条流水线"
- Ansible:管"具体怎么改服务器、怎么部署"
很多团队会把它们一起用:Jenkins 跑 CI,到部署阶段再调用 Ansible 去目标机器执行。
Jenkins 更偏流水线调度,Ansible 更偏远程执行与配置落地。
三、安装WSL
WSL(Windows Subsystem for Linux) 是微软在 Windows 上提供的功能,让你在 Windows 里直接跑一套 Linux 环境,而不用再开一台完整虚拟机或双系统。
简单说:Windows 和 Linux 可以同时用------浏览器、Office 在 Windows;
bash、apt/yum、开发工具在 Linux。作用:
- 用 Linux 命令行和常见工具(
ssh、git、python、docker等)- 装 Ubuntu、Debian、CentOS(导入)等发行版
- 和 Windows 共享文件(如访问
C:盘)- 适合做 Linux 开发、运维练习、跑服务端脚本
1. 安装WSL时默认安装Ubuntu
用管理员身份打开 PowerShell 或终端,执行:
bash
wsl --install
默认会安装 WSL2,并带上 Ubuntu。装完后重启电脑。
只想装 Ubuntu,或指定发行版:
bash
wsl --list --online # 查看可用发行版
wsl --install -d Ubuntu # 安装 Ubuntu
2. 安装WSL时选择其他的版本(如centos)
(1)安装 WSL(管理员 PowerShell)
bash
wsl --install --no-distribution
重启电脑。确认 WSL2:
bash
wsl --set-default-version 2
(2)准备 CentOS 镜像
首选:官方 CentOS Stream WSL 镜像(推荐)
格式是 .wsl(专给 WSL 用,不必再找 .tar)。
- 下载目录(Stream 9 / x86_64):Index of /SIGs/9-stream/altimages/images/wsl/x86_64
- 选最新的类似文件:
CentOS-Stream-Image-WSL-Base.x86_64-9-XXXXXX.wsl - 说明文档:https://docs.centos.org/centos-alternative-images-sig/wsl-images/
安装方式(二选一):
- 下载后 双击
.wsl文件 - 或在管理员 PowerShell 里:
bash
wsl --install --from-file .wsl的完整路径 --name CentOS的名字#(路径和文件名改成实际下载的。)
3. 首次使用
重启后打开终端(开始菜单搜)运行:
bash
wsl
第一次会让设置 Linux 用户名和密码(密码输入时不显示,属正常)。
4. 日常怎么用
| 场景 | 做法 |
|---|---|
| 进入 Linux | wsl,或开始菜单点 Ubuntu |
| 退出 | 输入 exit |
| 在 Windows 里跑一条 Linux 命令 | wsl ls /home |
| 看已安装发行版 | wsl -l -v |
| 关机(释放内存) | wsl --shutdown |
5. 文件互访
- Windows 文件在 Linux 里:
/mnt/c/Users/用户名/ - Linux 文件在 Windows 里:资源管理器地址栏输入
\\wsl$\Ubuntu\
项目代码建议放在 Linux 家目录(如 ~/projects),比放在 /mnt/c/... 性能更好。
四、在WSL上部署Jenkins的部署步骤
我在本地上使用的是发行版 CentOS Stream 9,暂未安装Docker/Podman和Java,因此我采用CentOS Stream 9 原生安装 Jenkins LTS
提示:发行版本可以根据自己的环境进行安装,Docker和Podman暂时先不用安装,等到后期有需要时可以再安装。
1、部署步骤
在 PowerShell 或 Windows Terminal 里进入 WSL:
bash
wsl -d CentOS-Stream9
(1)更新系统并安装依赖
bash
sudo dnf -y update
sudo dnf -y install fontconfig git wget curl
Jenkins 需要字体相关依赖,否则 UI 可能异常。
如果在下载数据,
dnf卡在拉仓库元数据(或卡在某个镜像的连接/握手)阶段时,有可能是镜像源选择慢 / 首个镜像不通或很慢,导致元数据还没开始下载,所以进度条停在 0。这种情况下,有时多等一会儿会自己跳到下一个镜像;有时会卡很久。
针对这种问题的解决方案是:
- 先
Ctrl+C停掉当前dnf- 换成国内镜像(推荐),再更新
国内镜像如清华镜像源(CentOS Stream 9):
bash
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.stream.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream|g' \
-i.bak /etc/yum.repos.d/centos*.repo /etc/yum.repos.d/centos-addons.repo
sudo dnf clean all
sudo dnf -y makecache
sudo dnf -y update
不同版本 repo 写法不同,所以再改镜像源之前先检查机器上的 repo 文件
(2)安装 Java 21(Jenkins LTS 要求)
bash
sudo dnf -y install java-21-openjdk java-21-openjdk-devel
java -version
应看到类似 openjdk version "21.x.x"。
(3)添加 Jenkins 官方仓库并安装
bash
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-2023.key
sudo dnf -y install jenkins
(4)启动并设置开机自启
bash
sudo systemctl daemon-reload
sudo systemctl enable --now jenkins
sudo systemctl status jenkins
状态应为 active (running)。
(5)获取初始管理员密码
bash
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
复制输出的一长串密码。
(6)在 Windows 浏览器访问
按向导操作:
- 粘贴初始密码
- 选 Install suggested plugins
- 创建管理员账号
- 实例 URL 可保持默认
http://localhost:8080/
(7)常用管理命令
bash
sudo systemctl start jenkins
sudo systemctl stop jenkins
sudo systemctl restart jenkins
sudo systemctl status jenkins
# 日志
sudo journalctl -u jenkins -f
数据目录:
/var/lib/jenkins配置文件:
/etc/sysconfig/jenkins(部分版本)或
/usr/lib/systemd/system/jenkins.service
2、WSL 使用注意
(1)关掉电脑前:先执行停止jenkins
bash
sudo systemctl stop jenkins
目的:减少异常退出。
(2)WSL 被关掉后:下次 wsl 启动后若 Jenkins 没起来,执行:
bash
sudo systemctl start jenkins
(3)改端口(若 8080 被占用):
bash
sudo systemctl edit jenkins
写入例如:
bash
[Service]
Environment="JENKINS_PORT=8081"
然后:
bash
sudo systemctl daemon-reload
sudo systemctl restart jenkins
(4)只本机访问即可:WSL2 下 localhost:8080 一般已够用;若局域网其他机器要访问,再考虑 Windows 防火墙与端口转发。
3、可选:以后用 Docker 部署
当前本地没有 Docker。若以后要容器化,可先装 Docker Desktop(勾选 WSL2 集成),再用官方镜像:
bash
docker run -d --name jenkins \
-p 8080:8080 -p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts-jdk17
附加:常见的CI工具
常见的 CI(持续集成)工具大致分几类:
云托管 / SaaS
- GitHub Actions --- 和 GitHub 深度集成,用得最多
- GitLab CI/CD --- 和 GitLab 一体,Pipeline 写在
.gitlab-ci.yml- Azure DevOps Pipelines --- 微软体系,企业常见
- CircleCI --- 云原生,配置灵活
- Bitbucket Pipelines --- Atlassian / Bitbucket 用户常用
- Travis CI --- 早期很流行,现在相对少用
自建 / 开源
- Jenkins --- 插件最多、可完全自托管的老牌方案
- TeamCity --- JetBrains 出品,Java/.NET 团队不少
- Buildkite --- 控制面在云端,构建机可自建
- Drone --- 轻量、容器友好
- Woodpecker CI --- Drone 社区分支,偏自托管
云厂商自带
- AWS CodeBuild / CodePipeline
- Google Cloud Build
- 阿里云效 Flow / 腾讯 CODING
目前最主流的起步选择一般是:GitHub Actions、GitLab CI、Jenkins。