文章目录
- 总体文件需求
- 一、安装jdk17
- 二、安装jenkins
- 1.安装
- 2.启动
- 三、安装git
- 四、安装maven
- 1.yum安装
- 2.配置 Maven 国内镜像源(解决依赖下载慢)
- 五、安装nodejs
- 方式1:YUM一键安装
- 方式2:nvm安装(多版本切换场景)
- 必做:切换npm国内源(解决下载慢/失败)
- 六、配置OpenSSh,配置免密码
- 七、编写pipeline脚本
- 八、指定jdk
- 第一步pipline指定使用jdk17编译。
- 第二步jenkins中配件上面jdk17这个名字
- 找到"全局工具配置"
- 找到jdk安装
- 九、相关链接
总体文件需求
| 序号 | 内容 | 作用 |
|---|---|---|
| 1 | jdk17 | 支持环境,jenkins2.5以上用17是推荐的,不推荐1.8版本 |
| 2 | jenkins2.5 | 主要应用 |
| 3 | git | 获取源代码要用到 |
| 4 | maven | 编译java程序用到 |
| 5 | nodejs | 编译vue程序用到 |
一、安装jdk17
(1)先检查系统是否已装旧版 JDK,避免冲突
java -version #若显示openjdk/java版本信息,可卸载旧版(可选,多JDK可共存) yum remove -y java-1.*-openjdk java-1.*-openjdk-devel(2)执行安装
查找
yum search java-17-openjdk执行
# 安装开发版(推荐,包含运行时+编译工具) yum install -y java-17-openjdk-devel # 若仅需运行时(无需编译代码),安装这个即可 # yum install -y java-17-openjdk二、安装jenkins
1.安装
直接在官网上下载jenkins
上传到centos服务器中。
2.启动
nohupjava-jarjenkins.war&2>1三、安装git
用于下载源代码
# 1. 先更新YUM源(可选,确保安装最新版Git) yum update -y # 2. 一键安装Git(CentOS 7/8/9 通用) yum install git -y # 3. 验证安装成功(查看Git版本,和Windows Git Bash的验证命令一致) git --version四、安装maven
1.yum安装
# 1. 一键安装Maven(会自动配置全局环境变量) yum install -y maven # 2. 验证安装成功 mvn -v # 示例输出(CentOS9):Apache Maven 3.8.6 (Red Hat 3.8.6-4)2.配置 Maven 国内镜像源(解决依赖下载慢)
# 1. 编辑Maven全局配置文件vi/etc/maven/settings.xml# 2. 找到<mirrors>标签,在标签内添加阿里云镜像(替换原有镜像,若无则直接加)<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror>五、安装nodejs
你需要在CentOS系统中安装Node.js(同时会自动安装npm),适配CentOS 7/8/9,推荐两种最实用的安装方式:YUM一键安装(简单快捷,适合生产)和nvm安装(灵活切换多版本,适合开发),两种方式都能直接让node/npm命令全局可用,还会补充环境验证、npm源切换(解决下载慢)的操作
执行所有命令需root权限,普通用户请在命令前加sudo;安装完成后可直接执行node -v/npm -v验证,无需额外配置PATH(两种方式都会自动配置)。
方式1:YUM一键安装
通过NodeSource官方YUM源安装,版本比CentOS自带源新,一键完成无依赖问题,安装后node/npm直接全局可用。
操作步骤
# 1. 安装NodeSource官方源(以Node.js 20.x为例,LTS长期支持版,适配npm 10+,推荐生产)curl-fsSLhttps://rpm.nodesource.com/setup_20.x|bash-# 2. 一键安装Node.js(会自动安装npm,与node版本匹配)yuminstall-ynodejs# 3. 验证安装成功(输出版本即生效)node-v# 示例输出:v20.11.0npm-v# 示例输出:10.2.4版本切换
若需要其他LTS版本(如18.x、16.x),只需替换第一步的源地址:
- Node.js 18.x:
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash - - Node.js 16.x:
curl -fsSL https://rpm.nodesource.com/setup_16.x | bash - - Node.js 14.x:
curl -fsSL https://rpm.nodesource.com/setup_14.x | bash -
本项目使用的是14
方式2:nvm安装(多版本切换场景)
nvm(Node Version Manager)是Node.js版本管理工具,可一键安装/切换多个Node.js版本(如16.x/18.x/20.x),不污染系统环境,适合需要适配不同前端项目的场景。
操作步骤
# 1. 安装nvm(官方脚本,一键完成)curl-o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh|bash# 2. 让nvm立即生效(无需重启系统,刷新环境变量)source~/.bashrc# 3. 验证nvm安装nvm--version# 示例输出:0.39.7# 4. 安装指定Node.js版本(20.x LTS,推荐)nvminstall20# 5. 设置默认版本(全局默认使用20.x,新开终端也生效)nvmaliasdefault20# 6. 验证安装node-vnpm-v多版本切换用法
# 安装18.x版本nvminstall18# 切换到18.xnvm use18# 查看已安装的所有版本nvmls# 查看可安装的所有版本nvm ls-remote必做:切换npm国内源(解决下载慢/失败)
CentOS默认用npm官方源(国外),下载依赖会很慢,建议切换为阿里云/npm镜像源,全局配置一次永久生效:
# 切换为阿里云国内源(推荐)npmconfigsetregistry https://registry.npmmirror.com/# 验证源是否切换成功npmconfig get registry# 输出上面的地址即生效# 可选:临时使用源(仅当前命令生效,无需全局配置)npminstall--registryhttps://registry.npmmirror.com/六、配置OpenSSh,配置免密码
用于传送文件,主要执行下面两条指令
#按默认回车完成ssh-keygen-trsa-b2048#传送密钥到服务器ssh-copy-id 用户名@服务器ip七、编写pipeline脚本
参考官方文档
https://www.jenkins.io/zh/doc/
下面是我的配置
还要设定定时访问git看有没有新代码,我设定的是定时2分钟去SCM看代码。
这里要选Pipeline script from SCM,表示脚本在代码库里。
在项目下建立一个Jenkinsfile,所有的代码写到这里
下面是我部分的代码
代码解读如下:
stage是章节,可以自己定义,
比如我定义了。编译前端,发布到120服务器,发布到wuxi服务器三个章节
第一步,先npm run build
第二步,scp把生成的文件copy到120服务器的nginx指定的目录
第三步,scp把生成的文件copy到wuxi服务器的nginx指定的目录
同理,如果要发布后端服务也是先mvn package,然后copy到服务中,然后运行。
注意scp,ssh指令就是openssh的命令,如果有不懂的,去查一下这两个指令的意义。
八、指定jdk
如果我自己的spring boot程序需要运行在jdk17中,而我安装jenkins的环境是jdk8.那我要怎么写。
第一步pipline指定使用jdk17编译。
增加tools章节,如下图所示。
第二步jenkins中配件上面jdk17这个名字
找到"全局工具配置"
找到jdk安装
- 别名:第一步tools指定的名字
- JAVA_HOME:你下载下来的JDK的目录。
我用的是
下载:wget https://aka.ms/download-jdk/microsoft-jdk-17-linux-x64.tar.gz
解压:tar -zxvf microsoft-jdk-17-linux-x64.tar.gz
然后放到了/home/jdk17
同样指定maven也是这样的套路
九、相关链接
如何一劳永逸的解决这么复杂的过程,建立一个docker image直接pull下来用