本篇內(nèi)容介紹了“怎么用shell腳本實現(xiàn)服務(wù)器快速設(shè)置”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、桓臺網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、購物商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為桓臺等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
通過shell
腳本實現(xiàn)服務(wù)器快速設(shè)置
現(xiàn)在企業(yè)出海已經(jīng)是常態(tài),我們面臨更多的國家地區(qū)服務(wù)器安裝的工作。雖然云服務(wù)已經(jīng)普及,還有各種SaaS
可以快速使用,但定制化需求會一直存在,那么快速部署的方法就很有必要。
目前與那些快速部署方法?
服務(wù)器鏡像——最快,但必須在同一個供應(yīng)商內(nèi),出??赡軙煌貐^(qū)用不同的云服務(wù)商,就無法實現(xiàn)。
docker
——可以通過鏡像方式快速部署,應(yīng)對復(fù)雜環(huán)境;
shell
腳本——可以簡化大多數(shù)復(fù)雜應(yīng)用的安裝,適合系統(tǒng)環(huán)境變化不大的情況,例如可以用同一個版本系統(tǒng)。
雖然shell
腳本的方式不如docker
和鏡像好使,但如果你還沒有嘗試過,可以試一下,作為一個工具,可以極大提高效率,因為我們也看到,很多的linux
安裝包也提供了類似的一鍵安裝腳本。
在上腳本之前,先要說明一下我的服務(wù)器軟件內(nèi)容:
gitlab-runner
集成部署
nodeJS
環(huán)境
nodeJS
標(biāo)準(zhǔn)的跑在gitlab-runner
用戶下
使用nvm
管理nodejs
版本
使用pm2
管理進程
下面是以我在游戲出海時使用的shell
腳本,簡單說明如何通過shell
腳本快速部署:
#!/bin/sh #第一句,基本是所有sh腳本的標(biāo)準(zhǔn)開頭 # Centos 7.8 #說明這個腳本適用的系統(tǒng)和版本,給人看的 #硬盤目錄:#變量聲明 DISK_PATH="/data" #之前已經(jīng)mount好的硬盤路徑 #hostname: HOSTNAME="my_server_name" #服務(wù)器名字,方便登錄后區(qū)分 #gitlab-runner: GITLAB_RUNNER="https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" #nodejs version NODE_VERSION="v8.17.0" #NVM #nvm安裝腳本 NVM_SCRIPT="https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh" #PM2 #pm2版本 PM2="pm2" #pm2 data path: #pm2日志路徑,我們不希望放到系統(tǒng)盤中 PM2_DATA_DIR="pm2Data" # 下方會組合成完整的路徑 DISK_PATH+/PM2_DATA_DIR echo "開始安裝SDK channel套件============" if [ -n "$HOSTNAME" ] # if的使用方式,大家需要去了解一下,-n是如果不為空的意思 then echo "修改hostname為:$HOSTNAME" hostnamectl set-hostname "$HOSTNAME" else echo "可以使用 'hostnamectl set-hostname newHostname' #設(shè)置當(dāng)前hostname,立即生效,重啟也生效" fi echo "準(zhǔn)備開始,當(dāng)前hostname:" hostname # 下面是一連串的安裝和處理了 echo "基礎(chǔ)準(zhǔn)備:" yum install epel-release -y yum update -y echo "安裝 htop:" yum install htop -y echo "安裝 ngnix:" rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum install nginx -y systemctl enable nginx systemctl start nginx touch "/etc/nginx/conf.d/virtual.conf" echo "安裝gitlab-runner:" # For RHEL/CentOS/Fedora curl -L "$GITLAB_RUNNER" | sudo bash yum install gitlab-runner -y echo "alias lg='su -l gitlab-runner'" >> "$HOME/.bashrc" source "$HOME/.bashrc" echo "建立pm2Data目錄:" PM2_FINALDIR="$DISK_PATH/$PM2_DATA_DIR" if [ ! -d "$PM2_FINALDIR" ]; then #-d是判斷是不是目錄,不是就創(chuàng)建 mkdir "$PM2_FINALDIR" fi chown gitlab-runner:gitlab-runner "$PM2_FINALDIR" #修改目錄owner # 我會生成一個新的腳本到gitlab-runner目錄,為什么這樣做呢? # 因為需要在gitlab-ruuner用戶跑服務(wù),希望環(huán)境在目標(biāo)用戶那里。 # 另外的原因是,以其他用戶身份安裝pm2會出現(xiàn)問題,那我就跑2次腳本咯 echo "切換用戶安裝 node 套件" ######## nodejs.sh Start######## NODE_SHELL='/home/gitlab-runner/nodejs.sh' echo "#!/bin/sh # Centos 7.8 #硬盤目錄: #nodejs version NODE_VERSION=\"$NODE_VERSION\" PM2_FINALDIR=\"$PM2_FINALDIR\" #NVM NVM_SCRIPT=\"$NVM_SCRIPT\" #PM2 PM2=\"$PM2\" echo \"安裝 nvm\" curl -o- $NVM_SCRIPT | bash echo \"安裝 node $NODE_VERSION:\" source \"\$HOME/.bashrc\" nvm install $NODE_VERSION nvm use $NODE_VERSION echo \"安裝pm2: $PM2\" npm i $PM2 -g npm install --global coffeescript npm install --global gulp # pm2 目錄的騷操作 PM2_HOME=\"\$HOME/.pm2\" if [ -d \$PM2_HOME ]; then echo '處理.pm2目錄' pwd ll mv \$PM2_HOME $PM2_FINALDIR rm \$PM2_HOME -r ln -s $PM2_FINALDIR/ \$PM2_HOME else echo -e '.pm2 目錄不存在' ln -s $PM2_FINALDIR/ \$PM2_HOME fi source \"\$HOME/.bashrc\" echo \"NodeJS 套件結(jié)束\"" > "$NODE_SHELL" chown gitlab-runner:gitlab-runner "$NODE_SHELL" chmod +x "$NODE_SHELL" # 讓腳本可以運行 # sudo -H -u gitlab-runner bash -c "$NODE_SHELL" #無法跑pm2安裝 echo "將切換到gitlab-runner 用戶,然后運行./nodejs.sh" ######## nodejs.sh End ######## su -l gitlab-runner #切換用戶,跑./nodejs.sh,就可以安裝好nodejs環(huán)境 sudo gitlab-runner register # 注冊gitlab-runner echo "完成" exit 0
這個腳本里遇到的最大問題是,我們目前無法在root
中安裝pm2
,會報錯。當(dāng)然也可以通過研究解決,但萬一以后pm2
版本更新了呢?研究出來的方法是不是不能用?所以干脆腳本生成腳本,再跑一次。coding
的時候記得字符串中的轉(zhuǎn)義。
通過這個方式,我實現(xiàn)了另外2個共3個為一組的服務(wù)群快速安裝。中間發(fā)生了一次,安裝了一半的時候,發(fā)現(xiàn)供應(yīng)商給錯服務(wù)器了,只能3個服務(wù)器都需要重新安裝!還好有腳本,否則真的是災(zāi)難!
“怎么用shell腳本實現(xiàn)服務(wù)器快速設(shè)置”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
網(wǎng)頁標(biāo)題:怎么用shell腳本實現(xiàn)服務(wù)器快速設(shè)置
本文地址:http://aaarwkj.com/article32/jegcpc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站排名、App設(shè)計、靜態(tài)網(wǎng)站、定制開發(fā)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)