Comment déployer l'application heroku avec un fichier de configuration yaml secret sans propager le fichier?

dans d'autres projets de rails, j'aurais une base de données locale.yml et dans le dépôt de code source ne propagent que la base de données.exemple de fichier. Lors du déploiement, un script capistrano qui permet de créer un lien symbolique vers une version partagée de la base de données.yml pour toutes les versions.

lors du déploiement à heroku, git est utilisé et ils semblent outrepasser la base de données.yml tout à fait et faire quelque chose interne.

C'est tout bon et bon pour la base de données.yml, mais que faire si j'ai des configurations s3 dans config/s3.yml. Et Je mets mon projet sur github pour ne pas engager le s3.yml où tout le monde peut voir mes références. Ça vaut mieux un échantillon de s3.l'échantillon de personnes remplacent avec leurs propres paramètres, et de garder un local s3.fichier yml non engagé dans mon répertoire de travail.

quelle est la meilleure façon de gérer cela?

18
demandé sur Homan 2011-10-27 00:41:14

5 réponses

Heroku avez quelques conseils sur ce -

http://devcenter.heroku.com/articles/config-vars

11
répondu ipr101 2011-10-26 20:45:32

stocker les justificatifs d'identité s3 dans les variables d'environnement.

$ cd myapp
$ heroku config:add S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190
Adding config vars:
  S3_KEY    => 8N029N81
  S3_SECRET => 9s83109d3+583493190
Restarting app...done.

Dans votre application:

AWS::S3::Base.establish_connection!(
  :access_key_id     => ENV['S3_KEY'],
  :secret_access_key => ENV['S3_SECRET']
)

Voir la Heroku Config Vars documentation qui expliquent la configuration du développement, etc.

8
répondu Douglas F Shearer 2011-10-26 20:47:06

si vous utilisez les Rails 4.1 beta, essayez le heroku_secrets gem, de https://github.com/alexpeattie/heroku_secrets:

gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets'

cela vous permet de stocker des clés secrètes dans les Rails 4.1 config / secrets.yml (qui n'est pas coché dans le contrôle source) et puis il suffit d'exécuter

rake heroku:secrets RAILS_ENV=production

mettre son contenu à la disposition d'heroku (il analyse vos secrets.le fichier yml et pousse tout ce qu'il contient vers heroku en tant que variables d'environnement, selon la meilleure pratique d'heroku doc.)

6
répondu Simon Woolf 2014-01-28 11:41:46

une solution alternative est de créer un nouveau branche modifier .gitignore, donc secret-fichier peut être poussé à heroku. NE PAS poussez cette branche sur votre GitHub repo.

Pour pousser non-branche master pour heroku, utilisez:

git push heroku secret-branch:master

plus d'info peut être trouvé on:

https://devcenter.heroku.com/articles/multiple-environments#advanced-linking-local-branches-to-remote-apps

Utiliser heroku run bash et ls pour vérifier si votre fichier secret a été poussé sur heroku ou pas

5
répondu rocketspacer 2016-11-03 21:14:42

Vous pouvez aussi consulter les Figaro gem.

2
répondu Alan 2012-11-25 09:56:45