sé por heroku que es posible añadir variables de entorno mediante la ejecución de heroku config:add MY_ENV_VAR=123
localmente. ¿Cómo puedo lograr lo mismo con el patio de máquinas?Configuración de variables de entorno en EngineYard
Respuesta
No creo que puedas = /.
Una solución alternativa que utilizamos con nuestras aplicaciones Rails es ssh (ey ssh) para EngineYard y crear un archivo en vim /data/your_app_name/shared/config/exports.rb. Este archivo puede ser algo como esto:
ENV["AWS_ACCESS_KEY_ID"] = "your key"
ENV["AWS_SECRET_ACCESS_KEY"] = "your secret"
ENV["AWS_BUCKET"] = "your bucket"
Luego, en config/boot.rb que requieren el archivo:
require File.expand_path('./exports', File.dirname(__FILE__))
Esto no es ni bonito, ni esfuerzo. Sin embargo, le permite usar secretos en su aplicación que no debe controlar en el control de la fuente.
nos encontramos con el mismo problema y pidió EngineYard algún tipo de asistencia. Jim Neath de EY regresó con la siguiente respuesta:
Desafortunadamente, el pasajero no recibe las variables de entorno del sistema. Lo que hay que hacer es crear un contenedor de rubí que define las variables de entorno y lancha de pasajeros utilizando esto, como se describe aquí:
http://blog.phusion.nl/2008/12/16/passing-environment-variables-to-ruby-from-phusion-passenger/
os he creado una receta de encargo del cocinero básico que hacer precisamente esto :
https://github.com/jimneath/ey-cloud-recipes/tree/master/cookbooks/passenger_env_vars
Usted tendrá que actualizar el siguiente archivo con su entorno variables:
/ey-cloud-recipes/blob/master/cookbooks/passenger_env_vars/templates/default/env.custom.erb
Pensé que debería hacerles saber a todos que hay un error en esas recetas personalizadas (presumiblemente, ya que son muy viejas). default.rb debe ser: 'if ['app_master', 'app', 'solo']. include? (node [: instance_role])' en lugar de 'if ['app_master', 'app', 'solo']. include? (node [: role]) ' – WattsInABox
Esto es bastante simple para el uso del unicornio env.custom. Echar un vistazo a mi respuesta aquí https://stackoverflow.com/a/13741463/1520775
Si desea ejecutar una tarea rake (es decir, trabajo cron) que necesita estas variables ambientales, almacenar las variables en /data/my_app/shared/config/env.custom
source /data/my_app/shared/config/env.custom && cd /data/my_app/current/ && bundle exec rake my_rake_task
también estaba usando Heroku
anteriormente ahora se trasladó a Engineyard
. Así es como obtengo mis variables ENvironemnt en Heroku
Agregué gem figaro
. Esta gema básicamente necesita el archivo application.yml
en el directorio app/config
. Cuando se inicializa la aplicación Rails
, se ejecuta y carga el par de valores clave establecido en el formato YAML
en la memoria. En Heroku
Figaro
tiene la opción de establecer el contenido de application.yml
.
$ figaro heroku:set -e production
Sin embargo, en Engineyard
necesitamos copiar manualmente el application.yml
usando SCP
opción de EY
paquete y lo demás se hará por figaro.
Primero incluya la gema figaro en gemfile e instale la gema.
Luego tenemos que usar engineyard-hooks para copiar el archivo /data/[your_app]/shared/config/application.yml
en /data/[your_app]/current/config/application.yml
. tenemos que utilizar before_restart
gancho
# inside your project repo create a 'deploy' folder and
# inside deploy/before_restart.rb paste the following code with or without modifications
# This file is executed everytime after deploy just before your app restarts
on_app_servers_and_utilities do
# Copy the yaml files from `shared/config` to `current/config`
['application.yml'].each do |file_name|
run "ln -nfs #{config.shared_path}/config/#{file_name} #{config.release_path}/config/#{file_name}"
end
end
confirmar los cambios y empujar a tu repositorio GitHub o en algún lugar.
Hasta aquí, no existe el archivo /data/[your_app]/shared/config/application.yml
. Ahora use el siguiente comando para copiar el archivo desde el local a los servidores
# This copies the application.yml to every instance like app_master, app_slave, utilities, database, etc
$ ey scp config/application.yml HOST:/data/[your_app_name]/shared/config/ -e app_environment --all
Ahora puede implementar su aplicación y obtener todas las variables de entorno.
Nota: Debe invocar el comando anterior para copiar el archivo al servidor cada vez que arranque el entorno. Significa que si detiene la puesta en escena (por ejemplo) y después de un tiempo de inicio, debe invocar el comando anterior
https://cbabhusal.wordpress.com/2015/07/22/engineyard-ruby-on-rails-setting-environment-variables-at-once/ – illusionist
- 1. Configuración de variables de entorno en Mathematica
- 2. Configuración de variables de entorno de Gradle
- 3. Configuración de variables de entorno para aplicaciones de Phusion Passenger
- 4. Leer variables de entorno de fichero de configuración logback
- 5. variables de entorno o archivos de configuración YAML
- 6. claves SSH en variables de entorno
- 7. Variables de entorno de Javascript
- 8. Comprobación de variables de entorno
- 9. Variables de entorno de referencia en web.xml
- 10. Variables de entorno en Python en Linux
- 11. MSBuild requiere variables de entorno
- 12. Ruby, Unicorn y variables de entorno
- 13. ¡Variables de configuración en Play! Marco
- 14. Configuración del entorno de Juggernaut
- 15. Obtener variables de entorno en Classic ASP
- 16. Establecer variables de entorno local en C++
- 17. Cómo establecer variables de entorno en Python
- 18. Establecer variables de entorno en C
- 19. Establecer variables de entorno Node.js en WebStorm
- 20. Cómo leer variables de entorno en Scala
- 21. Variables de entorno en enlaces simbólicos
- 22. Evaluar variables de entorno en una cadena
- 23. Acceso a variables de entorno En C++
- 24. ¿Cómo uso las variables de entorno en la sección de configuración [supervisord] de Supervisord?
- 25. Configuración de variables de entorno para todas las pruebas JUnit en Eclipse
- 26. Configuración de variables de entorno en Eclipse para usar con Android NDK
- 27. Uso de las variables de entorno del sistema en la configuración log4j xml
- 28. PHP y variables de entorno Apache
- 29. ¿Es posible usar variables de entorno en php.ini?
- 30. awk: configuración de las variables de entorno directamente desde dentro de una secuencia de comandos awk
Definitivamente puede utilizar el chef para hacerlo, por lo que su respuesta no es la indicada. – WattsInABox
Estoy votando esta respuesta y es infinitamente mejor que la tuya ... porque no ofreces una alternativa. –