はじめに
Rails5.2からsecrets.ymlが廃止になり、credentials.yml.encとmaster.keyに置換されました。
今までamazonS3のaws_access_key_idなどを保存をsecrets.ymlでやっていましたがそちらが変更となりました。
その変更において少し引っかかったところがあるので、備忘録として残しておきたいと思います。
①credentials.yml.encを編集する
$ EDITOR=vim bin/rails credentials:edit
上記コマンドで暗号化されていない、credentials.yml.encを開くことができ、編集することができます。
aws:
access_key_id: 123
secret_access_key: 123
# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aws: access_key_id: 123 secret_access_key: 123
上記のところにaccess_key_idとsecret_access_keyを記述します。
※デフォルトだとコメントアウトされているので外しておきましょう。
②deploy.rbを編集
set :linked_files, fetch(:linked_files, []).push("config/master.key")
deploy.rbに上記の行を追加します。
##③本番環境のshared/configにmaster.keyを作成
このままデプロイしても以下のようなエラーが出てしまいます。
ERROR linked file /var/www/techlog/shared/config/master.key does not exist on 13.114.255.24
エラー通り、shared/configにmaster.keyを作ります。
#本番環境
$ touch /var/www/アプリケーション名/shared/config/master.key
作成したmaster.keyを編集します。
$ vim /var/www/アプリケーション名/shared/config/master.key
ローカルのmaster.keyの内容をコピーし、本番環境のmaster.keyにコピーします。
以上で作業完了です。
参考記事
ローカルからAWSのEC2にファイルをコピー
https://qiita.com/Yorinton/items/df24281fcf07729fa0f9
Rails5.2から導入されたcredentials.yml.encを極める
https://qiita.com/yuuuking/items/53a37a2e998972be32b8