前言

因为近期接手了前端的我的项目,在我的项目打包部署的时候,手动操作构建打包部署等等步骤十分繁琐,所以本人尝试应用jenkins帮忙本人解决这一懊恼。之前有用过,但只是应用而已。这次借机本人搭建配置一下,本认为很简略然而在本人应用的过程也多多少少遇到了几个坑。接下来本篇文章就以部署前端我的项目为例开展解说一下。

一、装置jenkins

能够查看我之前的文章:jenkins具体装置教程

二、依照必要插件

  1. 点击系统管理->插件治理->可选插件

须要装置两个插件

[NodeJS Plugin](用于构建前端我的项目应用)[Publish Over SSH](用于把我的项目部署的近程服务器应用)

三、插件配置

1、[NodeJS Plugin]:点击系统管理->全局工具配置

2、[Publish Over SSH]:点击系统管理->系统配置

  • 进入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、填入形容

2、配置git,进入工作配置,抉择源码治理

3、设置构建环境,抉择 Provide Node & npm bin/ folder to PATH 而后抉择之前装置插件时候配置的node版本

4、构建,减少构建步骤抉择Excute shell

node -vnpm installnpm run buildtar -czvf dist.tar.gz dist

5、构建后操作,减少构建后操作步骤抉择Send build artifacts over SSH

cd /data/www/wwwroot/testtar -zxvf dist.tar.gzrm -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_keyschmod 700 ~/.ssh