我们用git托管代码, 线上有多台服务器, 求代码自动部署同步所有服务器的方法;
希望提供较详细的方案信息, 谢谢!
不要这样部署代码,靠git pull不能保证同步,而且有台机器pull没成功怎么办。建议单独一台部署机,pull代码,增量同步到服务器,可以用ansible
首先,想知道你是把origin裸库布置在线上的某台服务器上,还是把线上的这些服务器都当做从origin克隆代码的客户端。其次,线上的服务器可以做这么几件事来实现自动化部署:1. 给git增加增加钩子动作,每次git在完成某项动作是,可以通过该钩子附带执行对应的动作;2. 利用linux的corntab和shell脚本,定时执行一些检查,或者定时执行一些git更新;3. 还是利用2中的方法,定期对文件进行同步,也就是楼上说的sync。这是我的思路。
rsync服务器文件同步
期中的一台服务器你用git部署了,其他服务器都是单向rsync同步当前机器即可
用Capistrano
teamcity 或 jenkins自动构建工具,再写脚本把构建好的文件上传到各台机器上。
不要这样部署代码,靠git pull不能保证同步,而且有台机器pull没成功怎么办。建议单独一台部署机,pull代码,增量同步到服务器,可以用ansible
首先,想知道你是把origin裸库布置在线上的某台服务器上,还是把线上的这些服务器都当做从origin克隆代码的客户端。
其次,线上的服务器可以做这么几件事来实现自动化部署:1. 给git增加增加钩子动作,每次git在完成某项动作是,可以通过该钩子附带执行对应的动作;2. 利用linux的corntab和shell脚本,定时执行一些检查,或者定时执行一些git更新;3. 还是利用2中的方法,定期对文件进行同步,也就是楼上说的sync。
这是我的思路。
rsync服务器文件同步
期中的一台服务器你用git部署了,其他服务器都是单向rsync同步当前机器即可
用Capistrano
teamcity 或 jenkins自动构建工具,再写脚本把构建好的文件上传到各台机器上。