日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本篇文章給大家怎么使用shell腳本實現服務器快速設置,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所助。


教你怎么使用shell腳本實現服務器快速設置


通過shell腳本實現服務器快速設置

現在企業出海已經是常態,我們面臨更多的國家地區服務器安裝的工作。雖然云服務已經普及,還有各種SaaS可以快速使用,但定制化需求會一直存在,那么快速部署的方法就很有必要。

目前與那些快速部署方法?

服務器鏡像——最快,但必須在同一個供應商內,出??赡軙煌貐^用不同的云服務商,就無法實現。

docker——可以通過鏡像方式快速部署,應對復雜環境;

shell腳本——可以簡化大多數復雜應用的安裝,適合系統環境變化不大的情況,例如可以用同一個版本系統。

雖然shell腳本的方式不如docker和鏡像好使,但如果你還沒有嘗試過,可以試一下,作為一個工具,可以極大提高效率,因為我們也看到,很多的linux安裝包也提供了類似的一鍵安裝腳本。

在上腳本之前,先要說明一下我的服務器軟件內容:

gitlab-runner集成部署

nodeJS環境

nodeJS標準的跑在gitlab-runner用戶下

使用nvm管理nodejs版本

使用pm2管理進程

下面是以我在游戲出海時使用的shell腳本,簡單說明如何通過shell腳本快速部署:

#!/bin/sh #第一句,基本是所有sh腳本的標準開頭
# Centos 7.8  #說明這個腳本適用的系統和版本,給人看的
 
#硬盤目錄:#變量聲明
DISK_PATH="/data" #之前已經mount好的硬盤路徑
#hostname:
HOSTNAME="my_server_name" #服務器名字,方便登錄后區分
#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日志路徑,我們不希望放到系統盤中
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' #設置當前hostname,立即生效,重啟也生效"
fi
echo "準備開始,當前hostname:"
hostname
 
# 下面是一連串的安裝和處理了
 
echo "基礎準備:"
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是判斷是不是目錄,不是就創建
  mkdir "$PM2_FINALDIR"
fi
chown gitlab-runner:gitlab-runner "$PM2_FINALDIR" #修改目錄owner
 
# 我會生成一個新的腳本到gitlab-runner目錄,為什么這樣做呢?
# 因為需要在gitlab-ruuner用戶跑服務,希望環境在目標用戶那里。
# 另外的原因是,以其他用戶身份安裝pm2會出現問題,那我就跑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 套件結束\"" > "$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環境
 
sudo gitlab-runner register # 注冊gitlab-runner
 
echo "完成"
exit 0

這個腳本里遇到的最大問題是,我們目前無法在root中安裝pm2,會報錯。當然也可以通過研究解決,但萬一以后pm2版本更新了呢?研究出來的方法是不是不能用?所以干脆腳本生成腳本,再跑一次。coding的時候記得字符串中的轉義。

通過這個方式,我實現了另外2個共3個為一組的服務群快速安裝。中間發生了一次,安裝了一半的時候,發現供應商給錯服務器了,只能3個服務器都需要重新安裝!還好有腳本,否則真的是災難!


分享到:
標簽:shell腳本 服務器快速設置
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定