目录
准备服务
注意运行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 git@github.com
提示 You've successfully authenticated 就成功了
2 SSH 免密登录部署服务器
syncd 不会存储服务器的密码,都是通过 公钥免密登录实现的.
我们部署服务器已经有了公钥, 这个时候需要执行
ssh-copy-id -i ~/.ssh/id_rsa.pub appl@118.23.121.117 -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.提交发布申请, 管理发布事件单
新建发布申请
填写上线清单
填写完毕后审核通过, 进行编译和部署
如果项目维护和需要审核就审核后点击上线
分别进行构建和部署