一鍵部署指令碼

梅芬發表於2019-03-29

一鍵部署指令碼

shell 指令碼:

常用命令

wget,tar,zip,
cd,ls,rm,cp,mkdir
echo,sed,ps,netstat
grep,awk,,wc,head,tail,exit
複製程式碼

流程和注意事項

1. 引數的輸入

明確方法或者模組的入參,一般入參是使用者需要自己填寫的引數。 例如:

$./install.sh -P /data/root/test"
複製程式碼

使用者需要執行行指令碼install.sh,入餐分別是-P/data/root/test

2. 用法檢查

檢測使用者的入引數,提示使用者怎麼用,比如說 ./install.sh -P /data/root/test 指令碼說明:

if [ $# -lt 2 ]; then
    echo "Usage:"
    echo "    ./install.sh -P /data/root/test"
    exit 1
fi

複製程式碼
3. 讀取配置檔案,獲取引數

讀取配置檔案,解析配置檔案的引數,檢查配置是否合理 假設使用的配置是test.ini

$ cat test.ini
[mysql]
ip=127.0.0.1
port=3306
複製程式碼
  • 讀取配置檔案和引數
value=$(crudini --get $file $section $param)
mysql_ip=$($value "mysql" "ip")
複製程式碼

通過上面可以獲取mysql_ip

  • 檢查配置
function checkIp(){
    if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
      exit 0
    else
      echo "fail"
      exit 1
    fi
}

function checkPort(){
    local port="$1"
    local -i port_num=$(to_int "${port}" 2>/dev/null)

    if (( $port_num < 1 || $port_num > 65535 )) ; then
        echo "*** ${port} is not a valid port" 1>&2
        exit 1
    fi
}
複製程式碼
4. 拼接引數和安裝模組
  • 如果有不同模組安裝,使用者需要進行並且引數,並安裝其他的模組。
5. 編寫啟動指令碼、停止指令碼
  • 啟動服務指令碼
  • 停止服務指令碼
  • 監控指令碼
6. 編寫監控指令碼

通過crontab,進行服務的拉起。當停止指令碼時,需要將crontab對應的job,進行移除。

7. 檢查服務指令碼

編寫curl指令碼,檢視服務是否正常,以及檢查重要的介面是否正常執行。

8. 其他
  • 統一處理控制檯輸出

更多

相關文章