Jenkins的痛苦配置node的服务CI CD

动机


说实话,我也不知道为啥要去弄这个东西,但是只有项目的痛点才会使人去改变,公司里面老大配了一套基于gitlab一套持续集成的项目,但是不知道这是怎么实现的,也没去研究,所以并没有去关注这个,老老实实当一个码农即可,-.-。

当无聊自己开始写一些node.js的代码的时候,必然会需要去发布部署到服务器,并且通过pm2去启动服务,但是面临一个很麻烦的问题,就是我每次改完我的接口,那我把代码必须要通过scp命令去发布到服务器,然后还要去重启pm2,这个过程很无脑且重复性太强,所以这个时候不得不去做持续集成和持续部署了。。。

开始


jenkins是啥?其实我也说不清楚,为什么用它而不用其他的构建工具,我也不清楚,反正百度到的就是它了,那就使用它吧,毕竟一个做前端的,哈哈,但是现在的高级前端这些个东西必须得会一点啊,所以就从jenkins这个开始配置CI CD。

  1. 安装和环境的配置
    友情提示:最好买一台阿里云的服务器linux的,不然没法玩;
  • java环境(jdk8的这款)!!!切记 ,之前我下载最新的不能用

我们将下载好的java包通过tar的解压命令解压好,解压好了以后我们需要去配置环境变量,
vi /etc/profile, 然后我们进入编辑模式 到最底部加入下面的代码

export JAVA_HOME=/opt/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

就第一行的/opt/jdk8 是你在服务器里解压java的目录,然后执行soucrc /etc/profile ,在执行java -version,如果出现了java的版本即安装成功

  • 下载jenkins的war包,[官网] (https://jenkins.io/zh/doc/pipeline/tour/getting-started/)
    就有,那我们可以先下载到本地,然后通过scp的命令去上传到远程服务器,搞定以后我们进入这个目录执行
    java -jar jenkins.war --httpPort=8080,然后通过域名:8080端口就可以去访问了,记得开启8080端口,不然跑不起来。
  1. 开始配置Jenkins
  • 以上如果成功了,你会进入一个页面,然后听他指挥,耐心等他,不要选择自定义插件,不然你以后头会大的,配置好用户名之类的,成功以后进入了jenkins的管理界面了。

    image.png

  • 接下来我们需要去下载几个插件

publish over ssh : 用来将我们的代码部署到我们想要的服务器上去
Generic Webhook Trigger Plugin : 用来绑定我们的githup的webhook
nvm wrapper : 用来我们后期使用node的命令

点击右边的manage jenkins里面的插件然后去搜索下载即可,记得点下重启,重启之后刷新页面;

  • 绑定githup的webhook
    首先创建一个项目,


    image.png

然后点击源码管理,见下图


image.png

然后添加触发器,勾选我们刚刚下载Generic Webhook Trigger这个插件,然后什么也不需要管了。
搞定以后去githup的页面去添加webhook,记得在触发器里面也要配上那个token;


image.png

说一下这个token的获取,jenkins的系统管理-管理用户-admin-设置


image.png

搞定以后如果命令行工具没报错就是成功了;
  • 接下来去配置自动化构建
    构建环境我们选择nvm


    image.png
  • 配置publish over ssh 远程服务器


    image.png

    然后点击下面的test,如果成功了就是ok,配置成功;

配置好了以后在去配置,然后我们加上shell脚本,不然你怎么弄都弄不好


image.png

说一下上面的参数是干嘛的,

Source files: 就是你上传包的名字,因为node服务项目不像前端项目打成一个dist包,所以我们放在一个目录里面
Remove prefix : 移除前置的文件夹名称,比如我刚刚source files叫 app/dist, 如果我在这里填 app/ 那么我们打成的包就是dist这一层了
Remote directory: 要发布的远程的目录,之前已经配置过了,所以不需要填写了。
Exec command: 这里面就是我们需要执行的脚本了,自行配置,熟悉linux和node即可;

然后我们提交我们的代码,没有错误就大功告成了,当然这是个痛苦的过程,会碰到各种各样的问题!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容