如何使用3台服务器[repository,dev,prod]设置git自动部署

时间:2015-01-13 09:40:04

标签: git deployment ubuntu-14.04 gitosis automatic-updates

最近,我已阅读了有关如何使用Git设置自动部署的一些说明和教程digital ocean。问题是所有解决方案都是大约2台服务器 - 测试和实时,而测试服务器必须有自己的存储库。

就我而言 - 我有3台服务器:

  1. 包含所有存储库的服务器[Debian 6.0.8](使用Gitosis)
  2. 我的团队进行更改的开发/测试服务器[ubuntu 14.04]
  3. live / prod服务器[ubuntu 14.04]
  4. 在这种情况下是否可以配置自动部署?

    我想知道将生产服务器安装到存储库服务器或以某种方式在它们之间建立另一个连接。

    也许有更好的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

它比看起来容易得多。

  1. 首先,我已将我的开发服务器安装到我的存储库服务器
  2. sshfs user@dev_server:/path/to/www /mnt/dev_server -o ServerAliveInterval=60 -o allow_other
    

    如果没有allow_other选项,则会在" git push"

    上出现权限被拒绝错误
    1. 比在repositories / website.git / hooks文件夹中我创建了脚本" post-receive"
    2.   

      cat post-receive

       #!/bin/sh
       git --work-tree=/mnt/dev_serv/path/to/www/website --git-dir=.../repositories/website.git checkout -f
      

      它的工作就像一个魅力。现在我只是在寻找更安全的方法。此解决方案在本地与dev_server之间进行了测试。

      主要目标是仅在将某些内容从开发服务器(而非本地)推送到生产环境时运行自动部署。