的秘密.在克隆Yml的时候,如何制作一个新的秘密.yml文件



使用Rails 4.1.1创建了一个项目。启动并运行起来,现在我想与我的研究开发团队分享。当然,.gitignore从源代码控制中隐藏了secrets.yml文件,但是如果没有自己的secrets.yml文件版本,它们的版本将无法运行,得到以下错误:

处理请求时出现意外错误:'development'环境缺少secret_key_base,请在' config/secrets.yml

中设置此值
  • 我们需要共享秘密令牌吗?(因此只需复制并粘贴到他们的本地机器上)
  • 它们应该是单独的随机密钥吗?(克隆一个repo的过程是什么?)

因为您应该避免在源代码管理中存储私钥,所以我建议您添加一个config/secrets.sample。yml到存储库中,其中包含秘密的模板,例如:

development:
  secret_key_base:
  some_random_key:
test:
  secret_key_base:
  some_random_key:
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  secret_key_base: <%= ENV["SOME_RANDOM_KEY"] %>

然后你只需要给他们的值填写一个安全的方式(声音,一张纸,等)

你可以在这里读到一篇有趣的博客文章,关于如何部署应用程序的ENV变量

你不需要分享秘密。您可以使用以下rake命令生成新的秘密密钥:

rake secret

输出一个128位的伪随机十六进制值,如下所示:

b00dbff430b2c5596d10b3434ecd8a25515db481dccf818869a21d0c276ad159f00680aac38957ad57a73c9254754b32c42ef4fe2f76ee48d6e4ad8d4dc6a203

让每个研究开发团队成员对秘密中的每个secret_key_base运行该命令。yml文件。


如果这是针对生产环境的,则需要将从rake secret获得的值设置为环境变量。

最新更新