【credentials.yml.enc】CircleCIに環境変数を登録する


credentials.yml.encとは

config/master.keyを使用して暗号化・複合される、アカウント名やパスワードといった環境変数を管理するファイル。

master.keyRails newした際にcredentials.yml.encと一緒に生成される。

config/master.keyはgitignoreに最初から追加されているので設定する必要はありません。

credentials.yml.encへの環境変数の登録

ターミナルで、

$ EDITOR=vim bin/rails credentials:edit

を行うと、このような内容がターミナルに表示される。

ここに、追加で登録

(例)
my_app
  api_key: a1b2c3~~~
  api_secret: 4d5e6g~~~

すこし慣れてきたが、最初はこのvimの操作にかなり癖を感じる。

  • iを押して挿入モード、追加入力
  • escでノーマルモードに戻す
  • ノーマルモード時に:wqで保存して終了
  • ノーマルモード時にddで1行削除
  • $で末尾に移動 などなど、、

rails consoleで確認

Rails.application.credentials.my_app[:api_key]
等で登録が確認できる。

CircleCIへの登録


この左側のJOBSをクリック


この歯車をクリック


このEnvironment Variablesをクリック


Add Variableをクリック
NameにRAILS_MASTER_KEY
Valueにconfig/master.keyの文字列

このRAILS_MASTER_KEYをCircleCIに登録すると、

API_KEY = Rails.application.credentials.my_app[:api_key]

このような記述があれば、credentials.ymlをRAILS_MASTER_KEYで復号化して読んでくれる。

今までbash_profileに登録していましたが、これがあるとローカル環境でもconfig/credentials.yml.encを作成して書いておくと、それを見て同じ動きをしてくれるので、必要ないですね。

終わりに。

転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございます。