centos7:jenkins+nodejs前端自动化部署

news2024/11/24 13:34:01

系统:centos7

nodejs版本:v16.18.1   npm版本:8.19.2

由于centos7最大只支持16.18.1版本,尽量让前端写代码时使用这个版本,linux系统如果要装高版本的node需要安装glibc库,很危险,尽量不要操作。

jenkins版本:最新版,yum安装,不用docker,原因是npm在容器内无法有效执行

jenkins离线部署:

        https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat

清华大学的开源镜像站,可在链接前方加wget,下载对应版本的rpm包,离线环境可以下载好后上传至服务器。可以用rpm -ivh rpm文件的命令部署,这里只是提供一个离线安装的方式。

jenkins联网部署:

下载jenkins的yum源文件:

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

导入key:

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install fontconfig java-11-openjdk -y

jenkins最新版本需要java11支持,如果系统有jdk8建议先卸载。

安装好jdk后java -version看看版本是否正确

yum install jenkins

修改jenkins默认端口和用户需要改两个地方:(最好把jenkins用户改成root,以免后面出现权限问题)

vim /etc/sysconfig/jenkins

vim /usr/lib/systemd/system/jenkins.service

 

启动jenkins:/etc/init.d/jenkins start  或者systemctl start jenkins

浏览器输入ip+端口访问jenkins,参照提示安装,查看服务器key,输入登录,注册一个管理员账户,安装推荐插件,这些不详细说明,网上搜一大把

jenkins登录进去后点击系统管理,看看是否是最新版本,尽量更新到最新版本,因为有些插件需要高版本才能使用,而jenkins插件之间的依赖很强,如果一些插件不能用,会导致其他插件无法下载的情况,如果上面有项目,更新插件还会导致项目丢失,或者异常,所以如果是生产的jenkins,一定要备份jenkins部署目录下的plugins目录还有jobs目录。

下载插件时如果提示google代理问题,无法下载,网上搜教程处理,jenkins这点挺麻烦的,用的google源,可以按照网上教程处理,也可以将其他服务器上的jenkins目录下的plugins目录拷贝过来替换,plugins目录是jenkins的插件目录,不推荐手动上传插件,麻烦,当然有耐心也可以这么操作。

安装Publish Over SSH插件

这个是配置ssh使用,因为前端包部署在服务器上,需要远程到前端服务器上部署前端包

Dashboard > 系统管理 > 全局工具配置

出现这个说明插件安装好了

 

选择nodeJS版本,要和jenkins的部署服务器上的nodejs版本一致才行

nodejs安装:yum install nodejs  npm -y (在jenkins服务器上安装)

配置ssh,这个是前端要发布的包所在的服务器

name:随便填,好记就行

hostname:要远程的服务器

username:希望以什么用户登录

Remote Directory:前端包发布目录,可以点?号看详细介绍

 新建项目:取个名:voms-web,这个根据自己的需要创建

 进入项目配置:

 配置git仓库,这个是前端存放代码的地址,需要你的jenkins服务器能访问这个地址,

点添加,添加访问git地址的凭据,然后应用保存

 这个是git里面的分支

 构建环境选择之前在系统配置里面生成的node版本,其他默认,如果构建环境里面没有这些功能,网上搜对应的插件安装。

讲讲思路:前端将代码提交到git后,在jenkins上执行立即构建,会将代码拉到工作空间内,这个工作空间对应的目录是在jenkins服务器目录下的/var/lib/jenkins/workspace/目录下

这个是目录结构,

node_models目录:插件依赖目录,执行npm install时生成

dist目录:构建目录,执行 npm run build时生成

接下来就是脚本执行了,

 cd到工作空间的项目目录下,删除旧的打包文件,删除node_modules插件依赖。

-g 全局参数

--registry  设置淘宝源,不加这个参数容易出问题

yarn install  下载  这一步会生成node_modeles目录

vite build   打包,这一步后会生成dist目录

zip  -vr dist.zip  dist   这一步是将dist目录打包成zip文件,方便等会上传到服务器上

接下来就是将打好的包上传到前端服务器上部署了

这个是前面弄的ssh,直接选择要ssh的服务器

 Transfer Set Source files:这个意思是要上传的文件,就是刚刚打包好的dist.zip

 这个是要执行的脚本,还是cd到目录下,用tar -zcvf命令打包,然后mv到备份目录backup下,没有目录就创建一个目录,unzip -o dist.zip 解压,解压后删除文件

到这里基本就完成了,然后就是测试脚本是否能正常执行。

到这里就是成功了,如果中间有什么报错,根据报错问题处理即可,基本都是些node版本不一致的情况,可网上搜索处理。

原创文章,转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hudi系列6:使用pyspark操作Hudi

文章目录前言一. pyspark连接hudi二. 创建表三. 插入数据四. 查询数据五. Time Travel查询六. 更新数据七. 增量查询八. 基于时间点查询九. 删除数据9.1 软删除9.2 硬删除十. 插入覆盖十一. Spark其它命令11.1 Alter Table11.2 Partition SQL Command参考:前言 软件版本Python…

低成本MEMS惯导系统的捷联惯导解算MATLAB仿真

低成本MEMS惯导系统的捷联惯导解算MATLAB仿真一、姿态角转换为四元数二、四元数转换为姿态角三、反对称阵四、位置更新五、姿态更新六、程序及数据主程序:子程序:数据及完整程序之前将高成本的捷联惯导忽略地球自转、圆锥曲线运动以及划桨运动等化简为可…

【学习笔记之Linux】工具之make/Makefile与git

make/Makefile: 背景知识: 一个工程中的源文件不计数,按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,那些文件需要重新编…

电源《龙珠超:超级人造人》观后感

上周看了动画电影《龙珠超:超级人造人》,《龙珠》这个系列同《火影》、《死神》、《海贼王》和《名侦探柯南》等都存在了很长时间,不断在更新,都是非常好的IP,伴随着很多人走过童年,也是因为时间太长了,记得…

品牌打假,假货治理,有什么好的方法

品牌打假,清除渠道假货,可以提高消费者对品牌的满意度与忠诚度,增强经销商的经销信心,维护稳定的价格体系及经销体系,树立良好的品牌形象。 但是品牌在打假的过程中,由于经验、时间、方法、技术等方面的局…

测试开发 | 接口测试之HTTP 协议讲解

本文节选自霍格沃兹测试开发学社内部教材HTTP 协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网的数据通信的基础。客户端向服务端发送 HTTP 请求,服务端则会在响应中返回所请求的数据。了解了 HTTP 协议,才能对接口测试进行更…

sql实现字段分割一行转多行的示例代码

先看一下数据结构,我这里字段比较少,只弄了最重要的部分 根据我们上次学到的LEFT()函数进行分组 SELECT LEFT(provinces,6),COUNT(1) FROM region_map_copy GROUP BY LEFT(provinces,6) 得到的结果如下: 这样的效果并不是我们想要的&#x…

必贝特科创板IPO过会:预计2025年前实现商业化,钱长庚为实控人

2023年1月10日,上海证券交易所披露的信息显示,广州必贝特医药股份有限公司(下称“必贝特”)获得上市委会议审核通过。据贝多财经了解,必贝特于2022年6月29日在科创板递交上市申请。 公开信息显示,必贝特是一…

SwiftUI之深入解析如何使用组合矩形GeometryReader创建条形(柱状)图

一、图表布局 条形(柱状)图以矩形条的形式呈现数据的类别,其宽度和高度与它们表示的值成比例。SwiftUI 对探索不同布局和预览实时视图结果是很友好的,很容易将部分内容提取到子视图中,以便每个部分都很小且易于维护。…

给程序提速 | 多进程与多线程

目录 一、背景 1.1、前言 1.2、说明 二、线程与进程 2.1、什么是进程 2.2、什么是线程 2.3、进程与线程的关系 2.4、多进程与多线程的最佳使用条件 2.5、线程与进程的锁 2.6、特别注意 三、第一个线程、线程池 3.1、线程测试 3.2、执行结果 3.3、线程池测试 3.4…

华中科技大学计算机组成原理-计算机数据表示实验(全部通关)

计算机数据表示实验(HUST) 计算机数据表示目录 [建议收藏]计算机数据表示实验(HUST)第1关 汉字国标码转区位码实验第2关 汉字机内码获取实验第3关 偶校验编码设计第4关 偶校验解码电路设计第5关 16位海明编码电路设计第6关 16位海明解码电路设计第7关 海明编码流水传输实验第8关…

Leetcode:700. 二叉搜索树中的搜索(C++)

目录 问题描述: 实现代码与解析: 递归: 原理思路: 迭代: 原理思路: 问题描述: 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值…

CHAPTER 4 Docker仓库

docker仓库4.1 Docker Hub公共镜像市场4.2 第三方镜像市场4.2.1 daocloud4.2.2 阿里云4.3 *搭建本地私有仓库仓库(Repository)是集中存放镜像的地方,又分公共仓库和私有仓库。有时候容易把仓库与注册服务器(Registory)…

逆向-还原代码之continue (Interl 64)

// source code #include <stdio.h> int main() { int i; for (i 0; i < 10; i) { if (i 5) continue; printf("%d\n", i); } }

那年我双手离桌,被《剑指offer》打的还不了手(第八天)

跟着博主一起刷题 这里使用的是题库&#xff1a; https://leetcode.cn/problem-list/xb9nqhhg/?page1 目录剑指 Offer 55 - II. 平衡二叉树剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - II. 数组中数字出现的次数 II剑指 Offer 55 - II. 平衡二叉树 剑指 Offer 55…

缓存一致性问题解决方案(超全超易懂)

文章目录1、缓存模型和思路2、缓存更新策略3、两种解决方案3.1、先删除缓存&#xff0c;再更新数据库3.1.1延时双删&#xff08;解决先删除缓存&#xff0c;再更新数据库产生的缓存不一致问题&#xff09;1、什么是延时双删2、为什么要进行延迟双删&#xff1f;3、如何实现延迟…

【 uniapp - 黑马优购 | 购物车页面(2)】如何实现收货地址区域功能、常见问题解决方案

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;小新爱学习. &#x1f43c;个人WeChat&#xff1a;见文末 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;…

JVM—类加载与字节码技术

目录一、类文件结构1、魔术2、版本3、常量池二、字节码指令1、javap工具2、图解方法执行流程3、通过字节码指令来分析问题4、构造方法5、方法调用6、多态原理——HSDB7、异常处理四、类加载阶段五、类加载器六、运行期优化一、类文件结构 以一个简单的HelloWord.java程序为例 …

聊聊VMware的三种网络模式

聊聊VMware的三种网络模式1.Bridged&#xff08;桥接模式&#xff09;2.NAT&#xff08;地址转换模式&#xff09;3.Host-Only&#xff08;仅主机模式&#xff09;VMware有三种虚拟网络工作方式&#xff0c;即&#xff1a; Briged&#xff08;桥接模式&#xff09;NAT&#xf…

实现内核线程

文章目录前言前置知识实验操作实验一实验二实验三前言 博客记录《操作系统真象还原》第九章实验的操作~ 实验环境&#xff1a;ubuntu18.04VMware &#xff0c; Bochs下载安装 实验内容&#xff1a; 在内核空间实现线程。实现双向链表。实现多线程在调度器的调度下轮流执行。…