使用jenkins进行项目部署

前言

由于近期接手了前端的项目,在项目打包部署的时候,手动操作构建打包部署等等步骤非常繁琐,所以自己尝试使用jenkins帮助自己解决这一烦恼。之前有用过,但只是使用而已。这次借机自己搭建配置一下,本以为很简单但是在自己使用的过程也多多少少遇到了几个坑。接下来本篇文章就以部署前端项目为例展开讲解一下。

一、安装jenkins

可以查看我之前的文章:jenkins详细安装教程

二、按照必要插件

  1. 点击系统管理->插件管理->可选插件
    需要安装两个插件
[NodeJS Plugin](用于构建前端项目使用)
[Publish Over SSH](用于把项目部署的远程服务器使用)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-260a0Nvh-1614666306788)(/img/bVcO6Sz)]

三、插件配置

1、[NodeJS Plugin]:点击系统管理->全局工具配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-biLoq6Pi-1614666306790)(/img/bVcO6S2)]

2、[Publish Over SSH]:点击系统管理->系统配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ArMKKZmA-1614666306792)(/img/bVcO6TV)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h5lxUTVp-1614666306794)(/img/bVcO6T4)]

  • 进入jenkins服务器配置公钥和私钥
ssh-keygen -t rsa
  • 一路回车会在当前用户目录下,生成ssh文件里面的id_rsa 就是私钥,id_rsa.pub就是公钥
  • id_rsa.pub就是公钥里的内容复制到远程服务器(例如:47.104.36.36)的~.ssh/.ssh/authorized_keys中
vi .ssh/authorized_keys

四、新建任务

1、填入描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-phocyrfR-1614666306796)(/img/bVcO6UJ)]

2、配置git,进入任务配置,选择源码管理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFmFwevF-1614666306797)(/img/bVcO6UT)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04D4kiOX-1614666306798)(/img/bVcO6Vd)]

3、设置构建环境,选择 Provide Node & npm bin/ folder to PATH 然后选择之前安装插件时候配置的node版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pw0uRYoC-1614666306799)(/img/bVcO6Ve)]

4、构建,增加构建步骤选择Excute shell
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8I8sMATn-1614666306801)(/img/bVcO6VK)]

node -v
npm install
npm run build
tar -czvf dist.tar.gz dist

5、构建后操作,增加构建后操作步骤选择Send build artifacts over SSH
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mnqDihSi-1614666306802)(/img/bVcO6VQ)]

cd /data/www/wwwroot/test
tar -zxvf dist.tar.gz
rm -rf dist.tar.gz

6、保存后点击“立即构建”查看任务是否构建完成

遇到的几个坑

  • 配置好秘钥后连接点击测试连接报错,报错提示
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@60373f7]

因为我们生成密钥的openssh的版本过高的原因,解决办法如下:重新执行以下命令生成新的秘钥,使用新生成的秘钥即可

ssh-keygen -m PEM -t rsa -b 4096
  • 拷贝ssh公钥到 authorized_keys 后仍然无法免密登录解决方法
    解决办法:
分别修改修改.ssh目录的权限以及authorized_keys 的权限
chmod 644 ~/.ssh/authorized_keys

chmod 700 ~/.ssh

猜你喜欢

转载自blog.csdn.net/m0_37572422/article/details/114284418