Jelastic方式设置环境变量

时间:2017-02-02 08:11:58

标签: environment-variables jelastic 12factor

我正在运行一个jelastic设置来托管多个Rails应用程序。

在Rails中,store configuration in the environment很常见。特别是秘密数据,例如密码或访问密钥。

我应该将它们放在Ruby / Rails jelastic设置上?

我目前有乘客的nginx;因为那是默认的。如果Puma或Unicorn让这更容易或更强大,我很乐意听到。

我目前使用nginx env指令在/etc/nginx/nginx.conf中声明了我的环境变量。但这意味着我将分泌存储在nginx.conf文件中。呸。

## ENV VARS
env SECRET_KEY_BASE=xxxxxxxxxxxx;
env BLAZER_USERNAME=uuuuu;
env BLAZER_PASSWORD=xxxxxxxxxxxx;
env AWS_ID=aaa;
env AWS_SECRET_KEY=aaa;
env BLAZER_DATABASE_URL=postgres://uuu:ppp@example.com:5432/production;
  1. 如何管理任何jelastic设置的秘密?
  2. 如何在Rails jelastic设置上管理您的秘密?
  3. 您在哪里存储要由正在运行的应用获取的环境变量?
  4. 编辑:我不想让机密"其他用户/进程远离机器"。我不想将我的秘密存储在我的应用程序git-repo中。这真的是非常糟糕的做法。因此,我希望我的Rails应用程序可以阅读,例如ENV['AWS_SECRET_KEY']而不是在我的代码库中的某处存储该密钥。

3 个答案:

答案 0 :(得分:2)

最简单的方法是将此环境变量粘贴到.bash_profile配置文件中,该文件位于您家中,可以通过SSH访问。

答案 1 :(得分:1)

Phusion Passenger不在交互式shell中运行。 可能,您现在正在使用最佳解决方案(nginx配置)。

答案 2 :(得分:0)

Jelastic将每个环境的节点(例如Application ServersDatabasesDocker等)作为单独的虚拟机提供(完全独立的实例,不能是受硬件上任何其他帐户的影响)。完全隔离并专注于您的特定需求,它可确保足够的隐私,并可配置为使用敏感数据运行任何应用程序。

我们的文档中有一个指南Setting Custom Environment Variables via SSH,对您的案例有帮助。

一般来说,我们想说,对于大多数使用环境变量的情况,Jelastic是安全的。