1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

credential.ymlを理解する(デプロイの練習)

Last updated at Posted at 2021-02-13

これはなに?

awsでデプロイの練習をしています。credentials.ymlについてわからないことが多かったので、ノートにまとめてみました。

主に、以下の2つの記事から学習した内容をまとめています。

credential.yml.enc とは?

一言でいうと、環境変数を一つにまとめて書いておく場所
Rails5.1までは、環境変数を複数の場所に書いておかなくてはいけなかった(らしい)。

それらをyml形式で書いて、暗号化してまとめてある。言わば機密情報の集約ファイル

暗号化されていて、直接編集はできない。

credentialw.yml.encは、以下のコマンドで生成され、編集できます。

bin/rails credentials:edit

生成されたcredentials.yml.encは暗号化されているので、直接編集はできません。

config/credentials.yml.enc
MABIeuyDFIyrzi6BM2....

editorを指定しないと、編集できない。

また、credentialw.yml.enc環境変数:EDITORを指定しないと編集できません。

$ export EDITOR="vi"
$ echo $EDITOR
  #=> vi

余談

こんな風にして、export EDITOR="vi".bash_profile に登録して、ターミナルが起動するたびに環境変数が登録されるようにすると、毎回EDITORを指定しないでよくなります。

$ echo 'export EDITOR="vi"' >> ~/.bash_profile
$ source ~/.bash_profile
$ echo $EDITOR
  #=> vi

config/master.keyとの関係

credentials.yml.encmaster keyを利用して暗号化・復号されます。

master.keyがない状態で、credentials:editを実行すると、master.keyが生成されます。

$ EDITOR="vi" bin/rails credentials:edit
create  config/master.key

書き込むもの

今回は、AWSにアプリのデプロイを行ったのですが、書いた内容は「本番環境のデータベースのパスワード」(ローカルとは違う)

また、ローカルのcredential.yml.encmaster.keyの組み合わせが、本番環境のそれと一致していないといけなかったのが、なかなかハマりどころだった。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?