本发明属于自动化运维领域,尤其涉及一种远程服务器代码更新系统及方法。
背景技术:
1、在日常开发过程中,通常会使用gitlab或svn代码管理工具,以自建的gitlab代码仓库管理系统举例,在本地开发和测试完成后,需要将代码合并到master分支,并push到远程的gitlab仓库。这时需要登陆运维部署专用服务器,进入项目目录,切换到master分支,执行git pull拉取最新代码,再手动运行rsync命令将项目代码上传到生产服务器,然后执行生产服务器的服务重启功能,启动生产服务。
2、这一过程中,需要运维人员全程上线参与,不仅会消耗大量工作时间,而且容易造成人为的失误,可能会导致程序更新版本比较混乱。
技术实现思路
1、有鉴于此,本发明实施例提供了一种远程服务器代码更新系统及方法,用于解决现有远程服务器代码更新运维人员消耗时间长、且容易导致更新出错的问题。
2、在本发明实施例的第一方面,提供了一种远程服务器代码更新系统,包括:
3、运维服务器,用于在运维人员登录服务器,并根据预部署项目名称、提交项目id和gitlab主分支修改执行脚本参数后,执行运维脚本,自动登录至跳板机服务器,并在终端界面显示执行过程及结果;
4、跳板机服务器,用于进入发布项目目录,并切换至代码生产分支,执行git pull指令将最新代码拉取到本机,通过rsync命令将代码同步至生产服务器的项目目录;
5、生产服务器,用于接收跳板机服务器发出的rsync更新项目代码文件,更新项目文件目录内容,并在更新完成后执行远程初始化指令进行初始化。
6、在本发明实施例的第二方面,提供了一种远程服务器代码更新方法,包括:
7、在运维人员登录运维服务器,并根据预部署项目名称、提交项目id和gitlab主分支修改执行脚本参数后,执行运维脚本,自动登录至跳板机服务器,并在终端界面显示执行过程及结果;
8、进入发布项目目录,并切换至代码生产分支,执行git pull指令将最新代码拉取到本机,通过rsync命令将代码同步至生产服务器的项目目录;
9、接收跳板机服务器发出的rsync更新项目代码文件,更新项目文件目录内容,并在更新完成后执行远程初始化指令进行初始化。
10、在本发明实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述方法的步骤。
11、在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
12、本发明实施例中,通过预定义的运维脚本,基于跳板机服务器来完成代码同步更新,从而能是实现远程服务器代码的自动更新,无需运维人员全程上线参入,避免过多占用运维人员时间,提高了运维效率。同时,通过执行预定义的运维脚本,可以避免人为操作导致的错误,避免程序版本更新混乱的问题。
1.一种远程服务器代码更新系统,其特征在于,包括:
2.根据权利要求1所述的系统,其特征在于,所述运维服务器安装有fabric自动化运维工具和ssh远程登录客户端工具。
3.根据权利要求1所述的系统,其特征在于,所述执行运维脚本之前包括:
4.根据权利要求1所述的系统,其特征在于,所述跳板机服务器包括:
5.一种远程服务器代码更新方法,其特征在于,包括:
6.根据权利要求5所述的方法,其特征在于,所述运维服务器安装有fabric自动化运维工具和ssh远程登录客户端工具。
7.根据权利要求5所述的方法,其特征在于,所述执行运维脚本之前包括:
8.根据权利要求5所述的方法,其特征在于,所述执行git pull指令将最新代码拉取到本机,通过rsync命令将代码同步至生产服务器的项目目录还包括: