35
43

More than 5 years have passed since last update.

【Rails5.2】credentials.yml.encとmaster.keyでのデプロイによる今までとの変更点

Posted at

はじめに

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を開くことができ、編集することができます。

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を編集

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

35
43
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
43