【问题标题】:Using Figaro to sync tokens on production and development使用 Figaro 在生产和开发中同步代币
【发布时间】:2015-05-10 07:09:16
【问题描述】:

我正在完成一个处理 Figaro 的 Rails 练习,并在生产和开发环境中同步令牌,我不确定我所做的是否符合本练习的目的。具体来说,它说运行 rake secret 来生成令牌,然后运行 ​​heroku config:set SECRET_KEY_BASE=thegeneratedtoken 将该令牌设置为 ENV生产变量。我已经完成了这些步骤。

然后我被要求将 SECRET_KEY_BASE 添加到我已经完成的 application.yml 文件中,然后使用 Figaro 在 Production 上同步令牌和 Development。 然后将 Development 密钥设置为与 secrets.yml 中的 Production 密钥相同的 ENV 存储令牌。

所以我的 secrets.yml 文件看起来像这样:

secrets.yml

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

而 application.yml 文件实际上包含 SECRET_KEY_BASE 之后生成的令牌:

这看起来我已经完成了所有必要的任务吗?我想我大部分时间都沉迷于练习的“使用 Figaro 同步令牌......”部分。我不确定我是否需要在这里运行一些命令,或者他们是否只是说将令牌添加到 application.yml 文件正在同步环境。

【问题讨论】:

    标签: sync figaro-ruby


    【解决方案1】:

    如果你能在这里分享这个练习会很酷(它是一个在线教程吗?),所以我的答案可以更准确。

    如果你跑了

    heroku config -a YOUR_HEROKU_APP
    

    并在输出中看到 SECRET_KEY_BASE 并且它与您从本地开发同步的内容相匹配,那么这意味着您已成功同步您的配置。

    figaro's github page 上很好地解释了 secrets.yml 与 figaro 中令人困惑的部分。

    您在本地真正需要 figaro 的是从 application.yml 文件中读取配置并将其添加到 ENV 对象,以便您的 secrets.yml 文件可以安全地访问秘密(您可以安全地将 secrets.yml 提交到您的仓库,但仅将 application.yml 保留在本地(最好添加到 .gitignore >))

    现在,Heroku 从ENV 加载所有配置,您只需登录并复制粘贴数据,或使用命令行设置配置键。

    这个命令

    heroku config:set SECRET_KEY_BASE=thegeneratedtoken
    

    正是这样做的。现在这个 figaro 命令用于同步数据:

    figaro heroku:set -e production
    

    实际上只是一个包装脚本,它将遍历 application.yml 中的所有键(在production: 下无作用域或作用域)并将运行(对于每个键):

    heroku config:set PROD_KEY_1=VALUE_PROD_KEY_1
    

    我希望这有助于解决最初的困惑 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多