Soy nuevo en openshift y me he esforzado por modificar mi env en git push para que no necesite rhc env set ENV_VAR=value -a appname cada vez que presiono. De acuerdo con la documentación, puedo exportar en uno de los ganchos de acción, pero cada vez que lo hago, la variable de entorno no se registra.
¿Cuál es la mejor manera de registrar esas variables automáticamente, en lugar de tener que ejecutar el comando rhc o ssh en la máquina y exportar?
La documentación parece estar desactualizada ya que el método de exportación en action_hooks ya no funciona.
https://developers.openshift.com/en/managing-environment-variables.html
Veo que ya tiene su respuesta, pero en caso de que otros vengan aquí por la misma pregunta, me gustaría mencionar que el rhc env set en realidad establece una variable de manera persistente , por lo que "sobrevive" al código push, build y gear reiniciar.
La documentación vinculada en la pregunta dice que la export se puede usar para ver las variables de entorno durante la compilación; no recomienda establecer variables de entorno usando ganchos.
La lista de variables en sí misma, utilizando el enlace de build , debería funcionar bien. (trabajó para mí en el momento de escribir esto)
En caso de que la export en el enlace de acción de build parezca no funcionar (no enumera las variables), generalmente se debe a que el archivo de enlace no se configura como ejecutable (o por un error de sintaxis dentro del archivo).
Sí, la forma de gancho de acción ya está rota, aunque exporta a través del gancho, puede ver que ya no se descartan declaraciones declare -x como se indica en la documentación.
Otro método que puede hacer es usar el gancho de acción para escribir en archivos en este directorio:
$HOME/.env/user_vars
por ejemplo, si desea establecer RAILS_ENV=development , escriba un script que produzca este archivo:
$HOME/.env/user_vars/RAILS_ENV
con este contenido:
development
Pasé mucho tiempo buscando formas alternativas también, pero este tipo lo logró, lo copió en caso de que el enlace se rompa en el futuro:
Si necesita establecer algunas variables de entorno en su GEAR, puede usar un gancho de acción. El enlace de acción previa al inicio le servirá bien, pero si necesita restaurar esas variables después de reiniciar el equipo, el enlace de acción previa al inicio no funcionará. El enlace de acción posterior al reinicio, por otro lado, ejecutará sus acciones, pero no he logrado que las variables de entorno funcionen. Después de su ejecución, todas las variables de entorno que deberían tener un valor estaban vacías.
Lo que hice fue modificar el gancho de acción previo al inicio para crear variables de entorno como archivos en $HOME/.env/user_vars
# Actual script export OPENSHIFT_POSTGRESQL_DB_HOST="xxx.xxx.xxx.xxx" export OPENSHIFT_POSTGRESQL_DB_PORT="***" export OPENSHIFT_POSTGRESQL_DB_NAME="***" export OPENSHIFT_POSTGRESQL_DB_USERNAME="***"" # Added script for post restart variables echo "xxx.xxx.xxx.xxx" > OPENSHIFT_POSTGRESQL_DB_HOST echo "***" > OPENSHIFT_POSTGRESQL_DB_PORT echo "***" > OPENSHIFT_POSTGRESQL_DB_USERNAME echo "***" > OPENSHIFT_POSTGRESQL_DB_PASSWORD After this, if you execute gear restart, the environment variables will exist and will be accesible from your application.Referencia:
https://guilleml.wordpress.com/2015/02/17/configuracion-de-variables-de-entorno-en-openshift/