目錄
準備服務
注意運行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.提交發布申請, 管理髮布事件單
新建發佈申請
填寫上線清單
填寫完畢後審覈通過, 進行編譯和部署
如果項目維護和需要審覈就審覈後點擊上線
分別進行構建和部署