在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

網(wǎng)站應(yīng)用自動(dòng)部署系統(tǒng)分享

大小:0.3 MB 人氣: 2017-09-26 需要積分:1

  自動(dòng)部署系統(tǒng)的初步實(shí)現(xiàn)

  簡(jiǎn)單而言,自動(dòng)部署方案有以下幾個(gè)部分。

  使用 Google Drive 作為中轉(zhuǎn)。Google Drive 是高效的云存儲(chǔ)服務(wù),周邊產(chǎn)品眾多。免費(fèi)的15G空間足夠應(yīng)付一般的需求。同時(shí),可以對(duì)服務(wù)器上的重要數(shù)據(jù)進(jìn)行備份。

  在個(gè)人開(kāi)發(fā)機(jī)器上,使用 Google 出品的Back and Sync 應(yīng)用云存儲(chǔ)映射為本地一個(gè)目錄。我使用的是Mac版的Back and Sync。要發(fā)布新版本時(shí),直接將它拷貝到這個(gè)目錄即可自動(dòng)上傳到云端。

  在Linux 服務(wù)器上,使用 rclone 拉取云端的更新到服務(wù)器發(fā)布目錄。

  網(wǎng)站應(yīng)用自動(dòng)部署系統(tǒng)分享

  rclone 的安裝比較簡(jiǎn)單,不需要圖形界面,在SSH終端即可安裝。其安裝和配置步驟可以參考 官方的安裝文檔 和 Google Drive 配置說(shuō)明 。

  拉取通過(guò) rclone 的 sync 命令來(lái)實(shí)現(xiàn)。rclone 的同步是增量同步,每次只會(huì)抓取變更的文件。開(kāi)始的時(shí)候,我直接在linux的crontab中加入一個(gè)定時(shí)任務(wù)來(lái)做這件事:

  0/ 5* * * * /usr/bin/rclone sync gdrive:web_deploy /opt/web

  上面這個(gè)配置意思是,從每小時(shí)的0分,每隔5分鐘調(diào)用 rclone 的 sync 將Google Drive 中的 web_deploy 同步到 /opt/web 目錄。

  所以現(xiàn)在的發(fā)布流程是,將要發(fā)布的版本扔到本地的Google Drive 目錄,然后6分鐘左右后在瀏覽器中訪(fǎng)問(wèn)網(wǎng)站確認(rèn)新版本。

  使用機(jī)器人來(lái)提高部署效率

  上面的方案已經(jīng)不錯(cuò),不過(guò)還有兩個(gè)問(wèn)題:

  因?yàn)橐蕾?lài)于定時(shí)任務(wù),會(huì)有一個(gè)延時(shí);

  不夠強(qiáng)大,不夠靈活,比如不能自動(dòng)幫忙重啟Node/pm2服務(wù),部署出現(xiàn)錯(cuò)誤的時(shí)候不能及時(shí)反應(yīng)等;

  所以,我決定用機(jī)器人(bot)來(lái)改善部署。

  現(xiàn)在有很多即時(shí)通信工具都提供了bot服務(wù)。我選用了Telegram的bot。

  首先, 需要?jiǎng)?chuàng)建一個(gè)bot賬號(hào)。在Telegram上創(chuàng)建bot比較簡(jiǎn)單,你只需要在telegram上找到botfather ,然后給他發(fā)一個(gè)/newbot命令,它就開(kāi)始了創(chuàng)建bot的過(guò)程,會(huì)讓你給你的bot起一個(gè)名字和賬號(hào),賬號(hào)必須以bot結(jié)尾。創(chuàng)建完后botfather會(huì)給你一個(gè)token。

  網(wǎng)站應(yīng)用自動(dòng)部署系統(tǒng)分享

  接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)bot程序。你可以使用任何你喜歡的開(kāi)發(fā)語(yǔ)言來(lái)完成這個(gè)程序。我選擇Node.js

  主要程序只有三個(gè)文件。

  package.json 定義了項(xiàng)目的基本信息,包括依賴(lài)的包等,代碼如下。

  { “name”: “appguardbot”, “version”: “1.0.0”, “deion”: “”, “main”: “index.js”, “s”: { “start”:“node index.js”}, “author”: “marknote”, “l(fā)icense”: “MIT”, “dependencies”: { “telebot”:“^1.2.3”} }

  config.js 中是配置信息:

  module.exports = { config: function(){return( { adminUsers:[ 3000000], //這里是admin用戶(hù)的telegram ID,多個(gè)用戶(hù)用西文逗號(hào)隔開(kāi)botToken:‘430000000:XXXXXXXXXXXXXXXXXXX’, //這里是chatbot的tokendeployCmd:‘/usr/bin/rclone sync’, //要執(zhí)行的Linux命令deployCmdOptions:[ ‘sync’, ‘gdrive:web_deploy’,‘ /opt/web’], //命令參數(shù),是一個(gè)數(shù)組} ); } };

  index.js 主要邏輯實(shí)現(xiàn):

  constconfig = require( ‘。/config’).config(); constTeleBot = require( ‘telebot’); constbot =newTeleBot(config.botToken); const{ spawn } = require( ‘child_process’);constadminUsers = config.adminUsers; bot.on([ ‘/deploy’, ‘/d’], (msg) =》 { //響應(yīng)deploy/d命令constid = msg.from.id; if(adminUsers.indexOf(id) 《 0) { //如果當(dāng)前用戶(hù)不是admin則拒絕發(fā)布msg.reply.text( ‘你沒(méi)有權(quán)限!’); return; } msg.reply.text(`開(kāi)始執(zhí)行部署任務(wù)。。.`);constshell = spawn(config.deployCmd, config.deployCmdOptions); shell.stdout.on( ‘data’, (data) =》 { //顯示執(zhí)行的輸出msg.reply.text(`stdout: ${data}`); }); shell.stderr.on( ‘data’, (data) =》 { //顯示錯(cuò)誤msg.reply.text(`stderr: ${data}`); }); shell.on( ‘close’, (code) =》 { msg.reply.text(`報(bào)告主人,任務(wù)執(zhí)行完畢,任務(wù)代碼 ${code}`); }); } ); bot.on( ‘text’, (msg) =》 { constid = msg.from.id; console.log( ‘當(dāng)前用戶(hù)ID:’+ id); msg.reply.text(msg.text) } ); bot.start();

  不到百行代碼,一個(gè)功能完備的bot程序就完成了。將它部署到服務(wù)器上,之后就可以用它來(lái)部署了。

  效果

  現(xiàn)在,每次要發(fā)布新版本,我只需要將發(fā)布包放到Google Drive 對(duì)應(yīng)目錄,然后對(duì)bot喊一聲/d,機(jī)器人就會(huì)開(kāi)始執(zhí)行任務(wù)。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 国产精品美女一区二区三区 | 在线午夜影院 | 中国一级特黄高清免费的大片 | 亚洲三级电影在线播放 | 国产一区二区三区欧美精品 | 久久国产视频网站 | 欧美在线一级视频 | 欧美区在线 | 中文在线免费看影视 | 天堂色综合 | 天天干天天干天天天天天天爽 | 国产三级在线播放 | 奇米影视亚洲狠狠色777不卡 | 国产三级香港三级人妇 | 国模吧新入口 | 国产乱码一区二区三区四川人 | 欧美综合在线视频 | 丰满年轻岳欲乱中文字幕 | 视色4se视频在线观看 | 午夜视频在线观看完整高清在线 | 亚洲成a人片在线观看88 | 日本特黄特色aaa大片免费欧 | 五月婷婷丁香在线观看 | 一级欧美一级日韩 | 不卡视频一区二区 | 99久久99久久久99精品齐 | 久久久五月 | 国产亚洲精品美女2020久久 | 2021精品综合久久久久 | 午夜免费观看福利片一区二区三区 | 亚洲欧洲一区二区三区在线 | 色多多在线观看 | 久久都是精品 | 国产一级特黄一级毛片 | avtt天堂网永久资源 | 免费观看四虎精品成人 | 在线观看黄色网 | 你懂的在线免费观看 | 欧美xxxx日本 | 夜夜摸夜夜爽 | 亚洲午夜一级毛片 |