Syncd 部署Java應用

目錄

準備服務

1Syncd服務器免密登錄 GitLab

2 SSH 免密登錄部署服務器

3.新建服務器集羣和服務器

4 維護項目信息

5.提交發布申請, 管理髮布事件單

 


準備服務

注意運行Java 需要安裝Java環境和 maven

1Syncd服務器免密登錄 GitHub/GitLab

注意郵箱名稱和用戶地址不可少

$ git config --global user.name “your_username”  #設置用戶名
$ git config --global user.email “your_registered_github_Email”  #設置郵箱地

方案1 是直接吧用戶密碼存儲下來, 之後就免密了

      輸入 git config --global credential.helper store  命令, 使用 Store 模式將憑證存儲在磁盤

      然後操作pull/push 會讓輸入用戶名密碼,第一次輸入進去。下次再操作pull/push時就不需要輸入用戶名密碼了。

 

方案2 使用SSH, gitHub可以, 但是GitLab 要知道 服務器的用戶名和域名

切換syncd的用戶, 在服務器執行ssh-keygen , 連續三次回車

[syncd@VM_121_116_centos .ssh]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/syncd/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/syncd/.ssh/id_rsa.
Your public key has been saved in /home/syncd/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fLvONE5cJvkxA95kyJxygAxXWnwr9GO1zAkZTlhWLnc syncd@VM_121_116_centos
The key's randomart image is:
+---[RSA 2048]----+
|    .o.++o=+.    |
|     .oo+B++.    |
|      ...oX*=oE  |
|       ..+=O=.   |
|        So=.B    |
|         o * +   |
|          * .    |
|         = o     |
|         .=      |
+----[SHA256]-----+
[syncd@VM_121_116_centos .ssh]$ ll
total 12
-rw------- 1 syncd syncd 1675 Apr 10 15:06 id_rsa
-rw-r--r-- 1 syncd syncd  405 Apr 10 15:06 id_rsa.pub
-rw-r--r-- 1 syncd syncd  346 Apr 10 14:21 known_hosts
查看 ~/shh 目錄下的 id_rsa.pub

複製紅框的內容, 到 gtiHub/gitLab 的賬戶設置 

添加SHH key

 

接下來需要我們 SSH 鏈接 gitLab 服務器 ssh -T  服務器用戶名@服務域名

下面是gitHub的, gitLab具體內容要看部署gitlab 的部署者

ssh -T [email protected]

提示  You've successfully authenticated 就成功了

 

2 SSH 免密登錄部署服務器

syncd 不會存儲服務器的密碼,都是通過 公鑰免密登錄實現的. 

我們部署服務器已經有了公鑰, 這個時候需要執行

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -p 22522

把公鑰添加到 訪問主機用戶下面授權文件中, 詳情見: https://blog.csdn.net/qq_21047625/article/details/89183781

3.新建服務器集羣和服務器

集羣管理--> 新增集羣

填寫集羣名稱

服務器管理--> 新澤服務器

填寫服務器信息

4 維護項目信息

新增項目空間

 項目管理新增項目

填寫項目信息--基本

框內用於填寫部署 jar 的命令, 編寫一個啓動腳本, 可以參考下面的

 

在服務器新建腳本 並且在部署後執行 腳本如下

deploy.sh

#!/bin/bash
#這裏可替換爲你自己的執行程序,其他代碼無需更改
APP_NAME=demo-0.0.1-SNAPSHOT.jar

#使用說明,用來提示輸入參數
usage() {
    echo "Usage: sh 執行腳本.sh [start|stop|restart|status]"
    exit 1
}

#檢查程序是否在運行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#啓動方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    nohup java -jar $APP_NAME > /dev/null 2>&1 &
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}

#輸出運行狀態
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}

#重啓
restart(){
  stop
  start
}

#根據輸入參數,選擇執行對應方法,不輸入則執行使用說明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

填寫構建腳本

本項目執行如下:   ${env_workspace} 是 git代碼倉庫的根目錄, ${env_pack_file} 是打包文件的路徑, 這個路徑syncd 會自動設定, 一般在/tmp/syncd_data下面

cd ${env_workspace}
mvn clean package
cd target
tar -zcvf ${env_pack_file}  *.jar 

5.提交發布申請, 管理髮布事件單

新建發佈申請

填寫上線清單

填寫完畢後審覈通過, 進行編譯和部署

如果項目維護和需要審覈就審覈後點擊上線

 

分別進行構建和部署

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章