cxl
Published on 2024-12-25 / 844 Visits
27
0

Jenkins远程部署脚本

#it
	#前提是设置了服务器SSH免密登录
	# WORKSPACE变量是jenkins环境内置的
	REMOTE_USER="root"  # 远程服务器用户名,真实环境不建议直接使用root
	REMOTE_HOST="myserver"      # 远程服务器地址
	REMOTE_DIR="/data/project/backend/os" # 远程服务器上的目标目录
	SCRIPT_NAME="app.sh"		# 启动程序脚本
	echo "start copy to my server..."
	# 拷贝到远程服务器,由于是增量更新,只拷贝覆盖平时开发的包
	scp $WORKSPACE/athena-application/target/lib/my* $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/lib/
	scp $WORKSPACE/athena-application/target/athena-application-3.1.1.2.jar $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR
	
	# 检查文件是否成功上传
	if [ $? -ne 0 ]; then
	    echo "Error: File copy failed."
	    exit 1
	fi
	echo "copy finish..."
	# 连接到远程服务器执行备份与启动等脚本
	current_time=$(date +"%y%m%d%H%M")
	echo "Executing remote script..."
	ssh $REMOTE_USER@$REMOTE_HOST << EOF
	cd $REMOTE_DIR
	mv app.jar athena-application-$current_time.jar
	mv athena-application-3.1.1.2.jar app.jar
	./$SCRIPT_NAME restart
	EOF
	
	# 检查远程脚本执行结果
	if [ $? -eq 0 ]; then
	    echo "Remote script executed successfully."
	else
	    echo "Error: Remote script execution failed."
	    exit 1
	fi

注意:这里直接使用了 ssh root@myserver 就连接登录进去了是因为前提进行了 hosts 解析配置与 ssh免密登录操作

脚本中的 app.sh 可参考:启动程序脚本免密登录


Comment