Как установить RAILS_MASTER_KEY на рабочий сервер?
Я использую Capistrano для развертывания (для nginx / пассажира) приложения rails 6 (ruby 2.7.0). Чтобы позволить производственному приложению получить доступ к учетным данным, я пытаюсь предоставить ему master.key. Я могу получить ключ локального главного ключа env (разработки) в папке shared / config сервера. Тем не менее, развертывание приложения в конечном итоге завершается неудачей.
Чтобы добраться:
- шаг 1 в локальной среде, я генерирую главный ключ для производственной среды и добавляю соответствующие переменные. Я также пытался использовать мастер-ключ.
- шаг 2 Я вручную добавляю этот ключ в файл shared / config / master.key на сервере
Я получаю следующий ответ от Capistrano Команда развертывания:
ActiveSupport :: EncryptedFile :: MissingKeyError: Отсутствует ключ шифрования для расшифровки файла. Попросите у вашей команды ваш главный ключ и напишите его в /home/deploy/tribe/releases/20200130135612/config/credentials/production.key или вставьте его в ENV ['RAILS_MASTER_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