Ruby on rails 在生产环境中使用Capistrano的Rails多环境凭据:如何设置?

Ruby on rails 在生产环境中使用Capistrano的Rails多环境凭据:如何设置?,ruby-on-rails,capistrano,credentials,Ruby On Rails,Capistrano,Credentials,如何将RAILS\u MASTER\u密钥设置为生产服务器 我正在使用Capistrano部署(一个nginx/乘客)rails 6应用程序(ruby 2.7.0)。为了让生产应用程序访问凭据,我正在尝试使用master.key为其提供凭据 我可以获取服务器的shared/config文件夹的本地env(development)主密钥。不过,部署应用程序最终还是失败了 要到达那里: 步骤1在本地环境中,我为生产环境生成一个主密钥,并添加相关变量。我也试过用万能钥匙 步骤2我手动将该密钥添加到服

如何将RAILS\u MASTER\u密钥设置为生产服务器

我正在使用Capistrano部署(一个nginx/乘客)rails 6应用程序(ruby 2.7.0)。为了让生产应用程序访问凭据,我正在尝试使用master.key为其提供凭据 我可以获取服务器的shared/config文件夹的本地env(development)主密钥。不过,部署应用程序最终还是失败了

要到达那里:

  • 步骤1在本地环境中,我为生产环境生成一个主密钥,并添加相关变量。我也试过用万能钥匙
  • 步骤2我手动将该密钥添加到服务器共享的/config/master.key文件中
我从Capistrano deploy命令获得以下响应:

ActiveSupport::EncryptedFile::MissingKeyError:缺少用于解密文件的加密密钥。向您的团队索要主密钥,并将其写入/home/deploy/tribe/releases/20200130135612/config/credentials/production.key,或将其放入ENV['RAILS\u master\u key']

假设这可能是一个时间问题,我也用相同的键更新当前的/config文件夹,并收到相同的响应

显然,我没有得到主钥匙的地方应该

Capistrano链接文件任务如下

append :linked_files, "config/master.key"
set :linked_files, %w{config/master.key}

namespace :deploy do
  namespace :check do
    before :linked_files, :set_master_key do
      on roles(:app), in: :sequence, wait: 10 do
        unless test("[ -f #{shared_path}/config/master.key ]")
          upload! 'config/master.key', "#{shared_path}/config/master.key"
        end
      end
    end
  end
end

我所做的是,我不仅添加了master.key链接,还添加了production.key链接,因为log抱怨production.key,而不是master

这将添加到my deploy.rb中

set :linked_files, %w{config/credentials/production.key}

现在capistrano工作了,对秘密没有任何问题

是的,我也有同样的问题。在我将密钥放入一个版本文件夹并执行“exec cap production deploy”之后,将创建一个新的版本文件夹,仍然存在相同的错误