[RUBY] Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2

Rails 5.2 ne génère pas de config / secrets.yml lors de la création d'une nouvelle application Il semble que config / credentials.yml.enc est maintenant généré à la place.

Si vous utilisez déjà une ancienne version de Rails dans un environnement de production et que vous souhaitez mettre à niveau vers Rails 5.2 Il semble que le mécanisme de config / credentials.yml.enc soit utilisé à la place de config / secrets.yml.

Jusqu'à Rails 5.2, il semble y avoir un moyen d'utiliser le classique config / secrets.yml. J'ai pensé à mettre à jour Rails6 et j'ai introduit config / credentials.yml.enc. Je vais l'afficher sous forme de mémorandum.

1. Générez et configurez credentials.yml.enc et master.key

Étant donné que credentials.yml.enc ne peut pas être édité directement depuis l'éditeur, créez et éditez en spécifiant l'éditeur dans le terminal.

$ EDITOR=vim bundle exec credentials:edit

Au fait, si vous définissez ce qui suit dans .bash_profile etc., vous n'avez pas besoin de spécifier EDITOR = "vim".

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

$ bundle exec credentials:edit

L'exécution de la commande ci-dessus générera config / credentials.yml.enc et config / master.key. Assurez-vous d'ajouter config / master.key à .gitignore car il n'est pas géré par git.

.gitignore

# Ignore master key for decrypting credentials and more.
/config/master.key

Modifiez le fichier config / credentials.yml.enc généré comme suit.

config/credentials.yml.enc

# aws:
#   access_key_id: 123
#   secret_access_key: 345

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base:

Puisque critique est utilisé dans l'environnement de production, définissez la variable suivante sur true dans config / environnements / production.rb.

config/environments/production.rb

config.require_master_key = true

2. Déploiement automatique par Capistrano

Il ne peut être déployé que si master.key est placé dans shared / config de l'environnement de production. Transférez config / master.key vers le serveur de production avec la commande scp.

$ scp -i ~/.ssh/example.pem config/master.key [email protected]:/var/www/AppName/shared/config/master.key

ex. /var/www/AppName/shared/config/master.key

Vous pouvez également définir la variable d'environnement RAILS_MASTER_KEY dans le fichier bash du serveur d'environnement de production. Capistrano n'est pas lu même s'il est écrit en .bash_profile, il est donc nécessaire de l'écrire dans ~ / .bashrc. Exportez config / master.key sous RAILS_MASTER_KEY. En d'autres termes, définissez le .bashrc comme suit.

~/.bashrc
export RAILS_MASTER_KEY='XXXXXXXXXXXXXXXXXXX'

Ensuite, spécifiez un lien symbolique dans le fichier de configuration au moment du déploiement dans config / deploy.rb.

set :linked_files, fetch(:linked_files, []).push('config/master.key')

3. Si vous pouvez déployer à l'aide de Capistrano, vous avez terminé.

$ bundle exec cap production deploy

Recommended Posts

Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment utiliser MySQL dans le didacticiel Rails
[Rails] Comment utiliser enum
[Rails] Comment utiliser les boîtes de sélection dans Ransack
[Rails] Comment utiliser enum
[Rails] Comment utiliser la validation
[Rails] Comment utiliser authenticate_user!
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
[Rails] Comment utiliser Scope
[Rails] Comment utiliser la "devise" des gemmes
Comment utiliser Lombok au printemps
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Comment utiliser les messages flash
[Rails] Comment utiliser Active Storage
Comment installer jQuery dans Rails 6
Comment utiliser les classes en Java?
[Introduction aux rails] Comment utiliser le rendu
Comment installer Swiper in Rails
Comment implémenter la fonctionnalité de recherche dans Rails
Comment changer le nom de l'application dans les rails
Comment utiliser le volume nommé dans docker-compose.yml
Comment insérer une vidéo dans Rails
[Rails] Comment utiliser ActiveRecord :: Bitemporal (BiTemporalDataModel)
[Rails] Comment utiliser la méthode de la carte
Comment utiliser Docker dans VSCode DevContainer
[rails] Comment configurer le routage dans les ressources
[Ruby on Rails] Comment utiliser redirect_to
Comment implémenter la fonctionnalité de classement dans Rails
[Note] Comment utiliser Rails 6 Devise + cancancan
Comment utiliser les variables d'environnement dans RubyOnRails
[Rails] Comment utiliser video_tag pour afficher des vidéos
Comprendre en 5 minutes !! Comment utiliser Docker
[Rails] Comment utiliser la méthode d'assistance, confimartion
Comment utiliser ExpandableListView dans Android Studio
Comment utiliser Map
Comment écrire des rails
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
Comment désinstaller Rails
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Utiliser des images avec des rails
Comment utiliser Dozer.mapper
Comment utiliser Gradle