前言
因为近期接手了前端的我的项目,在我的项目打包部署的时候,手动操作构建打包部署等等步骤十分繁琐,所以本人尝试应用jenkins帮忙本人解决这一懊恼。之前有用过,但只是应用而已。这次借机本人搭建配置一下,本认为很简略然而在本人应用的过程也多多少少遇到了几个坑。接下来本篇文章就以部署前端我的项目为例开展解说一下。
一、装置jenkins
能够查看我之前的文章:jenkins具体装置教程
二、依照必要插件
- 点击系统管理->插件治理->可选插件
须要装置两个插件
[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