在哪里存储许多类似的sinatra应用程序的配置

时间:2012-11-09 14:33:42

标签: ruby sinatra setup-deployment

我在一组apache-passenger服务器上运行了大约130个sinatra网络应用程序。所有这些应用程序都是从通用代码库克隆的,然后修改为拥有自己的身份验证密钥。除了身份验证密钥之外,大多数应用程序都没有修改。独立应用程序的优势在于我可以非常快速地对特定应用程序进行更改,而不会有其他应用程序停机的风险。

但是,这些身份验证密钥本质上是配置。将配置存储在代码库中既不方便又直观错误。我探索过的备选方案包括将配置存储在数据库中并将其缓存在内存中,per-app apache环境变量和共享的json文件。

有更好的选择吗?我错过了任何陷阱?

1 个答案:

答案 0 :(得分:0)

听起来环境变量可能最适合您的目的,然后可以在您的应用中访问,如下所示:

$ APPNAME_AUTH_KEY="saf3t33553" ruby -e "puts ENV['APPNAME_AUTH_KEY']"
saf3t33553

共享位置中的JSON文件,甚至普通的ruby文件也可以解决问题。将配置存储在数据库中听起来有点过分。

如果你想深入挖掘,这是我写的很多主题:

编写可配置的应用程序(part 1part 2) (请参阅第2部分中的“使用Shell环境进行配置”部分)