rake_deploy 在 jelastic 中如何与 ENV 一起工作
How does rake_deploy in jelastic work with ENV
我正在使用 Jelastic 和 nginx 设置生产和预生产服务器 运行 Ruby 在 Rails 上。
我的数据库名称和密码在环境变量中。我已在 shell 中通过 ssh 在 .bashrc
和 /etc/nginx/app_servers/nginx-passenger.conf
中设置它们,如 配置参考中所述
对于乘客 + Nginx
但 rake_deploy
找不到它们。我已经编写了一个输出 ENV 的 rake-task,所以我可以看到当我 运行 作为部署的一部分的任务和通过 ssh 的命令行时它是不一样的。 Rails 应用程序通过 the passenger.conf
获取它们,因此可以正常工作,但这是可怕的重复。
有没有办法将我的环境变量设置在该设置的一个位置,以便 Rails 应用程序、rake_deploy
和 shell 都可以访问它们?
这个变量 "ALL_REQUESTS_LOCAL, DB_ADAPTER, DB_HOST, DB_NAME, DB_PASSWORD, DB_USERNAME, EMAIL_USER, EMAIL_PASSWORD, EMAIL_DOMAIN, EMAIL_ADDRESS" 应该在 rakefile 中设置。 "nginx_passenger.conf" 是 Nginx 的配置文件,与环境 variables.Also 无关,您可以尝试将此变量添加到 .bash_profile 或 .bashrc 以使其可访问 rake
答案是做不到。
在使用 Jelastics Ruby 设置(使用 rake_deploy
运行 部署时的 rake 任务。
原因是rake_deploy
和root
一样是运行。
我想添加这个 rake 任务:
task :env do
puts ENV.to_h.to_yaml
sh %[whoami]
end
首先打印 ENV,然后打印命令是 运行 的用户。
或者,如果我可以首先 运行 编辑 root
的 .bash_profile
的 rake 任务,而不将其放入版本控制中,也许有一种方法。但感觉既不安全也不专业。
也没有其他地方可以放置您的秘密,这些秘密不受版本控制并在部署之间持续存在。
我的 PaaS 提供商已与 Jelastic 联系并告诉他们这一点,他们对更改它不感兴趣。
我正在使用 Jelastic 和 nginx 设置生产和预生产服务器 运行 Ruby 在 Rails 上。
我的数据库名称和密码在环境变量中。我已在 shell 中通过 ssh 在 .bashrc
和 /etc/nginx/app_servers/nginx-passenger.conf
中设置它们,如 配置参考中所述
对于乘客 + Nginx
但 rake_deploy
找不到它们。我已经编写了一个输出 ENV 的 rake-task,所以我可以看到当我 运行 作为部署的一部分的任务和通过 ssh 的命令行时它是不一样的。 Rails 应用程序通过 the passenger.conf
获取它们,因此可以正常工作,但这是可怕的重复。
有没有办法将我的环境变量设置在该设置的一个位置,以便 Rails 应用程序、rake_deploy
和 shell 都可以访问它们?
这个变量 "ALL_REQUESTS_LOCAL, DB_ADAPTER, DB_HOST, DB_NAME, DB_PASSWORD, DB_USERNAME, EMAIL_USER, EMAIL_PASSWORD, EMAIL_DOMAIN, EMAIL_ADDRESS" 应该在 rakefile 中设置。 "nginx_passenger.conf" 是 Nginx 的配置文件,与环境 variables.Also 无关,您可以尝试将此变量添加到 .bash_profile 或 .bashrc 以使其可访问 rake
答案是做不到。
在使用 Jelastics Ruby 设置(使用 rake_deploy
运行 部署时的 rake 任务。
原因是rake_deploy
和root
一样是运行。
我想添加这个 rake 任务:
task :env do
puts ENV.to_h.to_yaml
sh %[whoami]
end
首先打印 ENV,然后打印命令是 运行 的用户。
或者,如果我可以首先 运行 编辑 root
的 .bash_profile
的 rake 任务,而不将其放入版本控制中,也许有一种方法。但感觉既不安全也不专业。
也没有其他地方可以放置您的秘密,这些秘密不受版本控制并在部署之间持续存在。
我的 PaaS 提供商已与 Jelastic 联系并告诉他们这一点,他们对更改它不感兴趣。