我想在一台机器上设置几个 Mercurial 的“中央”存储库。
不过,我需要做的事情很少:
- 每个存储库都应该有自己的 ACL,允许不同的用户推送/拉取
- 它不应该是基于 ssh 的(它不应该要求用户在该机器上拥有 shell 帐户)
- 所以,我想这给我留下了一些
https
基本的身份验证,对吧?
有没有提供这种功能的可行解决方案?
有一个 Web 应用程序需要部署在远程服务器上。可以scp
访问此服务器,但没有工作外壳,所以不能就ssh
在那里。
出现的问题是如何在那里部署应用程序?部署,作为运行一个准备好的脚本来执行一些任务,比如更新数据库模式、重新启动服务器、清除缓存等?
我想到的一件事是通过 复制所有文件scp
,然后在目标机器上 ping 一些 URL(比如http://production.site.com/deploy
- 或那里的任何随机字符),这会触发部署脚本。这可能需要一些基于 IP 的限制,所以不是每个输入此 url 的人都会启动部署脚本(以避免可能的 DOS 攻击)。
另一种方法是在目标机器的 cron 中进行一个简单的检查,并像每 1 分钟一样触发它。在这种情况下,部署过程将如下所示:
deploy.it
我们将整个应用程序复制到生产服务器,然后复制特定文件,例如deploy.it
存在和deploy.lock
不存在。如果是这样,它会创建一个锁定文件 ( deploy.lock
) 并启动一个部署脚本。deploy.it
和deploy.lock
都将被删除。您如何看待这两个想法?还有更多关于它的想法吗?我想找到最好的(对于可能的搞砸和从任何方式对生产服务器进行 DOS 操作的最安全的方式)来部署它......