shokun1209
@shokun1209 (s shoya)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AWS master key の設定について Ruby on Rails

解決したいこと

AWSへのデプロイ時にエラーが出現
マスターキーを指定のファイルへ書き込んでくださいとの内容だと認識しています。

ActiveSupport::EncryptedFile::MissingKeyError: 
Missing encryption key to decrypt file with.
Ask your team for your master key and write it to /var/www/elest-0506/releases/20210707122415/config/master.key or put it in the ENV['RAILS_MASTER_KEY'].

自分で試した事

①上記エラー文の指示をもとに、エラーで指示されているディレクトリへ移動

[ec2-user@ip-xxx-xx-xx-xxx ~]$ cd /var/www/elest-0506/releases/20210707122415/config

②master key の設定を試みる

[ec2-user@ip-xxx-xx-xx-xxx config]$ vi master.key

③テキストエディタからマスターキーを確認&コピー
masterkey1.png

④insertモードへ切り替え、③でコピーしたマスターキーを貼り付け→ESCキー→:wq
masterkey2.png

⑤ちゃんと保存されているかを確認(②の手順を再度実行、保存ができている事を確認)

よし!!

いざ、再度デプロイだ!!

[ローカル アプリ名]% bundle exec cap production deploy

引き続き全く同じマスターキーエラーが出現

これは・・・ 一体何が原因なんでしょう:cry:
そもそも私のエラーに対する認識が間違っているのでしょうか??
もしくは、大事な手順を見落としているのでしょうか・・・
お力添え頂けますと幸いです:bow_tone1:

0

1Answer

デプロイすると新しいリリースディレクトリが /var/www/elest-0506/releases の中に作成されるからです。エラーが出たリリースのディレクトリに master.key を置いても次にデプロイするとそれは使われなくなります。

本番環境では master.key を置くのではなく RAILS_MASTER_KEY 環境変数にキーをセットしてください。

1Like

Comments

  1. @shokun1209

    Questioner

    ご丁寧に説明頂きありがとうございます!

    ご指摘頂いた通りの方法でエラーが解消できました。

    大変助かりました!!

Your answer might help someone💌