我们有不同的服务器环境,如staging
和production
。我希望Capistrano检查我是否推送到正确的服务器,以便我们不会意外地将它推送到错误的服务器。如何在已确认的服务器上部署Capistrano部署IP
基本上,如果我想推到生产,例如,它会首先确认它是cap production deploy
类型的正确IP地址,否则该过程将停止并返回错误消息。
这可能吗?如何最好地做到这一点?
我们有不同的服务器环境,如staging
和production
。我希望Capistrano检查我是否推送到正确的服务器,以便我们不会意外地将它推送到错误的服务器。如何在已确认的服务器上部署Capistrano部署IP
基本上,如果我想推到生产,例如,它会首先确认它是cap production deploy
类型的正确IP地址,否则该过程将停止并返回错误消息。
这可能吗?如何最好地做到这一点?
让你的分支机构设置,防止意外打字cap production deploy
不会伤害
但要加倍小心,你可以添加得到hostnane
或ifconfig
输出任务,运行before 'deploy:started'
和失败/如果当前阶段是抛出一个错误不是它应该是什么
我最终做了一些简单的事情,并没有像我认为的那样完成同样的事情。我只是确保在部署代码中使用服务器的实际IP地址,而不是使用url。
所以,与其这样:
server 'demo.example.com', :web, :app, :worker, :db, :cache, primary: true
使用此:
server '100.100.100.100', :web, :app, :worker, :db, :cache, primary: true
这使得它无法部署到错误的服务器为您的DNS将不会被解释路线。
你有任何示例代码?具体来说,你将如何得到主机名或IP返回? – JCC
使用capistrano的'capture'方法,它在远程运行命令并返回输出 – Vasfed