jenkins自动打包部署vue_element_admin前端项目

1. nginx安装

nginx安装教程

2. 手动测试一下前端项目打包

1)npm run build:prod (自己看一下自己vue项目的构建命令是什么,该命令一般在package.json文件里面)
正常来说是npm run build,vue_template_admin构建命令是npm run build:prod

在这里插入图片描述
在这里插入图片描述
2)构建完成后,该目录会出现一个dist目录,里面就是我们的前端项目的内容
在这里插入图片描述

在这里插入图片描述
3)把这个dist目录放到服务器的一个目录下面,我是把项目内容放在/usr/local/front_project/vue_admin/

在这里插入图片描述
4)修改nginx.conf文件的内容(如果是跟着上面的安装教程,那么nginx.conf是在/usr/local/nginx/conf里面的)
在这里插入图片描述
5)由nginx来部署这个前端项目(只要是访问nginx机器的90端口就会找/usr/local/front_project/vue_admin/dist里面的index.html)
在这里插入图片描述

6) 重启一下nginx
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

7)地址栏访问一下 http://192.168.0.130:90/#/login?redirect=%2Fdashboard,证明前端项目没有问题,nginx代理前端项目也没有问题
在这里插入图片描述
8) 如果访问地址出错的话,修改以下文件
vi /etc/selinux/config
修改内容如下:

SELINUX=disabled

重启一下机器

3. jenkins安装nodejs插件

jenkins安装下载教程
在这里插入图片描述

4.jenkins全局工具配置

在这里插入图片描述
这里我选择nodejs版本为 14.9.1版本(我一直用这个版本,最新已经到了18.x了),起名为nodejs14,后面生成脚本需要用到
在这里插入图片描述

5. 新建流水线任务

在这里插入图片描述

6.编写自动化构建部署脚本

1)设置构建项目分支参数
在这里插入图片描述
2-1) 直接在jenkins机器上编写Jenkinsfile文件内容(不推荐,万一机器炸了,那这个脚本文件就拿不回来了,这个jenkinsfile文件还是交给这个项目gitlab等代码托管平台来管理) 不推荐直接在jenkins上面写自动化构建部署脚本
在这里插入图片描述
2-2)把jenkinsfile文件还是交给这个项目gitlab等代码托管平台来管理 推荐
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

如果SCM下拉框没有git选项,自己在jenkins里面安装git plugins

在这里插入图片描述
并且jenkins所在机器也要安装git,在jenkins里面全局工具配置添加git所在目录
在这里插入图片描述

3) 利用jenkins流水线语法生成工具,生成拉取gitlab(gitee,github)脚本
在这里插入图片描述
在这里插入图片描述

checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa0ff0a7-3b63-46b5-aaed-a7b357c23abe', url: 'http://192.168.0.121:82/root/online2022_admin_front.git']]])

因为我们之前已经设置了参数化项目构建 分支选择
所以把master变成变量${branch}

checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa0ff0a7-3b63-46b5-aaed-a7b357c23abe', url: 'http://192.168.0.121:82/root/online2022_admin_front.git']]])
  1. 利用jenkins流水线语法生成工具,生成nodejs语法
    在这里插入图片描述
nodejs('nodejs14') {
    // some block
}

这里面的nodejs14是我们之前全局工具设置nodejs工具的名称。
在这里面写入shell脚本npm install ,npm run build:prod

// 使用Nodejs的npm安装依赖和打包
nodejs('nodejs14') {
  sh "npm install"
  sh "npm run build:prod"
}
  1. jenkins所在的机器和生成服务器待会要用到SSH

SSH作用: jenkins所在的机器(192.168.0.120)把构建前端项目生成dist目录下文件传输到生产服务器 (192.168.0.130)

具体流程: jenkins所在的机器(192.168.0.120)生产ssh密钥,把公钥交给生产服务器 (192.168.0.130),待会向jenkins指明该机器ssh私钥所在文件位置

  • 开启sshd服务 (192.168.0.120)
    sudo service sshd start

  • 如果(192.168.0.120)内核版本过高centos 生成ssh私钥,jenkins可能不支持,那就在用ssh生成密钥的时候指定算法

    ssh-keygen -m PEM -t rsa -b 4096
    否则 执行 ssh-keygen
    执行完命令后不断回车就好
    在这里插入图片描述

  • jenkins所在机器把公钥交给生产服务器
    把公钥给生产服务器(192.168.0.130)
    ssh root@192.168.0.130

  1. jenkins安装Publish Over SSH插件
    在这里插入图片描述

7)全局设置需要 ssh连接上生成服务器(部署前端项目所在的机器)

jenkins全局配置那里 设置ssh私钥位置
/root/.ssh/id_rsa
在这里插入图片描述
在这里插入图片描述

设置ssh连接的生成服务器
在这里插入图片描述
自己点击test Configuration来尝试一下链接远程服务器

8)生成 流水线语法(ssh传输前端项目构建文件)
这个语句的作用:用ssh来生成把jenkins项目里面dist目录下文件传输到生产服务器上面
(之前安装Publish Over SSH,那么这里生成流水线语法就会有这个下拉框选项)
在这里插入图片描述
在这里插入图片描述

// 把该项目下面dist文件从(jenkins服务器) 复制到 生产服务器 
// remoteDiretory就是生产服务器 部署前端项目所在的目录(生产的nginx负责代理这些静态资源的访问)
// sourceFiles就是jenkins的项目所构建后dist目录,dist目录里面的内容就是前端项目需要发布的东西,类似后端springboot生成可执行的jar文件
sshPublisher(publishers: [sshPublisherDesc(configName: 'pro_server2', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/local/front_project/vue_admin', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

9) 完整的Jenkinsfile文件流水线语法内容

node {
    def mvnHome
    stage('拉取代码') {
        checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: 'fa0ff0a7-3b63-46b5-aaed-a7b357c23abe', url: 'http://192.168.0.121:82/root/online2022_admin_front.git']]])
    }
    stage('打包 部署网站') {
        // 使用Nodejs的npm安装依赖和打包
        nodejs('nodejs14') {
          sh "npm install"
          sh "npm run build:prod"
        }

        // 把该项目下面dist文件从(jenkins服务器) 复制到 生产服务器 
        // remoteDiretory就是生产服务器 部署前端项目所在的目录(生产的nginx负责代理这些静态资源的访问)
        // sourceFiles就是jenkins的项目所构建后dist目录,dist目录里面的内容就是前端项目需要发布的东西,类似后端springboot生成可执行的jar文件
        sshPublisher(publishers: [sshPublisherDesc(configName: 'prod_server2', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/local/front_project/vue_admin', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
        
    }
    
}
  1. 把这个Jenkinsfile文件放到项目根目录下面
    在这里插入图片描述

11)上传这个Jenkinsfile文件到gitlab(github,gitee)上面

D:\vs2022\vue-element-admin>git add Jenkinsfile

D:\vs2022\vue-element-admin>git commit -m '流水线自动化脚本'
[master 87d2bcf] '流水线自动化脚本'
 1 file changed, 1 insertion(+), 1 deletion(-)

D:\vs2022\vue-element-admin>git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 327 bytes | 327.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
To http://192.168.0.121:82/root/online2022_admin_front.git
   612b7e1..87d2bcf  master -> master

12) 如果构建项目失败,出现以下错误,那就证明jenkins安装nodejs失败
Unpacking https://nodejs.org/dist/v14.19.1/node-v14.19.1-linux-x64.tar.gz to /root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs14 on Jenkins
那么我们自己安装nodejs,并且在jenkins全局工具配置配置我们安装nodejs所在的目录
centos stream 8安装nodejs14.19.1教程并且jenkins全局工具配置nodejs

13)构建并且传输dist文件到生产服务器成功
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Jenkins来实现Vue项目自动部署。下面是一个简单的步骤: 1. 安装Jenkins:首先,你需要在你的服务器上安装Jenkins。你可以根据官方文档或者其他资源来完成安装过程。 2. 配置Jenkins:一旦安装完成,你需要通过浏览器访问Jenkins的网址,并且按照指引完成初始设置。这可能包括创建管理员账户、安装插件等。 3. 创建一个新的Jenkins任务:在Jenkins主页,点击"新建任务"按钮,然后输入任务名称和选择"自由风格"项目类型。 4. 配置代码仓库:在任务配置页面的"源码管理"部分,选择你的代码仓库类型(如Git),并提供代码仓库的URL和凭据(如果有的话)。 5. 配置构建步骤:在任务配置页面的"构建"部分,添加构建步骤。对于Vue项目,你可以使用以下命令来构建: ``` npm install npm run build ``` 这将安装项目依赖并生成静态文件。 6. 配置部署步骤:在任务配置页面的"构建后操作"部分,添加部署步骤。你可以使用SSH插件或者其他适用的插件来实现远程部署。 如果你使用SSH插件,你需要提供远程服务器的地址、凭据和部署命令。部署命令应该包括将构建后的静态文件复制到远程服务器的指定目录。 如果你使用其他插件或者工具来进行部署,根据插件或者工具的文档进行配置即可。 7. 保存任务配置并运行任务:一旦你完成了任务配置,点击"保存"按钮,并运行任务。Jenkins将根据你的配置自动构建和部署Vue项目。 请注意,这只是一个简单的示例,你可能需要根据你的具体情况进行适当的调整和配置。此外,确保你的服务器和部署目标环境已经正确配置,并且有足够的权限来执行构建和部署操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值