2010-11-24 51 views
1

Comment passer le: RAILS_ENV vairable pour qu'il reconnaisse la version que nous sommes dans la mise en scène-à-dire, la production, démonstrationpassant: RAILS_ENV à Capistrano au chef/livre de cuisine/Monit/mongrel.conf

Nous essayons d'obtenir le: rails_env du deploy.rb dans capistrano pour passer à cookbook et puis pour suivre et puis créer un fichier mongrel.conf avec différentes valeurs pour l'environnement (demo..production). En mongrel.erb, nous pouvons prendre cette variable/paramètre et définissez le RAILS_ENV = xxxx

dans la ligne de commande, veulent préciser ce déploiement que nous faisons - le chef de la PAC: la production bootstrap

cette « production "définit le: RAILS_ENV dans deploy.rb

Répondre

1

Définissez la variable d'environnement dans votre shell (ligne de commande) avant d'exécuter vos scripts et laissez vos scripts ramasser sa valeur à savoir:

export RAILS_ENV=production 

Vous pouvez accéder à la valeur de RAILS_ENV en utilisant $ RAILS_ENV en vous r scripts. Voici un exemple de quelqu'un qui fait quelque chose de similaire à Pivotal Labs:

http://pivotallabs.com/users/steve/blog/articles/1286-chef-solo-is-great-you-might-not-need-client-server-

+0

Lorsque Monit exécute le mongrel.conf, il ne capte pas toutes les variables d'environnement. Le RAILS_ENV doit donc être défini dans le fichier mongrel.conf. C'est ce que nous avons dans le fichier .conf maintenant. démarrer le programme = "/usr/local/rvm/gems/ruby-1.8.7-p302/bin/mongrel_rails start -d -p 3000 -c/home/ubuntu/xx/actuel -e demo -P/home/ubuntu/xx/current/log/nomad.3000.pid "comme ubuntu uid et gid ubuntu. Nous voulons que la "démo" soit configurable en fonction de ce que la ligne de commande de cap définit – Ashish

+0

Ok, donc quelque part dans deploy.rb vous avez ": rails_env = demo", et plus tard vous pouvez faire exécuter votre tâche Capistrano "export RAILS_ENV = # {rails_env}" '... alors dans votre fichier .conf vous pouvez récupérer la variable d'environnement comme ceci: start program = "/usr/local/rvm/gems/ruby-1.8.7-p302/ bin/mongrel_rails start -d -p 3000 -c/home/ubuntu/xx/current -e $ RAILS_ENV -P /home/ubuntu/xx/current/log/nomad.3000.pid " – Scott

+0

Légère correction. "cap chef: bootstrap rails_env = demo" sur la ligne de commande définirait: rails_env à l'intérieur de deploy.rb. J'ai mal compris votre question. Est-ce que cela aide d'une manière ou d'une autre? – Scott