基于名字自动发布之流程(2)
项目地址: https://gitee.com/lookingdreamer/RexDeploy_v1
正常的流自动发布,一般经过以下五个步骤,当然也可以适当的自定义发布,此处主要介绍一下正常流程的自动发布流程
流程图
关键流程解析
1.关键词判断
名字可以是local_name的分组名,也可以唯一的名字app_key,如果在数据库中查不到记录则会退出发布操作.校验关键词其实是根据关键词在数据库中执行查询匹配操作,查询到服务的操作主机、发布目录、进程关键词、启动脚本等.
执行正式发布前,默认会该应用加1个锁状态,证明该应用正在发布,其他用户无法操作该应用的发布.发布完成会自动解锁.
2.远程服务器信息校验
根据上步骤给出的服务器信息,去远程服务器查看程序目录、配置目录、进程信息是否存在等
3.上传包
将本地的程序包和配置包上传到远程服务器,上传方式目前包括rsync ssh以及sftp两种方式,这2种方式可以在config.yml中配置
4.修改软链接
取消原配置或者程序的软链接,重新把新链接链接上去.如果原目录是不是软链接,则会移动该目录,同时做好备份
5.保存发布信息状态
保存发布后目录、配置、进程等到数据库中