我们设置了几个不同的服务器来处理我们的旗舰产品。我们有一个开发服务器、一个演示/登台服务器和一个生产服务器。所有这些都运行在 Debian 或 Ubuntu 的某个版本上。
为了管理新客户端的创建、压缩备份、列出统计数据等等;我创建了一个新的 Git 存储库(托管在GitHub),其中包含一堆 Rake 任务。然后我使用虚拟机安装 Ruby 和捆绑器安装必要的宝石,并用它rvmsudo rake my_task
来执行任务。
在我让一位新开发人员加入项目之前,这个方法一直运行良好。他必须下载 rvm、安装 ruby 并安装所有适当的 gem 才能使其工作,而且他很难弄清楚是否使用sudo
或 ,rvmsudo
因为每台机器上的设置略有不同。
因此,我想从头开始,在每台服务器上重新安装所有内容。理想情况下,我希望我的开发人员将 Git 存储库克隆到他们的主目录(以防他们自己修改 rake 任务)并使用 sudo 或 rvmsudo 执行 rake 任务。我想将其标准化,这样他们就不必猜测它是哪一个。
我记得使用默认包管理器安装最新版本的 Ruby、Rails 和 Rake 时遇到了一些麻烦,apt-get
这就是我转而使用 rvm 的原因,但看起来这可能是一个糟糕的选择。
那么,是否有人知道很好的指南或有关如何在服务器上设置 Ruby/Rails/Rake 的指示,以便所有具有 sudo 访问权限的开发人员都可以执行命令而不必担心安装任何东西?
非常感谢!
答案1
听起来你正在向标准化环境迈出重要的第一步。恭喜你 - 你将经历一段短暂的痛苦时期,然后是系统管理员涅槃。
认真地讲,花一个月时间,构建你希望在可预见的未来看到的系统,然后开始制定计划,使用某种部署工具将其部署到任何地方(木偶或者厨师是目前最常见的。
部署工具和标准化解决了您的主要问题:一切都将在每台机器上以相同的方式工作。
在将软件安装到模板机上并选择其工作方式方面,我对基于 Debian 的系统的建议是,apt
如果可以的话,使用安装所有东西,但如果你使用部署工具,那么就不那么关键了:你的系统将由工具部署、修补和维护,所以你不应该曾经在实时服务器上进行一次性修补。(是的,有时会发生这种情况,但请记住,您的部署工具会破坏这些更改,因此请确保您使它们成为正确的在某种程度上。)
在推出新环境之前,请务必让您的开发人员有机会试用新环境(最好有 VMWare 实验室)...