摘要:背景說明項(xiàng)目測試通過,到了上線部署階段。部署的機(jī)器安全限制比較嚴(yán)格,不允許訪問外網(wǎng)。其中目錄中,存放的是部署相關(guān)的腳本。寫在后面文中提及的服務(wù)離線部署,應(yīng)該已經(jīng)可以涵蓋大部分的場景,舉一反三即可。
背景說明
項(xiàng)目測試通過,到了上線部署階段。部署的機(jī)器安全限制比較嚴(yán)格,不允許訪問外網(wǎng)。此外,沒有對外網(wǎng)開放ssh服務(wù),無法通過ssh遠(yuǎn)程操作。
針對上面提到的兩條限制條件,通過下面方式解決:
無法訪問外部網(wǎng)絡(luò):將依賴的環(huán)境本地下載,打包上傳,離線安裝;
無法ssh遠(yuǎn)程操作:將安裝/初始化步驟腳本化,安裝包交給運(yùn)維人員,一鍵部署;
安裝包說明讓運(yùn)維同學(xué)將安裝包置于/data/my_install下。安裝包大致如容如下。其中install_scripts目錄中,存放的是部署相關(guān)的腳本。
[root@localhost my_install]# tree -L 1 . ├── control # 各種服務(wù)控制腳本 ├── install_scripts # 安裝腳本 ├── node-v5.11.1-linux-x64 # node二進(jìn)制包 ├── npm_modules_global_offline # 全局的npm模塊,比如 pm2 ├── express_svr # express應(yīng)用 └── uninstall_scripts # 卸載腳本部署腳本說明
[root@localhost install_scripts]# tree -L 1 . ├── install_node.sh # 安裝nodejs ├── install_npm_moduels.sh # 安裝npm模塊 ├── install_run_service.sh # 啟動服務(wù) ├── install_express_svr.sh # 部署express應(yīng)用 └── install.sh # 部署總?cè)肟?/pre> Node安裝看下nodejs安裝腳本。為了安裝快些,這里我們采用的是編譯好的二進(jìn)制文件。只需要將相關(guān)文件拷貝到指定路徑即可。
Node安裝包說明以下是nodejs@v5.11.1的目錄。
[root@localhost node-v5.11.1-linux-x64]# tree -L 2 . ├── bin │ ├── node # node可執(zhí)行文件 │ └── npm -> ../lib/node_modules/npm/bin/npm-cli.js # npm可執(zhí)行文件,其實(shí)是個(gè)軟鏈接 ├── CHANGELOG.md ├── include # 各種包含文件 │ └── node ├── lib │ └── node_modules # npm模塊安裝目錄 ├── LICENSE ├── README.md └── share ├── doc ├── man # 說明文件 └── systemtap拷貝路徑說明如下
本地路徑 | 拷貝到的路徑 | 備注 |
---|---|---|
./bin/node | /usr/local/bin/node | node可執(zhí)行文件 |
./bin/npm | /usr/local/bin/node | npm可執(zhí)行文件,軟鏈接,指向 /usr/local/lib/node_modules/npm/bin/npm-cli.js |
./lib/node_modules/ | /usr/local/lib/ | npm模塊安裝目錄 |
./include/node | /usr/local/include/ | 各種包含文件 |
./share/man/man1/node.1 | /usr/local/man/man1/ | 使用說明 |
install_node.sh
[root@localhost install_scripts]# cat install_node.sh #!/bin/bash # 安裝nodejs cd /data/my_install/ cd node-v5.11.1-linux-x64/ cp -r ./lib/node_modules/ /usr/local/lib/ # copy the node modules folder to the /lib/ folder cp -r ./include/node /usr/local/include/ # copy the /include/node folder to /usr/local/include folder mkdir -p /usr/local/man/man1 # create the man folder cp ./share/man/man1/node.1 /usr/local/man/man1/ # copy the man file cp ./bin/node /usr/local/bin/ # copy node to the bin folder ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm ## making the symbolic link to npm全局npm模塊安裝
這里我們就用到了pm2,需要全局安裝。根據(jù)npm全局模塊的安裝方式,需要分兩步
將pm2模塊目錄拷貝到/usr/local/lib/node_modules下。
在/usr/local/bin/下,建立軟鏈接,指向/usr/local/lib/node_modules/pm2/bin/下的可執(zhí)行文件。
pm2安裝說明首先,把pm2包下載下來,這步略。我在這里放到了npm_modules_global_offline目錄下,以防以后還有其他全部模塊要一起安裝。
軟鏈接映射關(guān)系如下
目標(biāo)文件路徑 | 源文件路徑 |
---|---|
/usr/local/bin/pm2 | /usr/local/lib/node_modules/pm2/bin/pm2 |
/usr/local/bin/pm2-dev | /usr/local/lib/node_modules/pm2/bin/pm2-dev |
install_npm_moduels.sh
#!/bin/bash # 安裝全局npm模塊 cd /data/my_install/ cd npm_modules_global_offline/ cp -rf ./node_modules/* /usr/local/lib/node_modules/ ln -s /usr/local/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2 ln -s /usr/local/lib/node_modules/pm2/bin/pm2-dev /usr/local/bin/pm2-devExpress應(yīng)用安裝
express應(yīng)用的安裝相對比較簡單,本地npm install后,連同node_modules目錄一起打包即可。
腳本如下,把express_svr拷貝到指定路徑即可。
install_express_svr.sh
#!/bin/bash # 安裝express應(yīng)用 cd /data/my_install/ if [ ! -d "/data/web/express_svr" ]; then mkdir /data/web/express_svr fi cp -rf ./express_svr/* /data/express_svr/一鍵部署腳本 簡易版本
其實(shí)沒那么玄乎,無非就是再寫個(gè)腳本,統(tǒng)一調(diào)用下前面提到的腳本。奏是這么簡單。
install.sh:
./install_node.sh ./install_npm_moduels.sh ./install_otc_svr.sh ./install_run_service.sh
運(yùn)行:
./install.sh進(jìn)一步完善
上面腳本的缺陷比較明顯,沒有進(jìn)度提示,也沒有運(yùn)行狀態(tài)提示。于是優(yōu)化一下,雖然也不能算是完善,但相比之前的版本的確會好很多。
#!/bin/bash commands=( ./install_node.sh "install nodejs" ./install_npm_moduels.sh "install npm modules" ./install_express_svr.sh "install express application" ./install_run_service.sh "start services" ) commands_len=${#commands[@]} for (( i=0; i<$commands_len; i=i+2 )) do desc_index=i+1 desc=${commands[$desc_index]} echo -e $desc" - starts ..." ${commands[$i]} if [ "$?" == "0" ]; then echo -e $desc" - ok " else echo -e $desc" - failed ! " fi done
運(yùn)行看下效果:
install nodejs - starts ... install nodejs - ok install npm modules - starts ... install npm modules - ok install express application - starts ... install express application - ok start services - starts ... # pm2啟動日志,一大坨,這里忽略 start services - ok一鍵卸載腳本
從上面的內(nèi)容可以看到,離線部署的過程,主要包含了幾個(gè)操作
文件拷貝
建立軟連接
啟動服務(wù)
那么,卸載無非就是上面幾個(gè)步驟的反操作。腳本大致如下,跟前面的部署腳本其實(shí)是一一對應(yīng)的。這里就不再贅述。
[root@localhost uninstall_scripts]# tree -L 1 . ├── uninstall_run_service.sh ├── uninstall_node.sh ├── uninstall_npm_modules.sh ├── uninstall_express_svr.sh └── uninstall.sh寫在后面
文中提及的node服務(wù)離線部署,應(yīng)該已經(jīng)可以涵蓋大部分的場景,舉一反三即可。當(dāng)然更富在的場景還有,這里就不再展開。
。。。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/7971.html
摘要:摘要導(dǎo)語近日,阿里云發(fā)布了智能媒體管理服務(wù),通過離線處理能力關(guān)聯(lián)授權(quán)的云存儲,提供便捷的海量多媒體數(shù)據(jù)一鍵分析,并通過該分析過程構(gòu)建價(jià)值元數(shù)據(jù),更好支撐內(nèi)容檢索。標(biāo)準(zhǔn)統(tǒng)一,訪問接口統(tǒng)一為阿里云的標(biāo)準(zhǔn)。場景化一鍵式處理,提高易用性。 摘要: 導(dǎo)語 近日,阿里云發(fā)布了智能媒體管理(Intelligent Media Management)服務(wù), 通過離線處理能力關(guān)聯(lián)授權(quán)的云存儲,提供便捷的...
搭建個(gè)人云存儲一般會想到ownCloud,堪稱是自建云存儲服務(wù)的經(jīng)典。而Nextcloud是ownCloud原開發(fā)團(tuán)隊(duì)打造的號稱是下一代存儲。初一看覺得口氣不小,剛推出來就重新定義了Cloud,真正試用過后就由衷地贊同這個(gè)Nextcloud:它是個(gè)人云存儲服務(wù)的絕佳選擇。 與ownCloud相比,Nextcloud的功能絲毫沒有減弱,甚至由于可以安裝云存儲服務(wù)應(yīng)用,自制性更強(qiáng),也更符合用戶的...
摘要:另外小程序云應(yīng)用有一套高可用架構(gòu),提供監(jiān)控預(yù)警能力。自主可控小程序云應(yīng)用提供服務(wù)器,開發(fā)者可以擁有登錄或重啟,也可以修改密碼。也就是說,服務(wù)器是由小程序云應(yīng)用提供,但使用權(quán)歸開發(fā)者。 前不久有一個(gè)朋友問我,到底是做什么端的小程序比較好? 我只問了一句,你的產(chǎn)品里是否涉及錢和服務(wù),如果涉及這兩者,建議你選擇支付寶小程序。你可以通過其他小程序玩裂變,但如果你想做服務(wù)和商業(yè),一定要考慮支付寶...
摘要:一切看似妥當(dāng),但是頻繁的調(diào)整以及部署自然成了頭疼的問題。叫作部署的大問題由于我比較菜,所以沒有寫測試模塊。為什么因?yàn)榻^大多數(shù)都是黨用來部署的啊。。。經(jīng)過思考,原來在這里我們需要將部署工序做一個(gè)調(diào)整,同時(shí)增加步。。。 前言 在自己的vps上做博客系統(tǒng)已經(jīng)有一段時(shí)間了,期間也是磕磕碰碰遇到不少問題,如今也算是有個(gè)基礎(chǔ)版本能用。可是vps上只放一個(gè)博客有點(diǎn)浪費(fèi)了,而且博客系統(tǒng)也不光是用來寫文...
閱讀 1995·2021-11-23 10:08
閱讀 2325·2021-11-22 15:25
閱讀 3269·2021-11-11 16:55
閱讀 763·2021-11-04 16:05
閱讀 2576·2021-09-10 10:51
閱讀 704·2019-08-29 15:38
閱讀 1574·2019-08-29 14:11
閱讀 3480·2019-08-29 12:42