アマゾンウェブサービスとエラスティックビーンズトークを使用して、シークレットファイルをEC2 Ruby on Railsアプリケーションにプッシュするにはどうすればよいですか?
ファイルをgitリポジトリに追加し、githubにプッシュしますが、秘密のファイルをgitリポジトリに入れないようにします。私は以下を使用してAWSにデプロイしています:
git aws.push
次のファイルが.gitignoreにあります。
/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb
このリンクをたどって、S3ファイルをデプロイに追加しようとしました:http: //docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html
そのリンクからの引用:
スニペットの例
次の例では、Amazon S3バケットからzipファイルをダウンロードし、/ etc/myappに解凍します。
sources: /etc/myapp: http://s3.amazonaws.com/mybucket/myobject
これらの指示に従って、ファイルをS3バケットにアップロードし、.ebextensionsディレクトリのprivate.configファイルに以下を追加しました。
sources:
/var/app/current/: https://s3.amazonaws.com/mybucket/config.tar.gz
そのconfig.tar.gzファイルは次の場所に抽出されます。
/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb
ただし、アプリケーションがデプロイされると、S3ホスト上のconfig.tar.gzファイルがコピーまたは抽出されることはありません。database.ymlが見つからず、EC2ログに設定ファイルのレコードがないというエラーがまだ表示されます。エラーメッセージは次のとおりです。
Error message:
No such file or directory - /var/app/current/config/database.yml
Exception class:
Errno::ENOENT
Application root:
/var/app/current