Jenkins的痛苦配置node的服務(wù)CI CD

動(dòng)機(jī)


說(shuō)實(shí)話愿阐,我也不知道為啥要去弄這個(gè)東西萝衩,但是只有項(xiàng)目的痛點(diǎn)才會(huì)使人去改變回挽,公司里面老大配了一套基于gitlab一套持續(xù)集成的項(xiàng)目,但是不知道這是怎么實(shí)現(xiàn)的猩谊,也沒(méi)去研究千劈,所以并沒(méi)有去關(guān)注這個(gè),老老實(shí)實(shí)當(dāng)一個(gè)碼農(nóng)即可牌捷,-.-墙牌。

當(dāng)無(wú)聊自己開(kāi)始寫(xiě)一些node.js的代碼的時(shí)候,必然會(huì)需要去發(fā)布部署到服務(wù)器宜鸯,并且通過(guò)pm2去啟動(dòng)服務(wù)憔古,但是面臨一個(gè)很麻煩的問(wèn)題,就是我每次改完我的接口淋袖,那我把代碼必須要通過(guò)scp命令去發(fā)布到服務(wù)器鸿市,然后還要去重啟pm2,這個(gè)過(guò)程很無(wú)腦且重復(fù)性太強(qiáng)即碗,所以這個(gè)時(shí)候不得不去做持續(xù)集成和持續(xù)部署了焰情。。剥懒。

開(kāi)始


jenkins是啥?其實(shí)我也說(shuō)不清楚内舟,為什么用它而不用其他的構(gòu)建工具,我也不清楚初橘,反正百度到的就是它了验游,那就使用它吧,畢竟一個(gè)做前端的保檐,哈哈耕蝉,但是現(xiàn)在的高級(jí)前端這些個(gè)東西必須得會(huì)一點(diǎn)啊,所以就從jenkins這個(gè)開(kāi)始配置CI CD垒在。

  1. 安裝和環(huán)境的配置
    友情提示:最好買一臺(tái)阿里云的服務(wù)器linux的,不然沒(méi)法玩场躯;
  • java環(huán)境(jdk8的這款)!L吖亍!切記 粘茄,之前我下載最新的不能用

我們將下載好的java包通過(guò)tar的解壓命令解壓好,解壓好了以后我們需要去配置環(huán)境變量,
vi /etc/profile, 然后我們進(jìn)入編輯模式 到最底部加入下面的代碼

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 是你在服務(wù)器里解壓java的目錄瘪菌,然后執(zhí)行soucrc /etc/profile 撒会,在執(zhí)行java -version,如果出現(xiàn)了java的版本即安裝成功

  • 下載jenkins的war包师妙,[官網(wǎng)] (https://jenkins.io/zh/doc/pipeline/tour/getting-started/)
    就有诵肛,那我們可以先下載到本地,然后通過(guò)scp的命令去上傳到遠(yuǎn)程服務(wù)器默穴,搞定以后我們進(jìn)入這個(gè)目錄執(zhí)行
    java -jar jenkins.war --httpPort=8080怔檩,然后通過(guò)域名:8080端口就可以去訪問(wèn)了,記得開(kāi)啟8080端口蓄诽,不然跑不起來(lái)薛训。
  1. 開(kāi)始配置Jenkins
  • 以上如果成功了,你會(huì)進(jìn)入一個(gè)頁(yè)面仑氛,然后聽(tīng)他指揮乙埃,耐心等他,不要選擇自定義插件锯岖,不然你以后頭會(huì)大的,配置好用戶名之類的介袜,成功以后進(jìn)入了jenkins的管理界面了熊镣。

    image.png

  • 接下來(lái)我們需要去下載幾個(gè)插件

publish over ssh : 用來(lái)將我們的代碼部署到我們想要的服務(wù)器上去
Generic Webhook Trigger Plugin : 用來(lái)綁定我們的githup的webhook
nvm wrapper : 用來(lái)我們后期使用node的命令

點(diǎn)擊右邊的manage jenkins里面的插件然后去搜索下載即可溅固,記得點(diǎn)下重啟,重啟之后刷新頁(yè)面据沈;

  • 綁定githup的webhook
    首先創(chuàng)建一個(gè)項(xiàng)目捶牢,


    image.png

然后點(diǎn)擊源碼管理鸠珠,見(jiàn)下圖


image.png

然后添加觸發(fā)器,勾選我們剛剛下載Generic Webhook Trigger這個(gè)插件秋麸,然后什么也不需要管了跳芳。
搞定以后去githup的頁(yè)面去添加webhook,記得在觸發(fā)器里面也要配上那個(gè)token竹勉;


image.png

說(shuō)一下這個(gè)token的獲取,jenkins的系統(tǒng)管理-管理用戶-admin-設(shè)置


image.png

搞定以后如果命令行工具沒(méi)報(bào)錯(cuò)就是成功了娄琉;
  • 接下來(lái)去配置自動(dòng)化構(gòu)建
    構(gòu)建環(huán)境我們選擇nvm


    image.png
  • 配置publish over ssh 遠(yuǎn)程服務(wù)器


    image.png

    然后點(diǎn)擊下面的test次乓,如果成功了就是ok,配置成功孽水;

配置好了以后在去配置票腰,然后我們加上shell腳本,不然你怎么弄都弄不好


image.png

說(shuō)一下上面的參數(shù)是干嘛的女气,

Source files: 就是你上傳包的名字杏慰,因?yàn)閚ode服務(wù)項(xiàng)目不像前端項(xiàng)目打成一個(gè)dist包,所以我們放在一個(gè)目錄里面
Remove prefix : 移除前置的文件夾名稱缘滥,比如我剛剛source files叫 app/dist, 如果我在這里填 app/ 那么我們打成的包就是dist這一層了
Remote directory: 要發(fā)布的遠(yuǎn)程的目錄,之前已經(jīng)配置過(guò)了赃阀,所以不需要填寫(xiě)了榛斯。
Exec command: 這里面就是我們需要執(zhí)行的腳本了,自行配置驮俗,熟悉linux和node即可允跑;

然后我們提交我們的代碼,沒(méi)有錯(cuò)誤就大功告成了荤崇,當(dāng)然這是個(gè)痛苦的過(guò)程术荤,會(huì)碰到各種各樣的問(wèn)題C颗瘛!焦读!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市仑嗅,隨后出現(xiàn)的幾起案子仓技,更是在濱河造成了極大的恐慌俗他,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件地沮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡危融,警方通過(guò)查閱死者的電腦和手機(jī)未荒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)片排,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人迫卢,你說(shuō)我怎么就攤上這事冶共。” “怎么了家卖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵上荡,是天一觀的道長(zhǎng)馒闷。 經(jīng)常有香客問(wèn)我,道長(zhǎng)逛薇,這世上最難降的妖魔是什么疏虫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任卧秘,我火速辦了婚禮呢袱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘醇锚。我一直安慰自己,他們只是感情好恋昼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布液肌。 她就那樣靜靜地躺著,像睡著了一般谤祖。 火紅的嫁衣襯著肌膚如雪老速。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天额湘,我揣著相機(jī)與錄音锋华,去河邊找鬼箭窜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛芥丧,可吹牛的內(nèi)容都是我干的续担。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼憾儒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起诗舰,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤眶根,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后属百,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厌丑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年怒竿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厘肮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耍属,死狀恐怖厚骗,靈堂內(nèi)的尸體忽然破棺而出兢哭,到底是詐尸還是另有隱情,我是刑警寧澤冲秽,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布锉桑,位于F島的核電站窍株,受9級(jí)特大地震影響球订,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜微驶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一因苹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧容燕,春花似錦蘸秘、人聲如沸醋虏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)阻课。三九已至,卻和暖如春限煞,著一層夾襖步出監(jiān)牢的瞬間署驻,已是汗流浹背健霹。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宣吱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓凌节,卻偏偏與公主長(zhǎng)得像倍奢,于是被迫代替她去往敵國(guó)和親卒煞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容